Trackers are the foundation of campaign tracking and nothing can be done without them. Adjust uses them in two ways: firstly, to provide a link to your app; and, secondly, to segment your users so that they may be analyzed.

When setting up campaigns that you want to track with Adjust, you create one or more trackers. These redirect by default to the App Store, where users can download your app. You can also freely modify trackers to redirect to other locations, dynamically redirect to different locations, or accept extended data from the network.

In this guide, we discuss:

  • how to set up trackers,
  • how to channel or redirect your users to various locations,
  • how to create useful segments to analyze the performance of your campaigns,
  • and how to plan and implement your campaign structure.

Note: The following page contains examples using a minimum-length tracker token. Always use the entire tracker token as displayed in your Adjust Campaign Wizard.


  • Trackers
    A tracker is the building block of your campaign that you create in the dashboard.
  • Parameters
    A parameter is an additional component that you add onto the tracker URL to modify its behaviour.
  • Query string
    The entire set of parameters.
  • Tracker URLs
    Tracker URL refers to the entire link, complete with domain and query string.
  • Tracker token
    The tracker token is the alphanumeric code after the domain, but before the query string. This page contains examples using a minimum-length tracker token. Always use the entire tracker token as displayed in your Adjust Campaign Wizard.

2Planning your tracker structure

In this section, we’ll discuss how to plan and organise your sources. If you’re already familiar with this, feel free to skip right to Campaign Structure Parameters.

Each tracker represents a group of users that share a common source. This allows you to compare and optimise different sources. Those groups can often be subdivided further to show you exactly which publishers, affiliates, or keywords work best.

For example, if you run campaigns with Network-X, all users that come from Network-X are grouped under the tracker Network-X Installs. When you compare top-level trackers, the behavior of your Network-X-driven users is compared to users from organic growth or from other networks.

Your Network-X Installs are further grouped by each Network-X campaign you have set up in your dashboard, and further by each adgroup. This allows you not just to compare Network-X as a whole, but to see exactly which ad group attracts the best users.

2.1Creating segments of users with tracker hierarchies

For each of your sources, you can lay out segments in the same way as with Network-X, described above. Each Adjust tracker can segment users up to four levels deep:

  • Network-level trackers are your top segments that you create in the dashboard;
  • Campaign-level trackers are the 2nd level of segmentation, appearing right below your network segment in your dashboard;
  • Adgroup-level trackers are the 3rd;
  • and Creative-level trackers are the 4th.

Your highest-level network tracker is always generated manually, but the other three levels can be generated automatically with campaign structure parameters.

You can freely plan and organize your tracker structure in the way that best suits your analysis and campaigns. For some of our clients, it makes sense to analyze different creatives, whereas for others the creatives are not as important as the placement location. For others, both of those options are necessary, structured and prioritized.

Planning is essential. When setting up a new campaign or setting up a new traffic source, think about questions like:

  • How is this source structured?
  • What are your options to optimize?
  • What are your objectives for the campaign?

A good structure accommodates future changes or alterations. Even if you currently do not intend to track specific creatives or targeting, it may be worthwhile to allow space for it. If you change your mind, you want your structure to adapt.

For example, if you are working with an affiliate network and want to track publisher IDs, these are usually the smallest grouping. You may add larger groups in-between, though, like different offers, campaigns or otherwise. And if you currently only run one type of offer, you may still want to add it, in case you have add several different offers next month.

Avoid creating trackers with very few users. Your analysis works best with enough users to run statistical analysis. A good baseline is to expect at least a few dozen users on any given tracker.

2.2Segmenting users dynamically with Campaign Structure Parameters

Campaign Structure Parameters are a set of labels that you can add to your URL in order to create new subtrackers. This allows you to create new trackers on the fly by using data that is available to you when the user clicks an ad. This is similar to how UTM parameters work on the Web.

If you create a tracker in the dashboard - let’s say we call it “AdNetwork” - you’ll receive a URL like:

Onto this URL, you are able to add the “campaign” parameter to segment users into different campaigns:

Any user clicking on a URL with the “campaign=CAMPAIGN_1” parameter would be assigned to the “CAMPAIGN_1” sublevel within your top network tracker “AdNetwork”.

Campaign-, adgroup- and creative-level trackers have corresponding Campaign Structure Parameters, e.g. campaign, adgroup and creative. Adding all three of these would give you a URL similar to:

This would create a segment displayed in your dashboard as “AdNetwork > CAMPAIGN_1 > ANY_NAME > REPLACE_ME.”

