How to check your Adform tracking point is working
Every page should send track.adform.net/Serving/TrackPoint with pm (your tracking setup ID) and a page name. Get the page names right first: Adform reports on them, and a page name built from the full URL turns one confirmation page into thousands.
Adform started in Copenhagen and is still most common in the Nordics and the rest of Europe, often run by an agency rather than the store itself. That is why the most common problems are about naming and ownership, not about the tag loading.
Skip the DevTools: the free scan loads your page in a real browser, accepts and rejects the cookie banner, and shows what the Adform tracking point actually sent.
At a glance
- Tag script
trackpoint-async.jsfromadform.net- Event request
track.adform.net/Serving/TrackPoint/?pm=<setup ID>&ADFPageName=…- Setup ID
- The
pmvalue: a number identifying your tracking setup in Adform - Page name
- Set with
pagename, with levels separated by adivider(by default|) - Order data
order.sales,order.orderid,order.currency, plus product lines
https://track.adform.net/Serving/TrackPoint/?pm=11234567&ADFPageName=2Shop%7CCheckout%7COrder%20confirmation
pm=your tracking setup ID.ADFPageName=the page name, levels separated by the divider (%7C is |).
Example values. Long requests are shortened to the parameters that matter.
Check the requests
- Open DevTools on the Network tab, filter on
adform, accept the cookie banner and load a page. - Find the request to
track.adform.net/Serving/TrackPoint. Checkpmis your tracking setup ID and that the page name is the one you expect for that page. - Open a few pages of the same type (two product pages, two category pages). Their page names should follow the same pattern, not contain IDs, session tokens or search terms.
- Complete a test order. The confirmation page's request should carry the sales amount, the order ID and the currency.
Common Adform mistakes
Page names that keep changing
Adform reports and builds conversions on page names. When the page name comes from the full URL, every product variant, filter combination or order number becomes its own name, and the conversion you set up on "Shop|Order confirmation" never matches. Set page names deliberately, per page type:
window._adftrack = {
pm: 1234567,
divider: encodeURIComponent('|'),
pagename: encodeURIComponent('Shop|Checkout|Order confirmation')
};
Sales sent in a format Adform cannot read
The sales value should be a plain number with a dot as the decimal separator. A formatted price such as 1 299,00 kr ends up as no value or the wrong one. Send the currency with every order, especially if you sell in several currencies, and decide whether sales includes VAT and shipping: it should match what you compare it with.
No order ID
Without orderid, a reloaded confirmation page is a second sale, and you cannot match Adform's numbers to your orders. Use the shop's order number:
window._adftrack.order = {
sales: 1299.00,
orderid: '10045',
currency: 'SEK'
};
Tracking before consent
Adform is a common ad server in the Nordics and the rest of Europe, where its tracking point sets cookies. Load it through your consent tool so it runs after the visitor accepts, and use a consent tool registered with IAB TCF so the consent string reaches Adform. See Ad pixel fires before consent or after "reject".
An old setup ID still on the site
Agencies often run their own Adform setup. After a change of agency, the old tracking point stays and keeps receiving your data, sometimes next to the new one. If the scan or the Network tab shows two different pm values, find out which setup is yours and remove the other.
What the free scan checks
- Adform loads, and sends at least a page view
- Only one Adform ID, or a warning if there are more
- Adform waits until the visitor accepts cookies
- Adform stops after the visitor clicks "reject all"
- No email addresses in plain text in Adform requests
Server-side events (Conversions APIs, server-side tagging) are invisible to a public scan, so the report never marks them as working or broken.
Related
- Ad pixel fires before consent or after "reject": how to fix it
- Why Meta, Google Ads and GA4 don't match your orders
Sources
- Adform Tracking Point template for Google Tag Manager
- Tracklution: Adform connector (order variables)
Based on the platforms' public documentation and the requests their public tags make; menus and names change, so check the linked pages if a step looks different.