Callbacks: best practices
Adjust’s real-time callbacks let you receive raw, unaggregated data. Use our extensive range of placeholders to receive dynamic information on any Adjust-tracked data point, including clicks, installs, and in-app events. With access to raw data, you can identify which users have the highest retargeting potential and make more informed marketing decisions.

We’ve outlined how to set up your callbacks, as well as how to use dynamic callback parameters, filter your callback data, and export custom data. Here you can find our recommended approach to implementing callbacks. We have outlined some general advice and listed placeholders for each Adjust-tracked data point to guarantee your callbacks contain useful data for analysis.

Why should I use callbacks?

Adjust’s real-time callbacks are the only way to receive raw data directly on your own servers. Adjust does not permanently store raw data, and you cannot export raw data from the Adjust dashboard, which only reports aggregated data. Raw data is essential for user-level analysis and personalized retargeting efforts.

General callback advice

The way you use Adjust’s real-time callbacks will depend on your marketing objectives. The best practical advice is to ensure that you have the most useful placeholders appended to your callback URLs. We have detailed our recommended placeholders below. You can, of course, include any placeholder from our full list of Adjust placeholders.

Often, callback data is used to determine which users have the highest retargeting potential. Identify users that made significant in-app purchases before becoming inactive, for example, and you can retarget these users directly.

We recommend that you use our Amazon S3 bucket integration alongside our real-time callbacks, setting up the same placeholders on the same data points. The S3 bucket will act as a backup, ensuring that no data is lost if your server experiences downtime. Should you experience any server outages, you can use the data that continues to come into your S3 bucket to fill in the gaps.

You can add as many callback URLs as you need to each Adjust-tracked data point. To do this, separate the URLs with a space in the CALLBACK URL field within the dashboard.

Callback URL template

https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&event_token={event}&event_name={event_name} https://secondserverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}

Callback string with values to first endpoint

gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=event&created_at=1404214665&event_token=bkrfgq&event_name=purchase_100_coins

Callback string with values to second endpoint

idfa=8C6CBCOD-5F43-4765-A6E6-84DFF3D24707&idfv=CCB300A0-DE1B-4D48-BC7E-599E453B8DD4&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=install&created_at=1404249583

General placeholder advice

It is possible to string placeholders together to receive grouped values. You can do this by using a hyphen (-) between placeholders. This is useful for contextually related information, such as language and region.

Callback URL template

https://serverendpoint.com/mobile_attribution?language_region={language}-{region}

Callback string with values

language_region=en-us

Recommended placeholders for all callback URLs

We advise that you include the following placeholders in all callback URLs. These placeholders will ensure that you always receive basic information that you can use to identify the app, tracker, data point, and device to which the rest of your callback data belongs.
PlaceholderDescriptionExample
{gps_adid}Google Play Store advertising ID (Android only)38400000-8cf0-11bd-b23e-10b96e40000d
{idfa}ID for advertisers (iOS only)8C6CBCOD-5F43-4765-A6E6-84DFF3D24707
{idfv}ID for vendors (iOS only)CCB300A0-DE1B-4D48-BC7E-599E453B8DD4
{adid}Adjust device ID18546f6171f67e29d1cb983322ad1329
{tracker}Adjust tracker tokenabc123
{tracker_name}Current tracker name as defined in the Adjust dashboardNetwork1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en
{app_name}Name of the appMyApp
{activity_kind}This will allow you to determine the data point: impression, click, install, rejected install, rejected reattribution, session, reattribution, uninstall, reinstall, reattribution reinstall, updated attribution, in-app event, or ad spend (cost_updated)rejected_reattribution
{created_at}The timestamp for when the data point occurred1404214665
Note: You should include {gps_adid}, {idfa} and {idfv} if your app is configured as multiplatform in the Adjust dashboard. All callback examples on this page include all three placeholders. You can remove either {gps_adid} or {idfa} and {idfv} if your app is only configured for iOS or Android.

Recommended placeholders for Adjust-tracked data points

There are additional placeholders that we recommend including for specific data points. These placeholders provide information specifically related to the data point for which you are receiving the callback.

Adjust can send callbacks for the following Adjust-tracked data points: *Only available if you have purchased Adjust’s Fraud Prevention Suite
**Only available if you have purchased our uninstall and reinstall tracking package. Contact sales@adjust.com for more information.
***Only available on the Business Pro pricing plan and above
****Only available if you have purchased our Multi-Touch solution. Contact sales@adjust.com for more information.
*****Only available if you have purchased our ad revenue package.

