The Postback URL Ultimate Guide

What is a postback URL in digital advertising
A Postback URL (AKA server to server pixel) is used in digital marketing to pass conversion data between a merchant and a marketer.

Postback URLs are at the center of the data-driven marketers ecosystem. They are the invisible links that pass data from one system to another. They run in the background, without ever being seen by consumers, ad blockers, or even browsers.

In this post, I will explain everything you need to know about Postback URLs, why they are important, and why soon, they will be an integral part of any digital marketer stack.

What is a postback URL?

A Postback URL is a URL created by a conversion data platform. The URL is then called by an affiliate network, whenever a conversion takes place.

When calling the Postback URL, the affiliate network passes contextual data such as the conversion value, the product name, or the conversion type.

What are Postback URLs synonyms?

While the term postback URL is generally accepted in the digital marketing industry, some companies use different names.

  • Server to server pixel (Cake)
  • S2S tracking pixel
  • Callback URL (Maxbounty)
  • Conversion API (Facebook)
  • Cookieless tracking (CJ Affiliates)
  • Server based pixels

Regardless how they are called, the best affiliate programs have this feature enabled by default for their affiliates.

Facebook Postback URL
Facebook does not provide a Postback URL. Instead, the Facebook Marketing API has an end-point called the Conversion API.

Why are Postback URLs important?

Postback URLs are important for many reasons. First of all, they allow performance marketers (AKA affiliate marketers) to track and attribute conversions to their ad campaigns. This is done without placing a tracking pixel on the merchant’s “thank you page”. The other top reason, is that they do not rely on cookies, which can be blocked by browsers such as Firefox or Safari.

In essence, they give marketers the ability to instantly attribute conversions to their campaigns. In fact, as soon as the ad network (ex: Google Ads) receives the conversion data, it allows the marketer to apply any bid strategies based on any conversion metrics.

For example, the marketer can optimize its affiliate campaigns on Google Ads according to ROI (Return on Investment) or a given CPA (cost per acquisition).

💡 Why using a Postback URL?
A Postback URLs is an alternative to tracking pixels. The main difference is that instead of being triggered in the visitor browser, it is triggered by the affiliate network backend server. As opposed to tracking pixels, the Postback URL relies on query string parameters to track the conversions as opposed to browser cookies. For this reason, conversion tracking with Postback URL is also called cookieless tracking.

How Postback URLs work?

The Postback URL works according to the following process:

  1. When a visitor clicks on a link, the marketer’s tracking server will append a unique click_id to the product link. url?click_id=123
  2. The merchant server will record the click_id=123
  3. Upon conversion the merchant will call the marketer’s postback URL and append the same click_id to the postback url.
How postback URL works, explained in a data flows from the affiliate network to the affiliate tracking platform (also called conversion data platform).
How Postback URL works.
https://postbackurl.io?click_id=123&price=10.00&product=iPhone
Affiliate Network or Merchant?
In this post, we use several terms to define the merchant. Sometimes, it’s the affiliate network, sometime we use the term Advertiser and sometimes we call it the merchant. Regardless of how we call it, it’s the business entity that is responsible to call the marketer’s Postback URL.

The entities connected by Postback URL:

There are two parties involved in the data flow:

  1. The marketer: The marketer sends the traffic, and receives the conversion data.
  2. The affiliate network: The Affiliate Network receives the traffic, and sends the conversion data.

The systems involved in the process:

The affiliate network platform:

In general, the affiliate network has an event notification service responsible to call the affiliate marketer postback url.

The conversion data platform:

Affiliate marketers use a conversion data platform which provides the postback URL.

The affiliate tracking software is responsible to generate it, and the affiliate marketer will then place it in its affiliate account.

Conversion Data Platform
A conversion data platform is responsible to track, attribute and orchestrate conversion data across the marketer’s entire marketing stack.
Traditional tracking servers, otherwise called trackers, ad trackers or link trackers, work in a single dimension / direction.

What is the Postback URL Scope?

Depending on the affiliate network the scope can be either global or offer based.

  • Global: The network will fire the url for any conversion tracked under the affiliate account.
  • Offer Based: When the affiliate needs to define a specific URL for each offer.

