This guide walks you through connecting Adjust to the AppGrade DSP so that clicks, impressions, installs, and in-app events are attributed correctly.
AppGrade is an integrated Adjust partner. AppGrade Pro is available for selection directly in the Adjust partner catalog.
Share the link produced by the wizard with AppGrade (see Step 2), and use its
tokenin the Click/View URL templates.
Adjust may return links on several domains. All of them are supported on the AppGrade side and are not blocked by validation:
| Domain | Purpose |
|---|---|
app.adjust.com |
clicks |
view.adjust.com |
impressions (path /impression/ADJUST_TOKEN) |
Adjust generates a base link in the form https://app.adjust.com/ADJUST_TOKEN for clicks. The impression link uses the same token: https://view.adjust.com/impression/ADJUST_TOKEN. AppGrade appends DSP macros to both links and populates them automatically on every click and impression.
Partner parameters use the
appgrade_pro_prefix. Per the Adjust integration, all partner IDs (click_id,ssp_id,campaign_id,creative_id,creative_type,site_id,ad_app) are passed as partner parameters prefixed withappgrade_pro_(for exampleappgrade_pro_click_id). Campaign and creative names are passed through Adjust's nativecampaign/creativeplaceholders, not as partner parameters.
| Adjust parameter | DSP macro | Description | Required |
|---|---|---|---|
campaign |
{campaign_name} |
Campaign name — native Campaign level in Adjust | Recommended |
creative |
{creative_name} |
Creative name — native Creative level in Adjust | Recommended |
appgrade_pro_click_id |
{click_id} |
Unique click/impression ID. Returned to AppGrade in the callback; links the conversion to the campaign | Required |
appgrade_pro_ssp_id |
{ssp_id} |
ID of the SSP/exchange the impression or click passed through | Recommended |
appgrade_pro_campaign_id |
{campaign_id} |
Stable campaign ID in the DSP (the name can change, the ID does not) | Recommended |
appgrade_pro_creative_id |
{creative_id} |
Stable creative ID | Recommended |
appgrade_pro_creative_type |
{ad_type} |
Creative type: Banner, Video, Native, Playable | Optional |
appgrade_pro_site_id |
{site_id} |
Bundle ID of the placement where the impression/click occurred | Recommended |
appgrade_pro_ad_app |
{ad_app} |
Bundle ID of the advertised app | Optional |
https://app.adjust.com/ADJUST_TOKEN?campaign={campaign_name}&creative={creative_name}&appgrade_pro_click_id={click_id}&appgrade_pro_ssp_id={ssp_id}&appgrade_pro_campaign_id={campaign_id}&appgrade_pro_creative_id={creative_id}&appgrade_pro_creative_type={ad_type}&appgrade_pro_site_id={site_id}&appgrade_pro_ad_app={ad_app}
https://view.adjust.com/impression/ADJUST_TOKEN?campaign={campaign_name}&creative={creative_name}&appgrade_pro_click_id={click_id}&appgrade_pro_ssp_id={ssp_id}&appgrade_pro_campaign_id={campaign_id}&appgrade_pro_creative_id={creative_id}&appgrade_pro_creative_type={ad_type}&appgrade_pro_site_id={site_id}&appgrade_pro_ad_app={ad_app}
Replace
ADJUST_TOKENwith the real token from the generated Adjust link (the part after the domain).Keep
/impression/in the View URL path. Adjust counts impressions only onhttps://view.adjust.com/impression/ADJUST_TOKEN. A View URL likehttps://view.adjust.com/ADJUST_TOKEN(without/impression/) looks valid, but Adjust does not register the impressions: clicks show up in the stats, impressions do not.
Callbacks to AppGrade are already configured on the Adjust side as part of the partner integration — you do not need to set a postback URL manually. On the client side, you only need to enable data forwarding and map your events.
During the current rollout (temporary). Newly generated Adjust links may still have install and rejected callbacks appended to the tracking link. Remove them: the Module integration already delivers callbacks automatically, so leaving them on the link causes duplicate callbacks. Once Adjust updates the link template, this step will no longer be needed.
Without event mapping, only installs are forwarded — no conversions. This is the most common reason for "no data".
AppGrade receives callbacks via GET at:
https://event.appgrade.pro/api/adj_installhttps://event.appgrade.pro/api/adj_eventAdjust echoes the partner parameters back with the same appgrade_pro_ prefix, and fills device/store fields with its native placeholders. Example callback template (configured on the AppGrade side, shown for reference):
https://event.appgrade.pro/api/adj_install?click_id={appgrade_pro_click_id}&idfa={idfa}&idfv={idfv}&gps_adid={gps_adid}&os_name={os_name}&country={country}&app_id={store_id}&is_organic={is_organic}&campaign_id={appgrade_pro_campaign_id}&campaign_name={campaign_name}&creative_id={appgrade_pro_creative_id}&creative_type={appgrade_pro_creative_type}&ssp_id={appgrade_pro_ssp_id}&site_id={appgrade_pro_site_id}&ad_app={appgrade_pro_ad_app}
For events, the event name and revenue are added:
https://event.appgrade.pro/api/adj_event?click_id={appgrade_pro_click_id}&idfa={idfa}&idfv={idfv}&gps_adid={gps_adid}&os_name={os_name}&country={country}&app_id={store_id}&is_organic={is_organic}&event_name={event_name}&revenue={revenue}¤cy={currency}
| Parameter | Adjust placeholder | Description | Required |
|---|---|---|---|
click_id |
{appgrade_pro_click_id} |
AppGrade click ID (partner parameter). Links the conversion to the click/campaign | Required |
idfa |
{idfa} |
Apple IDFA | Recommended |
idfv |
{idfv} |
iOS Vendor ID | Recommended |
gps_adid |
{gps_adid} |
Google Advertising ID (Android) | Recommended |
app_id |
{store_id} |
Store ID of the advertised app | Recommended |
os_name |
{os_name} |
OS (ios / android) | Optional |
country |
{country} |
Country code | Optional |
is_organic |
{is_organic} |
Organic flag (0 — attributed to AppGrade) | Optional |
event_name |
{event_name} |
Event name — important for optimization, ROAS, and reporting | Required (for Event) |
revenue / currency |
{revenue} / {currency} |
Event revenue and currency | Recommended (for Event) |
click_id(partner parameterappgrade_pro_click_id) is critical — without it, AppGrade cannot link the conversion to a specific click or campaign.
Sidebar → Assets → Tab "Tracking Links" → "Create" button
Sidebar → Campaigns → "Create Campaign" → Tracking Link → "+ Create New"
Click + Create New; after saving, the system returns you to the campaign.
| Field | Description | Example |
|---|---|---|
| App | Select the app from the list (required) | MyApp (com.example.myapp) |
| Title | Link name, up to 50 characters (required) | Adjust - Android UA |
| Description | Description, up to 200 characters (optional) | Primary link for the Android UA campaign |
| Click URL | Adjust Click URL with macros (required) | See the template in Step 2 |
| View URL | Adjust View URL with macros (required) | See the template in Step 2 |
?appgrade_pro_click_id={click_id}
Sufficient to attribute installs to AppGrade.
?campaign={campaign_name}&creative={creative_name}&appgrade_pro_click_id={click_id}&appgrade_pro_ssp_id={ssp_id}&appgrade_pro_campaign_id={campaign_id}&appgrade_pro_creative_id={creative_id}&appgrade_pro_creative_type={ad_type}&appgrade_pro_site_id={site_id}&appgrade_pro_ad_app={ad_app}
Additionally enables drill-down by campaign, placement (SSP), and creative in Adjust reports.
| Issue | Cause | Solution |
|---|---|---|
| No attribution at all | Partner not activated | Confirm that AppGrade Pro is active in Partners |
| Installs show up as organic | appgrade_pro_click_id empty or not unique |
Make sure {click_id} is populated in the link |
| No view-through | View URL not used | Set up a View URL in the form https://view.adjust.com/impression/ADJUST_TOKEN?... |
| Issue | Cause | Solution |
|---|---|---|
| Clicks are in Adjust, impressions are not | View URL without /impression/ in the path |
Use https://view.adjust.com/impression/ADJUST_TOKEN?... (see Step 2) |
| Issue | Solution |
|---|---|
| No callbacks at all | Confirm that install callback forwarding to the AppGrade Pro partner is enabled |
| Events not arriving | Map in-app events to Adjust and enable forwarding to the partner |
| No revenue / custom parameters | Enable Revenue Sharing and Parameter Forwarding in External Data Forwarding |
/api/adj_install)./impression/.