Below you can find a brief description of each data point, along with a list of recommended placeholders, a callback template, and an example of the callback string with values that your server would receive.

Impression

Impression callbacks are fired on every Adjust-tracked impression.
PlaceholderDescriptionExample
{impression_time}Attributed impression timestamp1403568830
{impression_time_hour}Attributed impression timestamp rounded to the nearest hour1499875200
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&impression_time={impression_time}&impression_time_hour={impression_time_hour}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=impression&created_at=1533568830&impression_time=1533568830&impression_time_hour=1533567600

Click

Click callbacks are fired on every Adjust-tracked click.
PlaceholderDescriptionExample
{click_time}Attributed click timestamp1403568849
{click_time_hour}Attributed click timestamp rounded to the nearest hour1499864400
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&click_time={click_time}&click_time_hour={click_time_hour}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=click&created_at=1533568830&click_time=1533568830&click_time_hour=1533567600

Install

Install callbacks are fired on every first in-app session (i.e., an install in Adjust).
PlaceholderDescriptionExample
{installed_at}Install (i.e., first app open) timestamp1404214634
{installed_at_hour}Install (i.e., first app open) timestamp rounded to the nearest hour1418169600
{conversion_duration}Time between click and install or reattribution in seconds72
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&installed_at={installed_at}&installed_at_hour={installed_at_hour}&conversion_duration={conversion_duration}
Callback string with values
idfa=8C6CBCOD-5F43-4765-A6E6-84DFF3D24707&idfv=CCB300A0-DE1B-4D48-BC7E-599E453B8DD4&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=install&created_at=1533568830&installed_at=1533568830&installed_at_hour=1533567600&conversion_duration=1230

Session

Session callbacks are fired on every in-app session
PlaceholderDescriptionExample
{last_time_spent}Length of user's last session in seconds74
{session_count}Number of sessions recorded by current Adjust SDK34
{lifetime_session_count}Number of sessions recorded across user lifetime185

Note: Installs and reattributions are also counted as sessions in your dashboard statistics, but not in your raw data exports.


Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&last_time_spent={last_time_spent}&session_count={session_count}&lifetime_session_count={lifetime_session_count}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=session&created_at=1533568830&last_time_spent=74&session_count=34&lifetime_session_count=78

Custom in-app event

Custom in-app event callbacks are fired every time an Adjust-tracked in-app event is triggered by a user. In-app event callbacks must be set up individually, per custom in-app event.
PlaceholderDescriptionExample
{event}Event tokenbkrfgq
{event_name}Event name as set in the Adjust dashboardpurchase_100_coins
Note: Since event names can always be modified in the Adjust dashboard, the {event_name} placeholder should only be used as a human-readable label. Conversely, event tokens are permanent, and can always be referenced in your reporting as a constant identifier.
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&event_token={event}&event_name={event_name}
Callback string with values
idfa=8C6CBCOD-5F43-4765-A6E6-84DFF3D24707&idfv=CCB300A0-DE1B-4D48-BC7E-599E453B8DD4&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=event&created_at=1533568830&event_token=bkrfgq&event_name=purchase_100_coins
Custom in-app revenue event
If you have configured custom revenue events, then you can collect this revenue information by adding any of the following placeholders to the relevant custom in-app event callback URLs. Revenue event callbacks must be set up individually for each revenue event.
PlaceholderDescriptionExample
{revenue_float}Revenue as sent from the Adjust SDK or via S2S (in whole currency units)4.99
{revenue}Revenue as sent from the Adjust SDK or via S2S (in cents)345
{currency}Original ISO 4217 currency code sent from the Adjust SDKeur
{revenue_usd}Revenue in US dollars3.99
{revenue_usd_cents}Revenue in US cents399
{reporting_revenue}Revenue as reported in the Adjust dashboard in whole currency units3.25
{reporting_currency}ISO 4217 currency code used in Adjust dashboard reportingeur
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&event_token={event}&event_name={event_name}&revenue_float={revenue_float}&revenue={revenue}&currency={currency}&revenue_usd={revenue_usd}&revenue_usd_cents={revenue_usd_cents}&reporting_revenue={reporting_revenue}&reporting_currency={reporting_currency}
Callback string with values
idfa=8C6CBCOD-5F43-4765-A6E6-84DFF3D24707&idfv=CCB300A0-DE1B-4D48-BC7E-599E453B8DD4&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=event&created_at=1533568830&event_token=bkrfgq&event_name=purchase_100_coins&revenue_float=4.99&revenue=499&currency=usd&revenue_usd=4.99&revenue_usd_cents=499&reporting_revenue=4.99&reporting_currency=usd