The Postback URL Tracking Key

In order for the tracking process to work, both parties need to use a common key.

In general, the key is is called a click_id, but it may vary depending on the tracking system.

The conversion data platform will auto-generate the click_id for every Click, and append it to the offer link subid query string.

<br>
<a href="Https://your-affiliate-link.com?affid=123&subid=dynamicvalue"</a>
<br>

The query string parameter is defined by the affiliate network and can vary according to each network.

During the click:

When a visitor clicks on an affiliate link, the affiliate tracking software appends the query string parameter to the affiliate link. The query string parameter can be something like subid.

<a href="Https://your-affiliate-link.com?affid=123&subid=dynamicvalue" title="Best iphone Case" rel="sponsored">Get your iPhone Case</a>
During the Conversion:
https://postbackurl.io?click_id=asdlfjasdfasdfasdf

The affiliate network records the dynamic value and ties it to the visitor’s session and buying journey.

When a conversion occurs, the affiliate network calls the Postback URL and appends the dynamic value.

When the affiliate tracking system receives the postback URL “call” it checks it against its database, and upon finding a match, it records the conversion event.

Conversion data context

While the conversion event itself is important, the real value is in the conversion context.

What is the conversion data context?

The conversion data context is everything that gives more insights on what the conversion is about. It can be the conversion type, the conversion value, the conversion name, the product name.

In the example below, you can see what Partnerize sends to the AnyTrack Postback URL.

{
  "query": {
    "publisher_id": "1101lxxx45",
    "customer_type": null,
    "country": "US",
    "referer": "https://www.website.foo/",
    "search_engine_id": null,
    "publisher_commission": "700.00",
    "creative_id": "1011l39891",
    "source_referer": "https://top10-harleydavidson.foo/best-bikes-for-agencies/?utm_source=google&utm_medium=cpc&utm_content=9356xx06333&utm_term=best%20harleydavidson&campaignId=9252xx6620&adGroupId=xx565406333&feedItemId=&targetId=kwd-725419666&locInterestMs=&locPhysicalMs=1014255&matchType=e&network=g&device=m&deviceModel=&deviceType=mobile&campaignType=search&creativeId=416555874420&keyword=best-bikes-harleydavidson&placement=&category=&cacheBuster=4435128554743338465&adPosi",
    "advertiser_reference": null,
    "creative_type": "6",
    "conversion_reference": "190xx510600",
    "currency": "USD",
    "tracking_method": "ip",
    "value": "1,299.00",
    "campaign_id": "1101lxx561",
    "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1",
    "search_keyword": null,
    "conversion_time": "1594526385",
    "conversion_id": "1101l258443168",
    "publisher_reference": "vp9CFjpm7EDzmiTd08p2Pj",
    "partnerize": "1",
    "conversion_type": "1",
    "metadata_query_string": "container_version:124",
    "items": [
      {
        "item_code": null,
        "item_id": "1100l397567423",
        "item_sku": null,
        "item_commission": "700.0000",
        "item_type": "S",
        "item_gp": "0.0000",
        "item_publisher_commission": "700.0000",
        "item_meta": "id:7056-5/0/name:harleydavidson, agency: 11.5\" firm/brand:harley davidson",
        "item_status": "1",
        "item_value": "1299.0000",
        "item_category": null,
        "item_vertical": null
      }
    ],
    "query_string": "campaign:1101l561/currency:USD/conversionref:19000510600/voucher:attentivesms225/container_version:124/[id:7056-5/0/name:harleydavidson%20classic%20bike,%20agency%20:%2011.5\"%20firm/value:1299/quantity:1/brand:harleydavidson]"
  },
  "body": {
    "publisher_id": "110xxx2245",
    "customer_type": null,
    "country": "US",
    "referer": "https://www.website.foo",
    "search_engine_id": null,
    "publisher_commission": "700.00",
    "creative_id": "1011l39891",
    "source_referer": "https://top10-harleydavidson.foo/best-bikes-for-agencies/?utm_source=google&utm_medium=cpc&utm_content=93565406333&utm_term=best%harleydavidson&campaignId=9252596620&adGroupId=93565406333&feedItemId=&targetId=kwd-725419666&locInterestMs=&locPhysicalMs=1014255&matchType=e&network=g&device=m&deviceModel=&deviceType=mobile&campaignType=search&creativeId=416555874420&keyword=best-bikes-harleydavidson&placement=&category=&cacheBuster=4435128554743338465&adPosi",
    "advertiser_reference": null,
    "creative_type": "6",
    "conversion_reference": "19000510600",
    "currency": "USD",
    "tracking_method": "ip",
    "value": "1,299.00",
    "campaign_id": "1101l561",
    "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1",
    "search_keyword": null,
    "conversion_time": "1594526385",
    "conversion_id": "1101l258443168",
    "publisher_reference": "vp9CFjpm7EDzmiTd08p2Pj",
    "conversion_type": "1",
    "metadata_query_string": "container_version:124",
    "items": [
      {
        "item_code": null,
        "item_id": "1100l397567423",
        "item_sku": null,
        "item_commission": "700.0000",
        "item_type": "S",
        "item_gp": "0.0000",
        "item_publisher_commission": "700.0000",
        "item_meta": "id:7056-5/0/name:harley davidson, new model: 11.5\" firm/brand:harley davidson",
        "item_status": "1",
        "item_value": "1299.0000",
        "item_category": null,
        "item_vertical": null
      }
    ],
    "query_string": "campaign:1101l561/currency:USD/conversionref:19000510600/voucher:attentivesms225/container_version:124/[id:7056-5/0/name:xxxx:%2011.5\"%20firm/value:1299/quantity:1/brand:harley-davidson]"
  }
}

