Postback Conversion Tracking

Postback Conversion Tracking

With postback conversion tracking, you can see conversion reporting in Bidsopt DSP without having to rely on browser cookies. This lets you track conversions even when you cannot place a conversion pixel or when the conversion happens outside of a browser. Examples include an affiliate network tracking platform like Tune or an app tracking platform like AppsFlyer.

When you use postbacks, you configure Bidsopt  DSP and your tracking platform to send the right information to each other:

  • The Bidsopt DSP campaign’s click URL sends the postback ID(click id aka transaction id)  to the tracking platform.
  • The tracking platform sends the postback ID to Bidsopt DSP when a conversion takes place.

How It Works

Postback conversion tracking uses server-to-server calls to pass information between two systems: Bidsopt and a tracking platform.

As an example, let’s say we want to track app installations as our conversion. Since app installs don’t happen in a web browser, we can’t use a conversion pixel. Instead, we need an app tracking platform, which can determine when the conversion takes place, attribute the conversion to a click, and then report the conversion to Bidsopt DSP using a postback.

Before the campaign runs:

  • The app developer chooses a tracking vendor and installs its SDK when she designs the app. She writes the app so that it makes a call to the tracking vendor when it first opens.
  • In the tracking vendor’s UI, someone configures the postback. Usually, this is done by simply selecting Bidsopt DSP from a list and entering the details from the previous step. The tracking vendor will supply a click URL to be used for the campaign.
  • The Bidospt DSP user uses this click URL as the destination URL for the ads. It is populated with macros that cause Bidsopt DSP to pass important values including the postback ID to the tracking vendor on click.

Setup Overview

The setup steps on both the tracking vendor side and DSP side are all essential for postback tracking to work: essential information must flow in both directions from one system to the other. The following steps are written from the perspective of the DSP user.

1. Determine which tracking vendor will be used for the campaign.

You need to inquire with the agency or app publisher that you are running the campaign for. If you are also the app publisher, then you or a colleague should know what tracking vendor you use.

Setup is simplified for many tracking vendors, as they provide templates for ease of implementation. If a tracking vendor does not offer a template for Bidsopt DSP, you can request this by contacting DSP support and introducing us to an appropriate person at the tracking vendor – most vendors are happy to do this. 

2. If any of the vendors do not give a tracking template we use below postback details 

Postback URL{click_id}&aff_sub1={pub_clickid_value}

Where clickid is your placeholder name where we will pass our value in the landing page URL. You need to post back the same to us through the above postback integration.

Sample Postback Response:

Sample Landing page URL:


where bo_ck is Bidsopt click macro.

Bidsopt does support additional macros to send like pub id, advertiser id, campaign id…where the client can track at their end for their optimization:

Banner Ad Macros:

bo_cid === Bidsopt Client ID for App or Website (it is pub id)

bo_advertiser_id === Bidsopt Advertiser ID

bo_campaign_id === Bidsopt Campaign ID

bo_strategy_id === Bidsopt Strategy ID

bo_udid_key === Bidsopt User device identifier collected (it may be ifa or ifa_md5 etc..)

bo_udid_val === Bidsopt User device identifier value

bo_ip === IP Address

bo_mobile_model === Mobile Model

bo_publisher_id === Bidsopt Publisher Identifier

bo_ck ====== Bidsopt Click Identifier

TAG Macros:

This will have $ in the front to avoid the repeat of the string like bo_click in the TAGS!

$bo_ck ==== For click tracking at third party TAGs

$bo_cid === Bidsopt Client ID for App or Website (it is pub id)

$bo_cb ====== Bidsopt Cache Buffer 

$bo_impression_id === Bidsopt Impression Id