Reattribution

Reattribution is the process of assigning a user to a new source of mobile attribution following their initially attributed install. Adjust will send a reattribution callback with every in-app session that meets the requirements for reattribution (i.e., your inactivity period and reattribution window settings).
PlaceholderDescriptionExample
{reattributed_at}Timestamp for the reattribution session1418174568
{reattributed_at_hour}Timestamp for the reattribution session rounded to the nearest hour1418173200
{first_tracker}The Adjust tracker token of the user’s original, install trackerabc123
{last_tracker}The Adjust tracker token of the user’s previous (i.e., prior to the latest reattribution) trackerxyz4567
{last_tracker_name}The previous (i.e., prior to the latest reattribution) tracker name as defined within the Adjust dashboardNetwork4%3A%3AEaster%3A%3ABunnies%3A%3A640x140_jp
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&reattributed_at={reattributed_at}&reattributed_at_hour={reattributed_at_hour}&first_tracker_token={first_tracker}&last_tracker_token={last_tracker}&last_tracker_name={last_tracker_name}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=reattribution&created_at=1533568830&reattributed_at=1533568830&reattributed_at_hour=1533567600&first_tracker_token=abc123&last_tracker_token=xyz4567&last_tracker_name=Network4%3A%3AEaster%3A%3ABunnies%3A%3A640x140_jp

Uninstall

The only advertising or device ID available on the uninstall data point is the Adjust device identifier (ADID). Ensure that you include an {adid} placeholder in your uninstall callback URL, so you can map the ADID value to other advertising IDs in your system. Also verify that you have the {adid} placeholder appended to all the other data points that you receive callbacks for, as advised in the recommended placeholders for all callback URLs section, so that you can correlate these data points with any uninstall activity.

You will only have access to this data point if you have purchased Adjust's uninstall and reinstall tracking package.
PlaceholderDescriptionExample
{adid}Adjust device ID18546f6171f67e29d1cb983322ad1329
{time_to_uninstall}Time between app install (or latest reinstall) and subsequent uninstall in seconds691200
{uninstalled_at}Uninstall timestamp (estimation based on last session time)1522835851
{last_session_time}Last session timestamp1522835836
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&time_to_uninstall={time_to_uninstall}&uninstalled_at={uninstalled_at}&last_session_time={last_session_time}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=uninstall&created_at=1533568830&time_to_uninstall=691200&uninstalled_at=1533568830&last_session_time=1533468830

Reinstall

Reinstall callbacks are fired every time Adjust tracks an install from a user who had previously uninstalled your app.

You will only have access to this data point if you have purchased Adjust’s uninstall and reinstall tracking package.
PlaceholderDescriptionExample
{time_to_reinstall}Time between latest app uninstall and subsequent reinstall in seconds1985847
{uninstalled_at}Uninstall timestamp (estimation based on last session time)1522835851
{reinstalled_at}Reinstall session timestamp1522825531
{last_session_time}Last session timestamp1522835836
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&time_to_reinstall={time_to_reinstall}&uninstalled_at={uninstalled_at}&reinstalled_at={reinstalled_at}&last_session_time={last_session_time}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=reinstall&created_at=1533568830&time_to_reinstall=10732979&uninstalled_at=1522835851&reinstalled_at=1533568830&last_session_time=1522735851

Reattribution reinstall

Reattribution reinstall callbacks are fired whenever a reinstall session also meets the requirements for reattribution (i.e., your inactivity period and reattribution window settings). Thus, we recommend including the placeholders you would add to your reattribution callback URL and those you would add to your reinstall callback URL.