Postback URL HTTP Call Types

GET or POST

Postback URL post methods:

The affiliate network can append the conversion context in an arbitrary way or by substituting {placeholders} with the conversion data.

The arbitrary way

This method is the simplest for the affiliate network, because it posts the entire conversion data to the Postback URL.

In this case, the affiliate provides a “naked” Postback URL:

https://t1.anytrack.io/useridXXX/collect/partnerize

When the conversion is tracked, Partnerize posts the following JSON data to the Postback URL:

{
  "query": {
    "publisher_id": "1101lxxx45",
    "customer_type": null,
    "country": "US",
    "referer": "https://www.website.foo/",
    "search_engine_id": null,
    "publisher_commission": "700.00",
    "creative_id": "1011l39891",
    "source_referer": "https://top10-harleydavidson.foo/best-bikes-for-agencies/?utm_source=google&utm_medium=cpc&utm_content=9356xx06333&utm_term=best%20harleydavidson&campaignId=9252xx6620&adGroupId=xx565406333&feedItemId=&targetId=kwd-725419666&locInterestMs=&locPhysicalMs=1014255&matchType=e&network=g&device=m&deviceModel=&deviceType=mobile&campaignType=search&creativeId=416555874420&keyword=best-bikes-harleydavidson&placement=&category=&cacheBuster=4435128554743338465&adPosi",
    "advertiser_reference": null,
    "creative_type": "6",
    "conversion_reference": "190xx510600",
    "currency": "USD",
    "tracking_method": "ip",
    "value": "1,299.00",
    "campaign_id": "1101lxx561",
    "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1",
    "search_keyword": null,
    "conversion_time": "1594526385",
    "conversion_id": "1101l258443168",
    "publisher_reference": "vp9CFjpm7EDzmiTd08p2Pj",
    "partnerize": "1",
    "conversion_type": "1",
    "metadata_query_string": "container_version:124",
    "items": [
      {
        "item_code": null,
        "item_id": "1100l397567423",
        "item_sku": null,
        "item_commission": "700.0000",
        "item_type": "S",
        "item_gp": "0.0000",
        "item_publisher_commission": "700.0000",
        "item_meta": "id:7056-5/0/name:harleydavidson, agency: 11.5\" firm/brand:harley davidson",
        "item_status": "1",
        "item_value": "1299.0000",
        "item_category": null,
        "item_vertical": null
      }
    ],
    "query_string": "campaign:1101l561/currency:USD/conversionref:19000510600/voucher:attentivesms225/container_version:124/[id:7056-5/0/name:harleydavidson%20classic%20bike,%20agency%20:%2011.5\"%20firm/value:1299/quantity:1/brand:harleydavidson]"
  },
  "body": {
    "publisher_id": "110xxx2245",
    "customer_type": null,
    "country": "US",
    "referer": "https://www.website.foo",
    "search_engine_id": null,
    "publisher_commission": "700.00",
    "creative_id": "1011l39891",
    "source_referer": "https://top10-harleydavidson.foo/best-bikes-for-agencies/?utm_source=google&utm_medium=cpc&utm_content=93565406333&utm_term=best%harleydavidson&campaignId=9252596620&adGroupId=93565406333&feedItemId=&targetId=kwd-725419666&locInterestMs=&locPhysicalMs=1014255&matchType=e&network=g&device=m&deviceModel=&deviceType=mobile&campaignType=search&creativeId=416555874420&keyword=best-bikes-harleydavidson&placement=&category=&cacheBuster=4435128554743338465&adPosi",
    "advertiser_reference": null,
    "creative_type": "6",
    "conversion_reference": "19000510600",
    "currency": "USD",
    "tracking_method": "ip",
    "value": "1,299.00",
    "campaign_id": "1101l561",
    "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1",
    "search_keyword": null,
    "conversion_time": "1594526385",
    "conversion_id": "1101l258443168",
    "publisher_reference": "vp9CFjpm7EDzmiTd08p2Pj",
    "conversion_type": "1",
    "metadata_query_string": "container_version:124",
    "items": [
      {
        "item_code": null,
        "item_id": "1100l397567423",
        "item_sku": null,
        "item_commission": "700.0000",
        "item_type": "S",
        "item_gp": "0.0000",
        "item_publisher_commission": "700.0000",
        "item_meta": "id:7056-5/0/name:harley davidson, new model: 11.5\" firm/brand:harley davidson",
        "item_status": "1",
        "item_value": "1299.0000",
        "item_category": null,
        "item_vertical": null
      }
    ],
    "query_string": "campaign:1101l561/currency:USD/conversionref:19000510600/voucher:attentivesms225/container_version:124/[id:7056-5/0/name:xxxx:%2011.5\"%20firm/value:1299/quantity:1/brand:harley-davidson]"
  }
}