Go ahead - try it! Clicks are segmented just as well as installs, so you can test it right in your browser.

2.3Using data from media partners to create dynamic segments

Your media partners are often able to provide some data on e.g. publisher IDs, campaign details and so on. These can be transmitted via one of three parameters on the tracker URL.

Using placeholders, media partners can use a single click URL and automatically assign the correct values to your parameters. Placeholders will vary from partner to partner, but are usually phrases delineated with brackets, such as {publisher_id} or [creative_name]. These bracketed phrases will be automatically replaced with the correct values by the partner’s ad server.{creative_name}

If {creative_name} is a supported placeholder by the media partner, correct creative data will be entered into the creative parameter; this lets Adjust automatically create trackers for each creative.

Please check with your media partners about what data is available - and if you have any questions on how to capture such data, feel free to ping

2.4Priority rules for Campaign Structure Parameters

Data entered into parameters is used in as fully as possible, but priority is given to a consistent and logical tracker structure. There are two rules to consider:

Tracker URLs always supercede parameter values.

The traffic that you drive to a URL will primarily be assigned to that URL, and the data in parameters will be added as long as they don’t conflict. For example, if you use an adgroup-level tracker and attach a campaign parameter, the parameter will be ignored and the traffic will be assigned to the adgroup.

This means that while a network-level tracker can accept data for any of the lower steps in the hierarchy, an adgroup-level tracker would only accept data for the creative level. Creative-level trackers are the lowest level of segmentation and do not accept any incoming structure data from the URL.

Empty parameters are accepted as unknown.

If you leave a middle-rank parameter empty, we still use the data in your lower-level parameters. For example: - campaign-level tracker{publisher_id} - campaign-level tracker with creative, but not adgroup data

In this case, your data will be assigned to the campaign and tracker with an unknown adgroup. The unknown levels will be shown as ‘unknown’ in your dashboard when there is data for other sublevels.

As mentioned in the best practice section, it may make sense to leave a middle-rank parameter empty so you can use it in the future.

Similarly, if you assign traffic to a certain campaign but with an unknown adgroup, and later on add adgroup attributions, the traffic up until then will be shown as unknown.

Trackers do not change levels.

Once you have created a campaign-level tracker, that particular tracker cannot be renamed to become an adgroup-level tracker. This restriction is imposed by optimisation algorithms designed to create reports and rapidly fill the dashboard. You can, of course, freely rename your tracker as long as it stays at that level.

2.5Creating very large sets of subtrackers

As discussed, best practice use of Campaign Structure Parameters is for analytics purposes, meaning that you should have groups of a meaningful size at all times. Creating large sets of extremely small segments will not result in useful data for your analysis.

For that reason, trackers are limited to a maximum of 10,000 subtrackers. For example, you may not have more than 10,000 different values of creative for a particular tracker. When you design your tracker structure along the recommendations in this guide, it’s very unlikely that you will hit this limit.

If you, however, add data such as user IDs, or highly subdefined publisher IDs, it may happen. In this case, no further subtrackers will be created for that group, and you will be notified immediately.

In the case that you need this data to be funneled into your own BI systems, you can always use the Adjust label parameter or dynamic callback parameters.

2.6Creating trackers for Adjust’s API Attribution Partners.

For Adjust’s API Attribution partners you do not have to create a tracker, as Adjust’s API connection with this partner is sufficiant to concurrently create trackers as your campaigns are running. For more information on each partner, check out the Module Partners Guide.

Adjust’s API Attribution Partners

  • Facebook
  • Twitter
  • Youtube
  • Google Universal Apps
  • Yahoo Japan
  • Snapchat
  • iAd

TV Partners

  • Spoteffects
  • Wywy
  • MdotM TV
  • TV Squared
  • Adalyser

3Sending any data through attribution with the Adjust label parameter

In addition to attributing users to sources, Adjust can also connect the dots between specific users and any data that you want to transmit. Specifically, you can add any data as the Adjust label parameter on a tracker URL, and this data can then be accessed in callbacks and in the SDK.

To add such data, just enter it as the “label” parameter to a tracker URL. You can fill this parameter by hardcoding a value, or by using a macro from an adserver or an ad network. A corresponding placeholder - {label} - allows you to receive the data that you placed in this parameter on the tracker URL. It’s also available in the SDK.

Adjust label parameters are extremely handy when you have user-specific data that you want to access in other systems.

