Skip to main content
Skip table of contents

Implementing Pixels

There are a few key concepts related to the implementation of DSP Pixels. Let’s have a look:

How to Implement?

Pixels can be implemented directly into the HTML of the webpage by placing the pixel code exactly as it was provisioned between the <body> and </body> tags. However, if the site is using container tags (i.e. DART Floodlight or Atlas UAT) or Tag Management Platforms (i.e. Signal or Google Tag Manager), then pixels should be implemented into their respective receptacles. Containers and Tag Management Platforms typically utilize templates that facilitate the specific needs of a campaign.

Refer to the Common Implementation Methods section below for more information.

Where to Implement?

In order to facilitate the correct setup, pixels should only be placed once (1x) on the pages they were designed to be placed on. For instance, a coupon download pixel should only be placed once on the coupon download page, a home page pixel should be placed once on the home page, and a landing page pixel should be placed once on the landing page. Most importantly, the conversion pixel should only be placed once (1x) on the intended user conversion action and nowhere else. 

How to Load?

Pixels need to be loaded either securely or non-securely.

Secure pixels should be used on all HTTPS pages and nonsecure pixels should be used on HTTP pages. The main difference is that secure pixels go through an extra step of encoding information so the message being sent is only readable by the sender and intended reader of the message. Nonsecure pages can support both secure and nonsecure pixels, but secure pages can only use secure pixels.

For optimal load time, we recommend that secure pixels only be used on secure pages. Zeta DSP JavaScript pixels are protocol agnostic, meaning they adjust based on the protocol of the page it is implemented on, but Image pixels will need an explicit HTTP or HTTPS declaration.

Cache Busting

Read more

Common Implementation Methods

It is important that pixels are set up correctly in order to ensure that DSP is accurately receiving data in order to optimize the campaign. The correct setup ensures that every user that loads the page will fire the DSP pixel. We recommend against using frequency capping or conditional firing rules as they may provide an incomplete understanding of your audience.

DoubleClick Floodlight

Default cachebuster macro: %n 

  • Setup as a Default Pixel under Dynamic Tags.

    • Do not place the DSP pixel as a Publisher tag unless instructed. Placing the DSP pixel as a Publisher tag would cause the pixel to conditionally fire on an Attributed Conversion, which gives us an incomplete view of an audience.

  • Ensure Floodlight is implemented in HTML as an iFrame or global site Floodlight, not an image Floodlight.

    • Image Floodlights do not support piggybacking.

Refer to Third-Party Tracking with Dynamic Tags for more information.

  • Ensure the correct Floodlight is being modified. Every Floodlight can be uniquely identified by its Category ID, which is visible in the Floodlight URL as cat=

Google Tag Manager

Default cache buster macro: {{Random Number}} 

Depending on whether the GTM account is V1 or V2, use the chart below to confirm that the {{Random Number}} cache bust macro is set up correctly.

Google Tag Manager Version

Access URL

To Enable {{Random Number}}


Create a new user-defined variable (macro) of type Random Number.


Activate the Random Number Built-in Variable.

  • The Zeta DSP Pixel should be set up as a Custom HTML Tag within GTM with support document.write checked on.

  • Ensure firing rules (called Triggers) are correctly set up. If incorrectly set up, this can lead to unexpected conditional firing.

  • Confirm most recent changes have been published to the live container.


Default cache buster macro: [%Random%] 

  • Sizmek has many settings that may conditionally fire pixels (deduplication, last entry in the path, etc). Please ensure all these settings are disabled.

Direct to HTML

Default cache buster macro: None 

  • The default cache buster macro is unique to each Advertiser.

  • Our pixels should go between the <body> and </body> tags.

  • Please work with your web developer to ensure pixels are implemented with best practices and guidelines in mind.

JavaScript vs Image Functionality




Page Load Performance

The Zeta DSP pixel and piggybacked pixels load asynchronously, in a non-blocking manner.

The Zeta DSP image and piggybacked pixels load asynchronously, in a blocking manner.

Cooke Matching

Higher match rate because cookie matching piggybacks load asynchronously resulting in more partner calls being completed.

Lower match rate because cookie matching piggybacks load synchronously so one partner call must complete before the next can begin.


Protocol agnostic based on the page on which it fires. Zeta DSP takes care of the secure (https) or non-secure (HTTP) automatically.

The client is responsible for properly declaring either secure (https) or non-secure (http).


Global timeout of 15 seconds.

Cookie Matching

In order to buy inventory efficiently and programmatically, the Zeta DSP utilizes pixels from our exchange partners to match their user IDs with our internal user IDs. With this cookie matching strategy, we are able to have more insight into the user's actions and determine which user is more likely to convert. This is standard programmatic practice and an effective strategy that we have always had in place. 

With that being said, we do have the ability to turn off these piggybacked pixels. However, the disabling of cookie matching would negatively impact campaign performance. Below is the current list of cookie match partners:

Partner Name

HTML Syntax

Google Adx

<img src="{base64userid}&forward=" width="1" height="1" />


<img style="display:none" src="{userid}" width="1" height="1">


<img src="{userid}&" width="1" height="1">

Yahoo Ad Exchange (Right Media)

<img src="" width="1" height="1" />

Rubicon Project

<img src="{userid}&expires=30&next=" width="1" height="1">

Index Exchange

<img src="{userid}&forward=" width="1" height="1" />


<img src="{userid}&img=1" width="1" height="1">


<img src="{userid}&redir=" border="0" width="1" height="1" />


<img src="{userid}&expires=30" width="1" height="1" />


<img src="{userid}" border="0" width="1" height="1" />


<img src=",000{userid}&r={timestamp}" width="1" height="1" />


<img src="{userid}" border="0" width="1" height="1" />


<img src="" width="1" height="1">

Sizmek Ad Server

<img src="" width="1" height="1">

<img src="{userid}" height="1" width="1" />


<img src="{userid}" width="1" height="1">


<img src="{userid}&_origin=1" height="1" width="1" style="display:none" />

DXH Zeta Data Cloud

<img src="{userid}" width="1" height="1" style="display: none" />


<img src="{userid}&r={cachebust}" height="1" width="1" border="0"/>

DXH Eyeota

<img src="" width="1" height="1" />


<img src="{userid}" border="0" width="1" height="1" />

DXH Semcasting

<img src="{userid}" width="1" height="1"/>

EMX Digital

<img src="{userid}"/>


<img src="{userid}&r=" width="1" height="1" />

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.