---
title: "Copy the pixel or the landing-page snippet"
description: "Copy the JS pixel, the image pixel URL or the landing-page snippet from the Conversion tracking code window and place it on the advertiser's pages — step by step, with what each block is for, the cookie and window caveats, and a fix-it checklist."
type: "howto"
audience: [network-manager, advertiser]
keywords: [pixel, JS pixel tracking, pixel tracking URL, image pixel, thank-you page, snippet, landing-page snippet, Google Tag Manager, piggybacks, post-click window, post-view window, cookie, timestamp]
ui_path: "Account → Advertisers → campaign → Conversion actions → Conversion tracking code → Pixel Tracking / Snippet"
---

Fetch the complete documentation index at: https://epom.com/ad-server/docs/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Copy the pixel or the landing-page snippet

## What it is and why

Two of the three tracking codes report a conversion from the visitor's browser. The **pixel**
is a script or image URL you place on the page a user reaches after converting; it is matched
on the cookie your ad-serving domain wrote when the ad was served. The **snippet** is a block
the advertiser installs on every page of their site; it stores the click id from the landing
URL in the site's own first-party storage, so it keeps counting where the pixel's cookie is
blocked. This page covers copying both from the window you opened in
[Open the tracking window and pick the ad-serving domain](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels-open-the-window.md);
conversions reported by a partner's backend are on
[Set up a server-to-server postback](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels-postback.md).

**Example.** The *purchase* action is linked to the campaign "Spring Prospecting CPC". The
advertiser's web developer gets the **JS pixel tracking** block for the order-confirmation page,
and their email tool — which only takes an image URL — gets the **Pixel tracking URL** with the
`t=(timestamp)` replaced by the tool's own cache-buster. For the Safari share of the traffic the
same developer installs the **Snippet** block on every page of the site.

## Typical scenarios

| You want | Copy | Where |
|---|---|---|
| Count purchases on an ordinary web thank-you page | **JS pixel tracking** | **Pixel Tracking** tab |
| A pixel for an email template or a page builder that only takes an image URL | **Pixel tracking URL** — and replace `t=(timestamp)` yourself | **Pixel Tracking** tab |
| Conversions from visitors whose browser blocks your cookie (Safari, private windows) | the **Snippet** block, installed on every page of the advertiser's site | **Snippet** tab → [Install the landing-page helper](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md) |

## Step by step

The window and the **Ad-serving domain** are set up in
[Open the tracking window and pick the ad-serving domain](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels-open-the-window.md).

### Pixel tracking (browser-side)

1. Open the **Pixel Tracking** tab.
2. Copy one of the code blocks and place it on the page a user reaches after converting. They
   appear in this order:

   | Block | What it is | When to use |
   |---|---|---|
   | JS pixel tracking | Script that requests a 1×1 tracking image from `/action.gif` | Standard choice for web pages |
   | JS pixel tracking with piggybacks | Script that loads `/action.js` from the ad server, which can return client-side piggyback markup | Legacy. Only for a page that already carries it — the [Snippet](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md) renders client-side (JS) piggybacks on its own |
   | Pixel tracking URL | The bare `/action.gif` URL | For systems that only accept an image URL (email templates, third-party builders) |

   The "with piggybacks" block appears only when the campaign's Piggybacks card is switched on
   *and* your role holds the **Piggyback Pixel Tracking** permission.
3. For the **Pixel tracking URL**, replace the `t=(timestamp)` at its end yourself with
   something that changes on every call. It is deliberately *not* written as a `$$…$$` macro,
   because nothing on the ad server expands it — this URL is fired by whatever system you paste
   it into. The two script blocks set it themselves from `new Date().getTime()`.

There is nothing to declare on this path. The pixel is matched against the click or view cookie
written when the ad was served, and post-click or post-view follows from whichever the cookie
carried; a click beats a view when both are present.

### The landing-page snippet