4Cross-platform trackers for multiple app stores

If you’re juggling multiple platforms, you obviously want your trackers to follow. Adjust provides several alternatives for working with trackers for multiple platforms.

Adjust can automatically detect the platform of a user upon the initial click and dynamically send that user to the correct App Store.

If you have several apps set up in Adjust, each for a different platform, then you can create two trackers in your dashboard and combine them. Take the tracker token of the second tracker and add it to the end, separating it with an underscore.

Let’s say you have two e-commerce apps, one on iOS and one on Android, and you have set up both in Adjust. Create one tracker for each platform, and create the multi-platform tracker like so:

Tracker URL
iOS tracker
Android tracker
multi-platform tracker

Any clicks from iPhones, iPads and so on will be sent to the iTunes App Store, and those clicks will be counted and shown toward your iOS tracker. The same would be true for Android devices.

For PCs or other kinds of devices, these would be redirected to the iOS tracker, as it is the first. You can reverse the order to send those devices to Google Play. If you would rather send these other devices to another location such as your website, check out fallback parameters in the next section.

If your app is already multi-platform on Adjust, you don’t have to do anything; all your trackers are cross-platform by default. If you are unsure whether or not your app is multi-platform, then it probably isn’t.

5Redirecting users to landing pages or in-app locations

Trackers can be modified to redirect users to locations other than the app store, while still tracking conversions.

Custom redirects allow you to send all users to a particular URL. For example, if you want all users to download the app from your own landing page rather than the App Store, you can set a redirect parameter:

This will always redirect the user to

Fallback parameters allow you to send users that are using the wrong platform to another location. For example, incoming clicks from PCs can be redirected to your website instead of an app store. By default, these users would instead be redirected to the iTunes landing page. For example:

This will redirect users to if and only if their device isn’t supported by the app store to which the tracker points.

You can freely combine multi-platform trackers with deep links and fallbacks. Redirect parameters, however, always supercede any other setup.

Note that all URLs in parameters should be encoded before they are entered as parameters.

5.1Redirecting users in iOS 10.3 and higher

With the release of iOS 10.3, Apple introduced a pop-up window in Safari prompting users to manually select their redirect to the app store.


However, depending on the ad environment, and the pop-up option selected, your user could be left unintentionally stranded. To understand your user’s journey, we’ve mapped engagement flow in the following table:

Engagement Flow

Ad Environment Popup Response Flow
Safari Open Safari > App Store
Outside Safari Open Ad Environment > Safari > App Store
Safari Cancel Safari > User remains on adpage
Outside Safari Cancel Ad Environment > Safari > fallback landing page (if used); does not automatically display pop-up for app store redirect. (Instructions for adding the pop-up window to your page can be found below.)
Outside Safari Cancel Ad Environment > Safari > Adjust designed landing page (if no fallback used)

Please note that for iOS versions below 10.3, all users are redirected to the App Store without any interruption.

How to set up a custom fallback landing page

To guide your user’s redirect, and enhance their experience with your brand, we created the Adjust fallback_lp parameter. When the fallback_lp parameter is appended to your Adjust Tracker URL, Adjust will redirect any clicks made outside of the Safari app to your preferred landing page.


  1. Identify and encode your fallback landing page URL Example:
  2. Select your Adjust Tracker URL Example:
  3. Append your custom fallback with the fallback_lp parameter Example:
  4. Implement your Adjust Tracker URL within your chosen ad environment to seamlessly redirect your users

How to add the pop-up window to your fallback landing page

By default, your fallback landing page will not display the aforementioned pop-up window (prompting a redirect to the App Store). To add this pop-up window to your fallback landing page, simply include the following JavaScript to your page, replacing with your own store URL:

window.location.href = ""

Important notes

  • The fallback_lp is compatible with all Adjust parameters excluding the Adjust redirect parameter
  • To include a fallback landing page with your Adjust short universal link, you must append adjust_fallback_lp

5.2Redirecting per specific platform

Adjust offers specific redirect options for users to be redirected to a specific location depending on their platform. This is available using the following redirect parameters, encoded and placed within tracking links exactly as above.

  • redirect_ios
  • redirect_android
  • redirect_windows
  • redirect_windows-phone

You can use any of these in combination, further if you were to use redirect_ios= and redirect= all iOS devices would be sent to the redirect_ios location and all other devices to the common redirect= location:

5.3Adding dynamic data to redirects