You will only have access to this data point if you have purchased Adjust’s uninstall and reinstall tracking package.
PlaceholderDescriptionExample
{reattributed_at}Timestamp for the reattribution session1418174568
{reattributed_at_hour}Timestamp for the reattribution session rounded to the nearest hour1418173200
{first_tracker}The Adjust tracker token of the user’s original, install trackerabc123
{last_tracker}The Adjust tracker token of the user’s previous (i.e., prior to the latest reattribution) trackerxyz4567
{last_tracker_name}The previous (i.e., prior to the latest reattribution) tracker name as defined within the Adjust dashboardNetwork4%3A%3AEaster%3A%3ABunnies%3A%3A640x140_jp
{time_to_reinstall}Time between latest app uninstall and subsequent reinstall in seconds1985847
{uninstalled_at}Uninstall timestamp (estimation based on last session time)1522835851
{reinstalled_at}Reinstall session timestamp1522825531
{last_session_time}Last session timestamp1522835836
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&reattributed_at={reattributed_at}&reattributed_at_hour={reattributed_at_hour}&first_tracker_token={first_tracker}&last_tracker_token={last_tracker}&last_tracker_name={last_tracker_name}&time_to_reinstall={time_to_reinstall}&uninstalled_at={uninstalled_at}&reinstalled_at={reinstalled_at}&last_session_time={last_session_time}
Callback string with values
idfa=8C6CBCOD-5F43-4765-A6E6-84DFF3D24707&idfv=CCB300A0-DE1B-4D48-BC7E-599E453B8DD4&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=reattribution_reinstall&created_at=1533568830&reattributed_at=1533568830&reattributed_at_hour=1533567600&first_tracker_token=xyz456&last_tracker_token=def789&last_tracker_name=Network4%3A%3AEaster%3A%3ABunnies%3A%3A640x140_jp&time_to_reinstall=10732979&uninstalled_at=1522835851&reinstalled_at=1533568830&last_session_time=1522735851

Rejected install and reattribution

Rejected install or rejected reattribution callbacks are fired when an attribution is rejected due to  “anonymous” IP filtering, distribution modeling, click injection filtering, or a missing or invalid SDK Signature.

You can only receive callbacks for these data points if you have signed up to Adjust’s Fraud Prevention Suite. 

To know which type of fraud an install or reattribution was rejected for, you will need to include the following placeholder in your callback URL:
PlaceholderDescriptionExample
{rejection_reason}The reason for a rejected install or reattributionanonymous_traffic
All possible values returned for {rejection_reason}:
  • anonymous_traffic
    • “anonymous” IP filtering
  • distribution_outlier
    • click spamming: distribution modeling
  • too_many_engagements
    • click spamming: hyper engagement
  • engagement_injection
    • click injection filtering
  • incorrect_signature
    • SDK Signature
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&rejection_reason={rejection_reason}
Callback string with values
idfa=8C6CBCOD-5F43-4765-A6E6-84DFF3D24707&idfv=CCB300A0-DE1B-4D48-BC7E-599E453B8DD4&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=rejected_reattribution&created_at=1533568830&rejection_reason=engagement_injection

Updated attribution

Updated attribution callbacks are fired whenever a user’s attribution changes after the initial install attribution or reattribution. This usually occurs when a self-attributing partner, such as Google or Facebook, claims an install after we have already attributed it to another Adjust-tracked source.
PlaceholderDescriptionExample
{outdated_tracker}Adjust tracker token for the original source of attributionabc123
{attribution_updated_at}Updated attribution timestamp1403566587
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&outdated_tracker_token={outdated_tracker}&attribution_updated_at={attribution_updated_at}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=update&created_at=1533568830&outdated_tracker_token=xyz456&attribution_updated_at=1533568830

Ad spend

The ad spend data point is specifically for accessing ad spend data that networks send to us through our ad spend API. You will need to confirm with the networks you’re running with whether they are using the ad spend API or cost on engagement to send us their ad spend data. If they are using cost on engagement, you can append these placeholders to an impression, click, install, and/or global callback URL, instead.

You will only have access to this data point if your are on the Business Pro pricing plan or higher.
PlaceholderDescriptionExample
{cost_type}The campaign pricing model (CPI, CPC, or CPM)cpi
{cost_amount}Cost of the user engagement4.99
{cost_currency}ISO 4217 currency code of the cost dataeur
{reporting_cost}Cost of the user engagement converted to your app’s reporting currency and as displayed in the Adjust dashboard2.56
{cost_id_md5}An MD5 hash of the cost ID provided by a network using our ad spend API73a00ef928d55b23071bff981c098d48
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&cost_type={cost_type}&cost_amount={cost_amount}&cost_currency={cost_currency}&reporting_cost={reporting_cost}&cost_id_md5={cost_id_md5}
Callback string with values
idfa=8C6CBCOD-5F43-4765-A6E6-84DFF3D24707&idfv=CCB300A0-DE1B-4D48-BC7E-599E453B8DD4&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=cost_update&created_at=1533568830&cost_type=cpi&cost_amount=4.99&cost_currency=usd&reporting_cost=4.99&cost_id_md5=73a00ef928d55b23071bff981c098d48

