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).
How Postback URLs work?
The tracking process works according to the following timeline:
- 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
- The merchant server will record the
click_id=123
- 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
https://postbackurl.io?click_id=123&price=10.00&product=iPhone
The entities connected by Postback URL:
There are two entities involved in the conversion tracking flow:
- The marketer: The marketer sends the traffic, and receives the conversion data.
- 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.
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
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 as1a2b3c4d
- Append the
dynamic_value
to the offer linksubid
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.
- 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.