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 tracking 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.

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 advanced 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 Target 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’s browser, it is triggered by the affiliate network backend server. As opposed to tracking pixels which rely on Cookies to track the conversions, Postback URLs rely on query string parameters to track the conversion data. For this reason, this tracking method is also called “cookieless tracking.

How Postback URLs work?

The tracking process works according to the following timeline:

  1. When a visitor clicks on a link, the marketer’s tracking server will append a unique click_id to the product link. url.foo?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 url.
https://postbackurl.io?click_id=123asdfsadf&commission=30&cu=USD
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 entities involved in the conversion tracking 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 software:

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

The conversion data platform:

Affiliate marketers uses a conversion data platform which provides the postback URL, which is placed in the affiliate networks’ system.

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 affiliate 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 is required to set a postback 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.

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.

Get your iPhone Case

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 meaningful data 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://www.your-affiliate-link.com?aff_id=asdf&oid=offer1

Deeplink:

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

 https://www.your-affiliate-link.com?aff_id=asdf&oid=offer1&u=https://anytrack.io/blog

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://bit.ly/anytrack

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!

Frequently Asked Questions

Postback URL popular questions answered

A Postback URL is a kind of URL that points to a conversion tracking server or ad network conversion API endpoint.

The URL isa conversion tracking server will call when a conversion occurs in order to notify a partner or an other tracking server of the conversion event. The postback URL carries query strings and parameters which can be ingested by the receiving server to receive rich or micro data associated with the conversion.

In a scenario where an affiliate marketer sends traffic to an affiliate offer, the tracking flow will work according to the following process:

Prerequisites:
  • An Affiliate Tracking Software: A software like Anytrack that the affiliate marketer uses.
  • An affiliate management software: A software like Tune or Cake, that enables merchants to manage their affiliate program.
The Postback tracking flow:

1. The flows starts when a visitor clicks on the affiliate offer link.

2. Upon the click, the affiliate tracking software does a few things:

  • Generate and record a unique dynamic_value such as 1a2b3c4d
  • Append the dynamic_value to the offer link subid parameter.

https://example.com?affId=xyz&subid=1a2b3c4d

3. The Affiliate Network server will capture and store the subid=dynamic_value parameter.

4. Upon conversion, the Affiliate network server will make a POST request to the affiliate tracking software’s postback url

https://anytrack.io/p?click_id=1a2b3c4d&sum=10

5. When the affiliate tracking software postback URL is called, it will record the event and attribute it to the initial click using the 1a2b3c4d value.

6. Finally, the affiliate tracking software adds the conversion data to its reports.

Note: The affiliate tracking software can also forward the conversion data to third party systems for further analysis or attribution.

A postback request occurs between two servers, and is meant to tie conversion events happening in the Sending Server, with web or mobile engagements events happening on the receiving server.
1. The Sending server: A server where the conversion event takes place. Usually an affiliate network’s server, ecommerce platform, or merchant.
2. The receiving server: A server that can ingest the conversion data.
 
Whenever an event such as a purchase happens on the Sending Server,  the server will send a POST or GET request to the “postback URL” provided by the receiving server.
Upon receiving the purchase event data, the server will send a response to the sending server to inform it that the data was received with or without errors.
  • Server to Server tracking (Cake)
  • S2S pixel
  • Server-side tracking
  • Conversion URL
  • Webhook URL (Zapier, Integromat)
  • Event Notification URL (impact, Rakuten)
  • Server side pixel tracking
  • Callback URL (Maxbounty)

S2S tracking stands for Server to Server tracking and is an other name for Postback URL tracking.

How to get your postback url in Here are the steps to get a postback URL

1. Login to your AnyTrack account.

2. Select the integrations you would like to track conversions from.

3. Copy the predefined postback URL:

https://t1.anytrack.io/xxx/
collect/nordvpn?aff_click_id={aff_click_id}&offer_id={offer_id}&offer_name={offer_name}&offer_ref={offer_ref}&goal_id={goal_id}&affiliate_id={affiliate_id}&payout={payout}

4. Now paste the postback url in your affiliate account.

Note: These instructions are specific to AnyTrack.

A Postback URL is usually provided by your conversion tracking software.

Global PostbackURL are used to trigger conversions globally, as opposed to specific to a conversion goal, product or offer.

Typically, if you promote multiple offers from an affiliate network, you will want to use a global postback url to track conversions from all offers, instead of using a specific postback url for each offer.

Yes. However, it requires some understanding of how webhook providers work. You can check the post on how to track conversions with webhooks.

Postback URLs enable affiliate marketers to track, attribute, receive, and send conversion data from and to third party systems.

By leveraging the conversion data, affiliate marketers can optimize their campaigns, improve their content.

No, Google Ads doesn’t provide a postback URL. The only way to send conversions to Google Ads is through the Offline Conversion API, the GTag conversion tag, or Google Analytics.