Programmatic & DSP UTM tracking
Programmatic display bought through a demand-side platform (DSP) serves across countless publishers via real-time bidding. UTM parameters plus the DSP's dynamic macros on the landing URL are how those scattered clicks get attributed. This page gives a recommended structure and explains the macro approach common to DSPs.
Recommended structure
Set utm_source to the DSP or buying platform you use, and a display medium. Use the DSP's macros for campaign and creative so values populate at serve time.
- utm_source=<dsp-name> (e.g. dv360, the-trade-desk)
- utm_medium=display (or programmatic, kept consistent)
- utm_campaign=<campaign macro>
- utm_content=<creative/line-item macro>
Dynamic macros vary by DSP
Each DSP exposes its own macro syntax — for example a creative-ID macro, a line-item macro, an exchange macro, and a publisher/domain macro. Map those macros into your utm_campaign and utm_content so the values are filled in per impression.
Worked example (generic):
https://example.com/?utm_source=dsp&utm_medium=display&utm_campaign=q2-awareness&utm_content=%CREATIVE_ID%
Replace %CREATIVE_ID% with your DSP's actual macro token.
Why programmatic needs UTMs most
Programmatic spreads across the open web, so referrer-based reporting produces a meaningless long tail of domains. A single utm_source per DSP and consistent mediums turn that into one comparable channel — the only practical way to total programmatic against your other paid channels.
How it appears in analytics and logs
A visit with utm_source set to your DSP and utm_medium=display confirms a programmatic click. Without UTMs, programmatic traffic appears as a long, unhelpful list of individual publisher referrers.
Diagnostic use case
Attribute open-exchange programmatic clicks to the campaign and creative, despite the click arriving from any of thousands of publisher domains.
What WebmasterID can help detect
WebmasterID attributes utm-tagged DSP visits to your programmatic campaign server-side, collapsing many publisher referrers into one measurable channel.
Common mistakes
- Reporting programmatic by referrer domain instead of a single utm_source.
- Using the wrong DSP's macro tokens, leaving literal %MACRO% text in URLs.
- Mixing display and programmatic as two mediums for one buy.
- Encoding any individual into UTM or macro values.
Privacy and accuracy notes
DSP macros expand to campaign, creative, and publisher/exchange identifiers only. Never encode an individual. UTM values and macro outputs are public in the URL.
Related pages
- Display ads UTM tracking
Display and programmatic ads need their own medium so banner clicks are not confused with paid search or social. This page shows how to use utm_medium=display consistently and explains how platform click IDs differ from the utm_* parameters generic analytics tools read.
- Criteo retargeting UTM tracking
Criteo runs retargeting and commerce display ads across the open web. Its destination URLs can carry UTM parameters so retargeting clicks are attributed to the campaign rather than to generic display referrals. This page gives a recommended structure and the retargeting-specific caution about crediting visitors who would have returned anyway.
- UTM validation and QA
Most UTM data problems are preventable with a validation step before links go live. This page describes what to check on every tagged URL — presence of the core parameters, lowercase consistency, proper URL encoding, no double question marks — and a lightweight QA workflow so broken or inconsistent tags never reach production.
- Attribution analytics
Collapse a long tail of publisher referrers into one DSP channel.
Sources and verification notes
- Google Marketing Platform — Display & Video 360 click macrosExample of DSP dynamic macros for landing-page URLs.
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.