1. Open the **Snippet** tab. It builds a JavaScript block you hand to the advertiser to paste on
   their own site. It captures the click id out of the landing URL, keeps it in the advertiser's
   own first-party storage, and posts the conversion from the page when it happens — which is
   why it keeps working where the pixel's cookie does not.

   ![Conversion tracking code window on the Snippet tab, with Event name and Payout framed and the code box holding the opening lines of the generated block](https://epom.com/docs-images/ad-server/s2s-and-pixels/tracking-modal-snippet.webp)

2. Set the tab's fields — **Format**, **Click ID parameter**, **Count one conversion per
   click**, **Event name** and **Payout** — described one by one in
   [Snippet tab options](https://epom.com/ad-server/docs/guides/conversions/s2s-snippet-options.md).
3. Copy the block with the button in the corner of the code box (it scrolls inside itself, so
   only the first lines are in the picture). In the HTML format the block is complete as it
   comes out, with nothing in it for the integrator to fill in; the Google Tag Manager format
   ends with an optional one-tag-for-every-step alternative, and its `{{…}}` variable names are
   the one thing the integrator has to point at real GTM variables.
4. Install it on **every** page of the advertiser's site, not only the conversion page — it is
   what captures the click id when the visitor arrives — with the per-step lines where each
   step happens. [Install the landing-page helper](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md) walks through the
   whole block line by line, and covers how an action is counted once per click, how long the
   stored click id survives on each browser, why `payout` is not the value of the order, and
   how to ask it what went wrong.

Once the code is in place, confirm it reports: [Test a conversion](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels-test-a-conversion.md).

## Caveats and exceptions

**The pixel is window-checked, always.** A cookie older than the action's post-click /
post-view window does not produce a conversion: it is recorded as a zero-revenue expired
diagnostic (`XD-reason: expired`), and a window set to 0 means that event type never converts at
all (`window-disabled`). Server-to-server postbacks have a per-action opt-in for this; the pixel
does not need one, because it can see how old the cookie is.

**Everything else the pixel can lose, it loses with the cookie.** Nothing is recorded when
cookies are blocked or cleared, in private browsing, or when the user converts in another
browser or on another device — and the loss is silent. The window's own warning note says the
same, and names the two alternatives: the **Snippet** does the same job out of the advertiser's
own first-party storage, and **Postback (S2S)** covers conversions that never touch a browser.
Use the snippet or server-to-server tracking for the first group, and widen the window for
conversions that arrive too late.

**The Snippet tab does not check the landing URL.** It will build a block for a campaign that is
not tagging its landing URLs. The reminder travels as a comment at the top of the generated
block, naming the click-id parameter you chose: the creative's landing URL has to arrive carrying
the click id. Turn on **Add the click id to landing page URLs** on the campaign's Conversion
actions card — it reaches every creative whose click-through is built out of its own Link field,
including the email-placement click and a click-through placement's URLs. HTML Code, Template,
native and OpenRTB creatives need `$$CLICK_ID$$` put in the landing URL by hand. See
[auto-tagging](https://epom.com/ad-server/docs/guides/conversions/conversion-actions.md#link-the-action-to-a-campaign).

**The plain Pixel tracking URL never delivers client-side piggybacks.** An image has no way to
run anything. The [Snippet](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md) and the legacy "JS pixel tracking with
piggybacks" variant both deliver them. Server-side (URL) piggybacks are unaffected either way.

The caveats that apply to every tracking code — who can do this, the domain selector, which
tabs exist outside a campaign — are on
[Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md#caveats-and-exceptions).

## Not working?

| Symptom | Check | Where |
|---|---|---|
| No "JS pixel tracking with piggybacks" block | The campaign's Piggybacks card is off, or your role lacks **Piggyback Pixel Tracking**. | the campaign's **Piggybacks** card |
| Pixel conversions never arrive | The pixel was loaded from a host other than the one the ads serve from, so there is no cookie to read; or the visitor's browser blocks or cleared the cookie; or a different browser / device. | the **Ad-serving domain** selector vs the tag's host; use the Snippet or a postback |
| Pixel conversions dropped with `window-disabled` | That window is 0 on the action. | the action's windows |
| The image pixel in an email counts once, then never again | `t=(timestamp)` was pasted literally; it must change on every call. | the pasted **Pixel tracking URL** |

Expired conversions, a missing button or tab and the other symptoms are on
[Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md#not-working); the snippet's own checks
are on [Check and troubleshoot the landing-page helper](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper-debug.md).

## Reference

The three pixel blocks, the Snippet tab and the permission behind each are in the
[Reference](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md#reference) on the hub; the Snippet tab's fields are on
[Snippet tab options](https://epom.com/ad-server/docs/guides/conversions/s2s-snippet-options.md).

Related pages:

- [Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md)
- [Open the tracking window and pick the ad-serving domain](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels-open-the-window.md)
- [Set up a server-to-server postback](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels-postback.md)
- [Test a conversion](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels-test-a-conversion.md)
- [Snippet tab options](https://epom.com/ad-server/docs/guides/conversions/s2s-snippet-options.md)
- [Install the landing-page helper](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md)
- [Piggyback pixels](https://epom.com/ad-server/docs/guides/conversions/piggybacks.md)