This guide walks you through creating tracking links in AppMetrica and connecting them to your campaigns on the AppGrade DSP.
AppGrade is an integrated partner of AppMetrica. Attribution, clicks, impressions, installs, and in-app events flow automatically between the two platforms once your tracker and postbacks are configured as described below.
| Field | What to enter | Example |
|---|---|---|
| Tracker name | A descriptive name for the DSP campaign | AppGrade_DSP_Android_Install_May2026 |
| Partner | Select AppGrade DSP, or create a custom partner | AppGrade DSP |
Important: The partner cannot be changed after the tracker is created. If AppGrade DSP is not in the list of preset partners, create a custom partner.
Important: do not create a SmartLink. For DSP campaigns, do not use a smart link that detects the OS and redirects to the matching store. Instead, split platforms across separate trackers: one tracker for Android and one for iOS, each with its own Target URL (Google Play for Android, App Store for iOS). This keeps per-OS stats and attribution from mixing, and the link always leads to the correct store. On the DSP side, create a separate tracking link for each OS.
| Setting | Recommendation |
|---|---|
| SmartLink | Disable. One tracker = one OS. |
| Target URL | A direct link to your app in the store for that OS (Google Play for Android, App Store for iOS) |
| Deeplink | If needed, use the format myapp://path |
| Fallback URL | A backup link used when the deeplink does not work |
Configure your attribution windows:
| Method | Click window | Impression window | Accuracy |
|---|---|---|---|
| Device ID Matching (google_aid, ios_ifa) | 10 days (default) | 24 hours | ~100% |
| Install Referrer (Google Play / Huawei) | 10 days (default) | — | ~100% |
| Fingerprint (IP + UA + timestamp) | 24 hours (default) | 24 hours | Lower |
Recommendations:
Macros are placeholders in the format {macro_name} that the DSP automatically replaces with real values on every impression or click. This lets AppMetrica receive device, campaign, and creative data for accurate attribution.
On every impression or click, the system automatically substitutes the following macros.
| Macro | Substituted value | Requirement |
|---|---|---|
{click_id} |
Unique click ID | Required |
{ad_app} |
Bundle ID of the advertised app | Optional |
{campaign_id} |
Campaign ID in the DSP | Recommended |
{campaign_name} |
Campaign name | Recommended |
{creative_name} |
Creative name | Recommended |
{creative_id} |
Creative ID in the DSP | Recommended |
{creative_type} |
Creative type — Banner, Video, Native, Playable | Optional |
{ssp_id} |
SSP placement | Optional |
{site_id} |
Bundle ID where the impression/click occurred | Recommended |
{site_name} |
Bundle Name where the impression/click occurred | Recommended |
https://redirect.appmetrica.yandex.com/serve/TRACKER_ID?click_id={click_id}&ad_app={ad_app}&campaign_id={campaign_id}&campaign_name={campaign_name}&creative_name={creative_name}&creative_id={creative_id}&creative_type={creative_type}&ssp_id={ssp_id}&site_id={site_id}&site_name={site_name}
Replace
TRACKER_IDwith the real ID of your tracker from AppMetrica.
https://impression.appmetrica.yandex.com/serve/TRACKER_ID?click_id={click_id}&ad_app={ad_app}&campaign_id={campaign_id}&campaign_name={campaign_name}&creative_name={creative_name}&creative_id={creative_id}&creative_type={creative_type}&ssp_id={ssp_id}&site_id={site_id}&site_name={site_name}
Postbacks are HTTP requests that AppMetrica sends to the DSP server when events occur (install, in-app event). They allow our system to optimize toward those events and to display them in the statistics in your dashboard.
Postback URL (GET method):
https://event.appgrade.pro/api/ap_install?click_id={click_id}&match_type={match_type}&click_user_agent={click_user_agent}&click_datetime={click_datetime}&click_timestamp={click_timestamp}&conversion_datetime={conversion_datetime}&conversion_timestamp={conversion_timestamp}&conversion_timezone={conversion_timezone}&install_datetime={install_datetime}&install_timestamp={install_timestamp}&install_timezone={install_timezone}&install_ipv6={install_ipv6}&android_id={android_id}&google_aid={google_aid}&idfa={ios_ifa}&idfv={ios_ifv}&device_manufacturer={device_manufacturer}&device_model={device_model}&device_type={device_type}&device_locale={device_locale}&os_name={os_name}&os_version={os_version}&app_version_name={app_version_name}&app_package_name={app_package_name}&oaid={oaid}
Postback URL:
https://event.appgrade.pro/api/ap_event?click_id={click_id}&match_type={match_type}&click_user_agent={click_user_agent}&click_datetime={click_datetime}&click_timestamp={click_timestamp}&conversion_datetime={conversion_datetime}&conversion_timestamp={conversion_timestamp}&conversion_timezone={conversion_timezone}&install_datetime={install_datetime}&install_timestamp={install_timestamp}&install_timezone={install_timezone}&install_ipv6={install_ipv6}&android_id={android_id}&google_aid={google_aid}&idfa={ios_ifa}&idfv={ios_ifv}&device_manufacturer={device_manufacturer}&device_model={device_model}&device_type={device_type}&device_locale={device_locale}&os_name={os_name}&os_version={os_version}&app_version_name={app_version_name}&app_package_name={app_package_name}&oaid={oaid}&event_name={conversion_event_name}&revenue={revenue}&cur={currency}
Revenue (optional). To pass purchase value from a revenue event, add
&revenue={revenue}&cur={currency}to the event postback. AppGrade readsrevenue(the amount) andcur(the currency); both are optional. Examples:&revenue=4.99&cur=USD,&revenue=5.49&cur=EUR.
Our system extracts the following data from the postback.
click_idis critical — without it, the system cannot tie an install to a specific click or campaign.
| Macro | Description | Requirement |
|---|---|---|
{click_id} |
Click/impression ID (from the tracking link) | Required |
{idfa} |
Apple IDFA | Recommended |
{idfv} |
iOS Vendor ID | Recommended |
{google_aid} |
Google Advertising ID | Recommended |
{android_id} |
Android ID | Recommended |
{app_package_name} |
Bundle ID of the advertised app | Recommended |
{os_name} |
Operating system name | Optional |
{device_locale} |
Device locale | Optional |
{event_name} |
The name of the event you want to send. Important for optimization, ROAS calculation, accurate statistics, and so on. | Required (for the Event type) |
{revenue} |
In-app event revenue amount (the value). Used for ROAS. Arrives as revenue. |
Optional |
{currency} |
Currency of the revenue value (for example, USD, EUR). Arrives as cur. |
Optional |
| Setting | Recommendation |
|---|---|
| Method | GET |
| Link type | Domain | Purpose |
|---|---|---|
| Tracking link (Click) | redirect.appmetrica.yandex.com/serve/{ID} |
Click attribution |
| Impression URL | impression.appmetrica.yandex.com/serve/{ID} |
View-through attribution |
Click: https://redirect.appmetrica.yandex.com/serve/1234567890
Impression: https://impression.appmetrica.yandex.com/serve/1234567890
Alternative domains (equivalent):
appmetrika.yandex.comappmetrica.yandex.ruappmetrika.yandex.ruCopy the base link (without parameters) and append the macros using the template from Step 2 above. Alternatively, copy the full link if AppMetrica has already added the parameters.
Sidebar в†’ Assets в†’ "Tracking Links" tab в†’ "Create" button
URL: /assets?tab=tracking-links
Sidebar в†’ Campaigns в†’ "Create Campaign" в†’ Step 2 в†’ Tracking Link в†’ "Create New"
URL: /campaigns/create?step=2
| Field | Description | Example |
|---|---|---|
| App | Select the app from the list (required) | MyApp (com.example.myapp) |
| Title | Link name, up to 50 characters (required) | AppMetrica - Android Install |
| Description | Description, up to 200 characters (optional) | Primary link for the Android campaign |
| Click URL | Click tracking link with macros (required) | See the template below |
| View URL | Impression tracking link with macros (required) | See the template below |
Paste the AppMetrica link with the DSP macros:
https://redirect.appmetrica.yandex.com/serve/TRACKER_ID?click_id={click_id}&ad_app={ad_app}&campaign_id={campaign_id}&campaign_name={campaign_name}&creative_name={creative_name}&creative_id={creative_id}&creative_type={creative_type}&ssp_id={ssp_id}&site_id={site_id}&site_name={site_name}
https://impression.appmetrica.yandex.com/serve/TRACKER_ID?click_id={click_id}&ad_app={ad_app}&campaign_id={campaign_id}&campaign_name={campaign_name}&creative_name={creative_name}&creative_id={creative_id}&creative_type={creative_type}&ssp_id={ssp_id}&site_id={site_id}&site_name={site_name}
?click_id={click_id}
This is enough to attribute installs and events.
?click_id={click_id}&ad_app={ad_app}&campaign_id={campaign_id}&campaign_name={campaign_name}&creative_name={creative_name}&creative_id={creative_id}&creative_type={creative_type}&ssp_id={ssp_id}&site_id={site_id}&site_name={site_name}
This additionally provides:
Any parameters from the tracking link (for example, campaign_id, creative_id, ssp_id) automatically appear in the Traffic Sources report as a hierarchical tree.
To group by a custom parameter:
campaign_name.This lets you:
| Problem | Cause | Solution |
|---|---|---|
| No attribution at all | click_id is not being passed or is empty |
Make sure the {click_id} macro is present in the URL |
| Install postbacks do not arrive | Incorrect postback URL | Check the DSP domain and the /api/ap_install endpoint |
| Event postbacks do not arrive | Incorrect postback URL | Check the DSP domain and the /api/ap_event endpoint |
If you run into issues that these steps do not resolve, contact the integration email provided by your AppGrade account manager.