Self-attributing network click / impression

Self-attributing network click / impression callbacks are fired on every multi-touch click / impression reported by a self-attributing network.
PlaceholderDescriptionExample
Any relevant advertising IDs and/or device IDs (e.g., {idfa}, {gps_adid}, {idfv}, {adid})*Advertising IDs and/or device IDs (used to map multi-touch clicks and impressions with resulting installs, sessions, and events)8C6CBCOD-5F43-4765-A6E6-84DFF3D24707, 38400000-8cf0-11bd-b23e-10b96e40000d, CCB300A0-DE1B-4D48-BC7E-599E453B8DD4, 18546f6171f67e29d1cb983322ad1329
Any relevant Google, Facebook, and/or Twitter specific placeholders (see Adjust’s placeholder list)Specific placeholders for each self-attributing network where you are running campaignsvaries
* The advertising IDs and/or device IDs in your multi-touch callback URLs must also appear in the callback URLs for installs, sessions, reattributions, events, rejected installs (optional), and rejected reattributions (optional).

Note: We recommend using https:// for all callback URLs. For security purposes, some partners only share campaign data over HTTPS.
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&created_at={created_at}&facebook_campaign={fb_campaign_group_name}&facebook_campaign_id={fb_campaign_group_id}&google_campaign={adwords_campaign_name}&google_campaign_id={adwords_campaign_id}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&created_at=1533568830&facebook_campaign=DPA-PPM_SKU_PPM&facebook_campaign_id=23842588848920296&google_campaign=US+re-engagement&google_campaign_id=12345678

Global

A global callback is a master callback that covers every Adjust-tracked data point. Use of a global callback ensures that you will receive the same exact information for every Adjust-tracked data point. Global callbacks are fired in addition to any other callback that you have specified at the individual event level. Therefore, if you set a global callback in addition to a callback at the in-app event level, Adjust will fire two callbacks: one that contains the data requested in the global callback and one that contains the data requested at the in-app event level.

The recommended placeholders below are the bare essentials for a global callback. If, for example, you are expecting to receive information on clicks, installs, sessions, in-app events, and reattributions, your global callback URL should also include the recommended placeholders found in the tables above for those data points.

Note: Add a global callback by selecting ADD GLOBAL CALLBACK at the bottom of the real-time callbacks sidebar in the Adjust dashboard.
PlaceholderDescriptionExample
{activity_kind}This will allow you to determine the data point: impression, click, install, rejected install, rejected reattribution, session, reattribution, uninstall, reinstall, reattribution reinstall, updated attribution, in-app event, ad revenue, or ad spend (cost_updated)session
{event}This will allow you to identify different in-app events at the event-token levelbkrfgq
{event_name}This will allow you to identify different in-app events by the event name as written in the Adjust dashboardsignup
Note: Due to the fact that event names can always be modified in the Adjust dashboard, the {event_name} placeholder should only be used as a human-readable label. Conversely, event tokens are permanent, and can always be referenced in your reporting as a constant identifier.
Callback URL template
https://serverendpoint.com/mobile_attribution?gps_adid={gps_adid}&idfa={idfa}&idfv={idfv}&adid={adid}&tracker_token={tracker}&tracker_name={tracker_name}&app_name={app_name}&activity_kind={activity_kind}&created_at={created_at}&event_token={event}&event_name={event_name}
Callback string with values
gps_adid=38400000-8cf0-11bd-b23e-10b96e40000d&adid=18546f6171f67e29d1cb983322ad1329&tracker_token=abc123&tracker_name=Network1%3A%3AChristmas%3A%3AReindeers%3A%3A320x70_en&app_name=MyApp&activity_kind=event&created_at=1533568830&event_token=bkrfgq&event_name=purchase_100_coins
Receive ad spend data through a global callback
If you want to receive ad spend data through your global callback, you can also append the ad spend data point placeholders. However, depending on whether the network is using our ad spend API or cost on engagement, you will receive the ad spend information through your global callback in different ways:
  • Ad spend API: you will receive the ad spend information when the network sends it to us; {activity_kind} will be filled with cost_update
  • Cost on engagement: you will receive the ad spend information on click, impression, or install. Thus, the {activity_kind} placeholder will be filled with click, impression, or install. Additionally, you will not receive a {cost_id_md5} value, as this is only used through the ad spend API.

On this topic