This guide walks you through setting up Tenjin with the AppGrade DSP so that clicks, impressions, and installs (and optional in-app events) are attributed correctly. Tenjin generates the tracking links, and AppGrade receives Tenjin postbacks.
AppGrade is available as a channel in the Tenjin catalog. Tenjin uses AppGrade's tracking links to attribute installs from non-SAN (custom) ad networks.
Screenshot: the AppGrade channel in the Tenjin catalog.
The link is generated for the AppGrade channel on the base https://track.tenjin.com/v0/appgrade/<TENJIN_TOKEN> and carries AppGrade macros in single curly braces {...}. AppGrade fills these macros automatically on every click and impression — you do not add or edit them.
<TENJIN_TOKEN> is the token from your generated Tenjin link (the part after /v0/appgrade/).
https://track.tenjin.com/v0/appgrade/<TENJIN_TOKEN>?click_id={click_id}&site_id={site_id}&creative_name={creative_name}&creative_id={creative_id}&campaign_id={campaign_id}&campaign_name={campaign_name}&bundle_id=<app_bundle_id>&platform=<os>
Same as the click URL, plus advertising_id (the device ID) and impression=true:
https://track.tenjin.com/v0/appgrade/<TENJIN_TOKEN>?advertising_id={idfa}&click_id={click_id}&site_id={site_id}&creative_name={creative_name}&creative_id={creative_id}&campaign_id={campaign_id}&campaign_name={campaign_name}&bundle_id=<app_bundle_id>&platform=<os>&impression=true
| Parameter | Value / macro | Present on | Description | Required |
|---|---|---|---|---|
click_id |
{click_id} |
click + impression | Unique AppGrade click/impression ID. Returned to AppGrade in the postback and links the install to the campaign | Required |
advertising_id |
{idfa} (iOS) / {android_id} (Android) |
impression only | Device advertising ID. AppGrade fills the device ID only on the impression (view) URL, not on the click URL | Recommended |
site_id |
{site_id} |
click + impression | Bundle ID of the placement where the impression/click occurred | Recommended |
creative_id |
{creative_id} |
click + impression | Stable creative ID | Recommended |
creative_name |
{creative_name} |
click + impression | Creative name | Recommended |
campaign_id |
{campaign_id} |
click + impression | Stable campaign ID | Recommended |
campaign_name |
{campaign_name} |
click + impression | Campaign name | Recommended |
bundle_id |
app bundle, e.g. com.solx.voicyeffects |
click + impression | Bundle ID of the advertised app (fixed per app) | Recommended |
platform |
ios / android |
click + impression | App platform (fixed per app) | Recommended |
impression |
true |
impression only | Marks the URL as a view/impression (present only on the impression URL) | Required on the impression URL |
Notes:
- Macros use single curly braces
{...}and are populated by AppGrade automatically.advertising_idis present only on the impression URL: iOS uses{idfa}, Android uses{android_id}(this is the device ID AppGrade populates on the view URL). The click URL has noadvertising_id.bundle_idandplatformare fixed per app;<TENJIN_TOKEN>comes from your generated Tenjin link.
Go to the Configure tab and select Apps from the drop-down menu. Click your app and open the Callbacks section.
Select AppGrade in the Channels and Partners field.
Screenshot: the Callbacks section with AppGrade selected.
Make sure the First App Open callback is turned on and sent for installs attributed to AppGrade.
Send callbacks attributed to AppGrade, not for all users — this matches the AppGrade partner configuration on the Tenjin side.
This step is only needed if you want AppGrade to receive post-install in-app events (such as purchases) for optimization and reporting. If you only need install attribution, you can skip it.
AppGrade receives callbacks via GET at:
https://event.appgrade.pro/api/tj_installhttps://event.appgrade.pro/api/tj_eventThese are pre-configured on the AppGrade partner side — you do not set a postback URL manually. The click_id returned in the callback is what links the install/event back to the original click or impression.
After you send AppGrade the Tenjin click and impression URLs, the Tracking Link is created in the DSP.
Sidebar → Assets → Tab "Tracking Links" → "Create" button
| Field | Description | Example |
|---|---|---|
| App | Select the app from the list (required) | MyApp (com.example.myapp) |
| Title | Link name, up to 50 characters (required) | Tenjin - iOS UA |
| Description | Description, up to 200 characters (optional) | Primary link for the iOS UA campaign |
| Click URL | Tenjin click-tracking URL (required) | The click link from Step 2 |
| View URL | Tenjin impression / view-through URL (required) | The impression link from Step 2 |
Then select this Tracking Link in the Tracking Link field when creating or editing a campaign.
/api/tj_install) with the matching click_id.| Issue | Cause | Solution |
|---|---|---|
| Installs show up as Organic | click_id not passed |
Make sure the AppGrade-generated Tenjin link is used, not a plain store link |
| No callbacks reach AppGrade | Callback not enabled for AppGrade | Confirm the First App Open callback is on for the AppGrade channel |
| No in-app events | Event callbacks not enabled | Enable the in-app event callbacks for AppGrade (Step 4) |
| No view-through | Impression URL not used | Send the impression / view-through URL to AppGrade as the View URL |
| Impression not matching a device | advertising_id missing on the impression URL |
The impression URL must carry advertising_id={idfa} on iOS or advertising_id={android_id} on Android |