You can use a number of placeholders to inject data into redirect URLs, before they are forwarded to the user. This is for example useful if you want to redirect to your website, and inject UTM tracking data, or if you redirect to another system that can use source data from Adjust.

Note that you must encode any placeholders, including the curly brackets ({ }), that you add to your redirect URLs, e.g., {campaign_name} becomes %7Bcampaign_name%7D.

Placeholder Description
{reftag} user- and app-unique reference tag
{is_organic} 1 if user is organic
{idfa} iOS ID for advertising
{android_id} Android ID
{gps_adid} Google Play Store advertising ID
{win_adid} Windows advertising ID
{fire_adid} Amazon Fire advertising ID
{mac_sha1} SHA1-encrypted MAC, uppercase with colons
{mac_md5} MD5-encrypted MAC, uppercase with colons
{tracker_name} Full tracker name from Adjust
{network_name} Network-level tracker name
{campaign_name} Campaign name
{adgroup_name} Adgroup name
{creative_name} Creative name

6Extending your attribution funnel with fallback clicks

Activate the fallback click on a tracker and Adjust will only attribute to that tracker when there are no other Adjust-tracked engagements eligible for attribution.

For example, you can enable the fallback click for tracker B in a button on your website. If a user comes to your website via another Adjust-tracked source, tracker A, and is redirected to the app store by clicking the button (tracker B), we will attribute this user to tracker A. Only users who visit your webpage organically will be attributed to tracker B.

Tracker A: Tracker B:


Deep links can be used to direct users directly into your app. You can attach deep links onto your tracker URL to have Adjust test if the app is still installed, and forward users conditionally to the app.

The deep_link parameter allow you to specify a deep link URL.

If your custom URL scheme is “myapp://”, you can use trackers such as:

Deep links are compatible with all other tracker parameters. You can read more about this in our guide to deeplinking.

8Tracking third-party app stores

Particularly on Android, you are able to distribute your app via multiple different app stores, not limited to the Google Play Store. You can read more about this here.

9Tracking user referrals & social shares

Your app might offer users to invite friends to their apps or send referrals. In this case, you might like to see exactly how these invited friends behave post-acquisition, and how many of them convert after receiving their invitations.

  • Track how many users send a referral by using a “sent invitation” event

    This also allows you to see how often different user segments invite their friends, which can be an important performance metric.

  • Track how users that were invited behave post-acquisiton

    This can be achieved by creating one or several trackers, and then using these tracking links in your invitations. Send your invited users through the trackers and we’ll create a segment for “invited users”.

  • Track specific users coming through invitations and the users who sent them.

    Use a tracker URL as per the second point, and add a user ID belonging to the sender as an Adjust label parameter. You can then receive an install callback to your servers, or alternatively request the original referring user via delegate callbacks. This allows you to track which user invited whom, and additionally allows you to deliver rewards in real time without implementing further matching logic.

    Read the full scoop on this use case in the callbacks guide.

10Adjust Tracker Wizard

Adjust’s Tracker Wizard provides a simple way for you to generate network specific tracking URLs. The Wizard allows you to link a network to a tracker, which will populate the campaign structure and relevant placeholders with the macros required for each specific network.

Creating tracking URLs is a simple process that can all be done from your Adjust Dashboard.

  1. Click on settings for the app that you wish to create a new tracking URL.
  2. Click Trackers, select NEW TRACKER and the Adjust Tracker Wizard will open up.
  3. Enter the name of this tracker, select link to a network and from the drop down list, select the network that this tracker should be linked.
  4. From here you can modify both your Campaign Structure and add a selection of additional parameters (including label, deeplink, redirect and fallback).
  5. Once you have made these modifications, click on APPLY for each and then finally CREATE.
  6. Your fully customized, network specific tracker URL will then appear for both clicks and impressions.
  7. All thats left is to simply copy this tracking URL and send it off to the respective network to let them do their work!!


  • You can further modify these tracking URLs as you wish by clicking on the settings wheel beside the tracker and then EDIT. Then once you’re finished, click APPLY and SAVE to generate the new tracking URL before copying it.

  • Tracking URLs can be linked to a network for both network and campaign level tracking URLs.

  • In the case when a network is linked to a campaign level tracker the network level tracker cannot be linked to a different network. (The same is true in reverse)

11Store and Pre-install Tracker Tool

Adjust also has a tool for setting your tracker tokens inside your various APKs in order to track pre-install campaigns as well as various app stores.

See full details on how to use the Store and Pre-install Tracker Tool here.