Tracking – Pixels, Postbacks and what in-between

Tracking – Pixels, Postbacks and what in-between

The basic technology and terminology, every marketer will have to know, starts with tracking. Without proper tracking we are basically blind to any result. We will not be able to measure any event nor our performance which will lead to over spent and loses. In this post we will touch base with all kinds of tracking, from conversion pixel types to LTV and impressions pixels.

Let’s start with answering, what we are actually trying to track? Every important action that happened on a 3rd party property. The importance of the action should be determinate by the marketer himself, and will change from campaign to campaign basing on the optimization’s depth level and the campaign’s goals. One will track conversion’s information along with source ids and other will try to track and match number of impressions and live impression’s bid-cost.

Conversion pixels

Conversions tracking it’s probably the most basic tracking purpose out there. Conversion tracking allows us to count the numbers of success conversions and the exact information and path the one conversion generated from.

i.e. conversion’s path: impression id: XXX, Click id: XXX, Publisher: XXX, Placement: XXX, Keyword: XXX, Campaign: XXX, Creative: XXX

There are two different basic ways to track conversions:

  • Client-side pixel (Pixel)
  • Server-side pixel (Postback)

Before I’m moving forward I would encourage each one of you to understand the terminology and the difference between those two. Client-side refer to any operation that performed by the client itself on one of his application for example. In our case, a piece of code that the user loads on his browser, with or without his knowledge. Server-side refer to any operation that performed on a remote machine with some functionality to create and store data.

Client-side pixel
Client side pixel is the first ever tracking mechanism and comes in a different ways in our industry:

  • Image pixel
  • Iframe pixel
  • Script pixel

Client pixel is very easy to create and I might write about it in the future but in the meanwhile all you need to understand its logic. Once a user loading a browser page he’s loading all sort of HTML code and a lot of different elements from text, audio to images etc. Each one of the elements has a path-location where it stored in a remote server so a user to get access to; when a user is requesting an image from a server for example, the server is writing the request in an access log or a dedicated log.
This is the exact method client side pixel is working. A marketer will place a piece of HTML code after a successful action happened (usually a type of Thank You page) and whenever a user will reach this stage the element will be loaded and the pixel will be triggered.


Only triggering the image-url won’t be enough since our logs will show us the number or times a success actions but without the data to understand which target generated us the lead. To enable this kind of tracking we will need to write and read cookie data to the user’s browser. We can easily write any information we want to the user’s cookie once he clicked our advertisement, from dynamic strings to keywords and targets, and read his cookie on the second time any element with our domain meeting the same user which is in this case, the triggered image pixel loaded on the campaign’s Thank You page.

Image, Iframe and Script pixels all have the same purpose and mechanism but one difference. Iframe and Script pixels can be used to piggyback other pixel with different domain while image can only piggyback other image pixels.

Although client-side pixel is easy to create and manage it isn’t reliable and can cause a lot of discrepancy between the product owner/affiliate numbers to the marketer itself. Since client-side pixel will be triggered for each time the Thank You page loaded, just consider a user submitting a lead-form and redirected to a Thank You page but he remembered that he want to add or remove an information from the form, he will use the browser’s backward button and will send the form once again. The product owner will count one lead but the marketer will count 2 conversions, each one for a client-side pixel load. Consider the option that the user disabled cookies, refreshed that Thank You page or he has any bot or crawler on his machine, the discrepancy can be enormous.

Server-side pixel / Postback
Most of industry switched to postback tracking due to many technical reasons, which a few of them we mentioned above. The server-side tracking using any data provide on the Landing Page URL itself to pass back to the marketer’s tracking system on a successful action (conversion) without any client-side intervention and it can be triggered at any point and any time that the advertiser is desired.

For an example, let’s check the details below:

Landing page URL:$clickid&beta=321456
Postback URL:$alpha

The marketer is promoting campaign and added a parameter called “alpha” with some dynamic or static value (“$clickid”) and he wishes to retrieve the data back to his tracking system upon any successful conversion. The advertiser will implement the marketer’s postback on his server and dynamically set that for each successful conversion the server will “fire” the postback and replace “$alpha” with “?alpha” parameter value. In that way the marketer getting the whole and exact information he sent to the advertiser. The “information” we mentioned before is a dynamic encoded string the generated on each impressions and / or click from the media platform. This encoded string usually contain all the data of the media & campaign the click came from to be phrase back to the system reports. On other cases the “information” is some kind of serial numbers (i.e. transaction id) to be crossed on a database-rows in order to get click/impression’s data.

If you are getting confused with the parameters order and what should be equal to what, all the logic you need to remember with postbacks is “Receiver is equal to Sender”. First call will be, me running a campaign for an advertiser and sending him data for each click:

?alpha (Receiver) = $CLICKID (Sender)

The second call will be, an advertiser returning the data to my server through my postback:

?clickid (Receiver) = $ALPHA (Sender)

For any of you whom interesting how the PHP (or any other SS language) code is looks-like on the advertiser’s side:

if( isset( $x ) )
$alpha = isset( $_GET[“alpha”] ) ? $_GET[“alpha”] : “”;
file_get_contents(“{$alpha}”, false);

$cu = curl_init( “{$alpha}” );

curl_setopt( $cu, CURLOPT_BINARYTRANSFER, true );
curl_setopt( $cu, CURLOPT_RETURNTRANSFER, true );

$postback = curl_exec( $cu );


LTV Pixels

LTV Pixel stands for Life Time Value and also known as value pixel, can take form as client or server-side. There are some traffic platforms that able to update dynamic values directly from the pixel itself such as Facebook ADS. This kind of pixel is really helpful when the commission of a successful conversion is not dynamic, ecommerce campaigns are a good example in this case.

Impression Pixels

Impressions pixels in most cases are client-side pixels (In video campaigns the impression pixel is server-side pixel and it more about tracking events than impressions) and have several purposes. The most obvious one is to let the advertiser track the exact number of impressions his campaign served, and usually it stands for CPM campaign. Another purpose is to send bid-cost of a singular impression to a chosen server in order to get an exact media cost when you are buying traffic on dynamic bids. There other methods and usage for impression pixels which ending with storing data on a view level such as storing user’s genders, time on page etc.

Pixels and postbacks are tools for better optimization and understanding our campaign’s behavior. There is always data that waiting for you to be analyzed and be used for better behavior understanding. I’ll make sure to follow up with additional post about common traffic and affiliate platform and how to integrate with them without being lost. Hope this post help any of you to get a better understand on the technical side of our industry.

Michael Baz

Related Posts
Leave a reply