This method can be challenging since most affiliate tracking software do not have the ability to ingest the data and “remap” it to their own parameters. Yet, this method is very powerful as you get the entire dataset from which you can pick an choose which data to use.

Postback placeholders:

This method requires the affiliate marketer to provide a prebuilt postback url that includes query strings and {placeholders}.

Impact Postback URL:

https://t1.anytrack.io/useridxxx/collect/impact?ActionTrackerName={ActionTrackerName}&CampaignId={CampaignId}&CampaignName={CampaignName}&MediaPartnerId={MediaPartnerId}&MediaPartnerName={MediaPartnerName}&SubId1={SubId1}&SubId2={SubId2}&SubId3={SubId3}&AdId={AdId}&ActionTrackerId={ActionTrackerId}&ActionId={ActionId}&Amount={Amount}&Currency={Currency}&Payout={Payout}&EventDate={EventDate}&Status={Status}&StatusDetail={StatusDetail}&LandingPageUrl={LandingPageUrl}&SharedId={SharedId}&PromoCode={PromoCode}&RefCustomerCountry={RefCustomerCountry}

At run time, the Impact event notification service will call the Postback URL while substituting the {placeholders} with real values.

https://t1.anytrack.io/useridxxx/collect/impact?Status=PENDING&AdId=735510&EventDate=2020-07-11T22:17:49-04:00&RefCustomerCountry=US&PromoCode=julypromo&SharedId=&Amount=547.50&MediaPartnerId=xxx&CampaignName=capaign&MediaPartnerName=agancyname&ActionId=9556.4575.353598&LandingPageUrl=https://www.campaign.foo
⚠ Postback URL setup challenges
Unless the postback url is fully built for the specific affiliate network, this method is usually where affiliate marketers will have difficulties adding the correct placeholders in front of the right querystring parameters. ex: ?click_id={subId1}

