How to set up pixel tracking

This page covers placing the pixel, choosing when it fires, and fixing it when it does not.

Where each pixel goes

  • Initiation pixel: on every page of the site.
  • Conversion pixel: only on the page that marks the conversion, whether pending or approved. It creates the conversion the moment it fires.
  • Update pixel: fires only when the data layer contains an Origin ID. We still recommend placing it on the conversion page as well.

If you implement the pixel directly in the page, put it as high in the <head> as possible.

Google Tag Manager

GTM is the most common integration, though not the best one. Place both scripts as Custom HTML tags.

Which trigger to use

GTM offers five triggers. The earlier the pixel fires, the more traffic it captures. Use the Initialization trigger.

  • Consent Initialization: fires first, and is meant for consent management tags only. Do not use it for the pixel.
  • Initialization: fires before everything except Consent Initialization. This is the one you want.
  • Page View: fires as the browser starts loading the page.
  • DOM Ready: fires once the page structure is built.
  • Window Loaded: fires once images and scripts have finished loading. Latest and least reliable.

Why GTM is not ideal

Some ad blockers block the entire GTM container, and the pixel goes with it. Server-side GTM survives most of them, standard GTM does not.

  • Adblock: does not block either setup.
  • Adblock Plus, uBlock Origin, Ghostery: block standard GTM and server-side GTM alike.
  • Safari ITP: affects standard GTM, not server-side GTM.
  • Corporate VPNs: usually affect standard GTM. Behaviour varies by network.

The safer options, in order: put the pixel directly in the page code, use server-side GTM, or accept standard GTM and back it up with a postback.

When the pixel is blocked

Set up an S2S postback alongside the pixel. It runs server to server, so ad blockers and missing cookie consent do not affect it.

  • Fire it when the conversion is created, so both methods report the same event and PalDock keeps one conversion.
  • Or fire it only on updates, when the advertiser approves or rejects.

Deduplication on the external ID is what keeps the two methods from doubling your numbers, so make sure the advertiser sends it in both.

Where the click ID is stored

The cookie parameter of the initiation pixel decides this.

  • cookie=1: a cookie. Recommended.
  • cookie=2: localStorage.
  • cookie=0: sessionStorage.

⚠️ localStorage and sessionStorage are not shared across domains or subdomains. They only work within the exact same origin, meaning the same protocol, domain, and port. If your homepage runs on the main domain and checkout on a subdomain, only a cookie carries the click ID across.

If you cannot fire the pixel before cookie consent, you have to move the value yourself, for example through a URL parameter or your own backend.

Troubleshooting

The pixel never appears in the network tab

Your site may have a Content-Security-Policy header that blocks our domain. The pixel then fails silently: nothing in the browser’s Network tab, while GTM still reports the tag as fired.

To confirm, open DevTools, Console, and look for a message about a refused script and a Content Security Policy directive.

To fix it, ask your developers to add our domains to the CSP:

connect-src 'self' https://*.paldock.com https://paldock.com https://*.palpxl.com https://palpxl.com;

Then check in DevTools, Network, that the requests go through.

The pixel fires but nothing arrives

Check the tracking log. If the request is not there, it never reached PalDock, so the cause is in the browser: CSP, an ad blocker, or a missing consent.

If it is there but did nothing, read the outcome in Tracking errors and reasons.

Conversions appear without an affiliate

The initiation pixel is not firing, or is firing after the click ID is gone from the URL. Check that it is on every page and on the Initialization trigger.

Insights that
helps you grow

  • Release notes 2026/08/14
    This was a big one. We went through roughly 200 pages of our knowledge base and rewrote the whole thing. Clearer structure, consistent terminology, and…
  • Release notes 2026/07/31
    What’s new in PalDock? A lot of this month went into things you won’t see directly – query optimisation, indexing, and general tuning under the…
  • Free Affiliate tracking software
    Many companies (inlcuding YOU) search for free affiliate tracking software because they want to launch an affiliate program without committing to expensive monthly fees. The…