---
title: "Save site piggyback"
type: reference
method: POST
path: /rest-api/piggyback/site.do
tag: "Piggybacks"
---

# Save site piggyback

`POST https://YOUR-NETWORK-DOMAIN/rest-api/piggyback/site.do`

Creates a new piggyback tracking pixel and attaches it to the specified site, or with 'id' edits that existing piggyback of the site. The piggyback can be of type BEACON (HTML tracking code snippet) or URL (redirect URL), specified via the model attribute fields 'type' and 'codeUrl'. You can target a specific action by providing actionId, or set allActions to true to apply to all actions. Optionally associate the piggyback with a specific campaign. The caller must have update permissions on the site. Returns a JSON object with a 'success' boolean and validation errors if any.

## Form params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `siteId` | integer | yes | `3001` | The unique numeric identifier of the site to attach the new piggyback tracking pixel to |
| `actionId` | integer | no | `101` | Conditionally required — when allActions is false; ignored when it is true. The unique numeric identifier of the action to attach the piggyback to |
| `allActions` | boolean | no | `true` | When true, the piggyback is applied to all actions, making actionId unnecessary |
| `campaignId` | integer | no | `2001` | Optional campaign ID to associate the piggyback with a specific campaign |
| `id` | integer | no | `701` | ID of an existing piggyback of this site to edit instead of creating a new one; one that is not the site's answers 400 |
| `active` | boolean | no | `true` | Whether this piggyback is active |
| `codeUrl` | string | no | `https://tracker.example.com/pixel?sid=456` | Piggyback URL or HTML/JavaScript code |
| `deliveryAttribution` | string | no | `ALL` | Which conversions this piggyback fires for: ALL, POST_CLICK_ONLY or POST_VIEW_ONLY |
| `sampling` | integer | no | `100` | Sampling rate percentage (0-100) controlling how often the piggyback fires |
| `type` | string | no | `URL` | Piggyback type: URL (a URL fired as a pixel) or BEACON (an HTML/JavaScript snippet) |

## Responses

- `200` — Site piggyback saved successfully
- `400` — Bad request — invalid or missing parameters
- `401` — Unauthorized - authentication error
- `403` — Forbidden - no update rights on the site, or the Piggyback Pixel Tracking permission is not enabled
- `500` — Internal server error

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/piggyback/site.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'siteId=3001' \
  --data-urlencode 'campaignId=2001' \
  --data-urlencode 'id=701' \
  --data-urlencode 'type=URL' \
  --data-urlencode 'active=true' \
  --data-urlencode 'actionId=101'
```

Source: https://epom.com/ad-server/docs/api/piggybacks/post-piggyback-site