Tracking links

Because the tracking mechanism starts when visitors click on tracking links. Therefore, it is important to follow standard url formats, where the subid parameter can be appended anywhere after the “?”.

Since AnyTrack redirectless tracking feature AutoTracks and AutoTags the product links. This feature enables marketers to use any type of links.

Base URL:

The default offer link provided by the affiliate network.

<https://your-affiliate-link.com?affid=123&offer=987&creative=xch123&subid={click_id}>

Deeplink:

URL that allow marketers to redirect visitors to a specific page within the merchant’s website.

<https://afflink.foo?affid=123&offer=987&creative=xch123&url=https://advertiserurl.foo/blog/what-is-a-postback-url&subid={click_id}>

Short url:

If an affiliate network provides a url shortening feature, it is crucial that the dynamic parameter can be appended after the url. Since the parameter is auto-generated for every click, it has to be visible and appended as a query string.

<https://surl.foo/346sd?subid={click_id}>

Naturally, the subid and value has to be forwarded to the regular affiliate link.

Testing Postback URLs

Because backend servers fire Postback URLs, the pubic doesn’t see them. This is great to protect your user data and privacy, but it’s also challenging. In fact, testing Postback URLs can be a real headache for the marketers.

They are not easy to understand, and because you can’t see the data moving from server A to server B , when there is an error, you are left with no other choice but to try to tweak your postback URL.

At AnyTrack we understand this can be challenging, so we provide a postback url testing tool to test your Postback URL, right within the AnyTrack Dashboard.

In the example below, you can see the entire dataset Hasoffers networks sends to AnyTrack postback URL.

{
  "query": {
    "affiliate_id": "4479",
    "payout": "4.48500",
    "aff_unique2": null,
    "source": null,
    "aff_unique1": null,
    "aff_unique4": null,
    "aff_unique3": null,
    "aff_click_id": "ej2kaIZSEV1rhNu8ohhqtt",
    "aff_unique5": null,
    "advertiser_id": "2",
    "offer_url_id": "51",
    "goal_id": "5",
    "datetime": "2020-05-19 12:46:16",
    "offer_file_id": "0",
    "currency": "USD",
    "offer_ref": "PRO",
    "aff_sub2": null,
    "aff_sub3": null,
    "aff_sub4": null,
    "aff_sub5": "ej2kaIZSEV1rhNu8ohhqtt",
    "advertiser_ref": null,
    "transaction_id": "10219dbfbe3c8802f63db008acd29c",
    "device_id": "{device_id}",
    "file_name": null,
    "ip": "35.161.196.166",
    "offer_id": "2",
    "offer_name": "PRO Subscription",
    "affiliate_name": "Agency Ltd",
    "affiliate_ref": null,
    "hasoffers": "tradingview",
    "aff_sub": null,
    "adv_sub": null,
    "session_ip": "92.170.247.132",
    "sale_amount": null
  }
}

Conclusion

Postback URLs are now an essential tool in every digital marketers toolbox. Because it allows to track without a “thank you” page and does not rely on cookies, it brings a new paradigm in tracking conversion data across the marketers ecosystems.

If you are an affiliate network, providing postback URL tracking capabilities to your affiliates and publishers carries plenty of benefits. The most important being, that when you help your affiliates measure their traffic accurately, you are guaranteed to get better traffic, improve your performances and eventually can claim loud and clear that’s it’s a Win Win Situation!

Laurent Malka Administrator
Co-Founder | AnyTrack

Laurent Malka is the Co-Founder of Anytrack. He was born and raised in Switzerland, and now lives and works in Israel. He is a serial entrepreneur with over 15 years of experience in marketing and business development. Laurent has been a panelist and speaker at numerous digital marketing events including SEMrush and IG Affiliates.
He prides himself on his ability to connect the dots across disciplines, industries, and technologies to solve unique challenges.

follow me

Share This Post

Share on facebook
Share on linkedin
Share on twitter

Subscribe To Our Newsletter

Get Updates - Industry, tracking, digital marketing

More To Explore

See the conversions you’re missing out on

No credit card required.