The update pixel adds data to a conversion that already exists. It does not create anything. It is placed either by the advertiser on the conversion page, or by the affiliate on their form page, to collect URL and cookie values that an iFrame or API form cannot pick up on its own.
⚠️ Tracking cannot create Lead conversions. It can only update existing ones. New leads must come from the form or the API.
The script
<script>
(function(w,p){p=w.paldock=w.paldock||{};p.q=p.q||[];p.conversion=p.conversion||function(){p.q.push(["conversion"].concat([].slice.call(arguments)))}})(window);
// Update conversion
paldock.conversion({
action: 'update',
affiliate_id: 'affiliate_id', // only for affiliates
advertiser_id: 'advertiser_id', // only for advertisers
external_id: 'external_id', // only for advertisers
pldk_conversion_id: 'origin_id', // only if it is not in the dataLayer
queryParam: {
key1: 'utm_content',
key2: 'utm_medium',
key3: 'utm_source'
},
cookieParam: {
key1: '_ga',
key2: 'fbp',
key3: 'fbc'
}
});
</script>
What it collects
queryParam: values from the URL, typically utm tags.cookieParam: values from cookies, typically Google and Meta identifiers such as_ga,_fbp, and_fbc.
Up to three keys each. Once they are on the conversion, you can forward them anywhere through the Tracking API, for example into Google Ads or Meta.
Which conversion gets updated
Two ways to point at it:
- Origin ID = pldk_conversion_id, on its own. Always available, to advertisers and affiliates alike.
- Advertiser ID with External ID, for advertisers only.
If two conversion types happen in the same session, add type so PalDock knows which one you mean. Use lead rather than prospect when you are updating the original lead, not the transaction.
Where the Origin ID comes from
Every conversion has one, and you need it later to update that conversion. Where you get it depends on how the conversion was created.
- Created by a pixel: the pixel writes the Origin ID into the data layer automatically.
- Created through the API or a postback: the response contains it. Store it, then push it to the data layer yourself.
{"status": "accepted", "origin_id": "1234"}
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'sale',
pldk_conversion_id: id // origin ID received from the pixel or the API
});
Use the same event name as the conversion type you created.
Who has to do what:
- Affiliates using an iFrame form: nothing. The form handles it.
- Affiliates using an API form, and all advertisers: store the Origin ID and push it to the data layer, or pass it in the pixel code.
When the value is in the data layer, the update pixel picks it up on its own and you can leave origin_id out of the script.
Where to place it
- On the conversion page, alongside the conversion pixel.
- The update pixel only fires when an Origin ID is available, so placing it on other pages does nothing.

