The “App Promotion” campaign type is designed to track user interaction with mobile apps. These campaigns support mobile measurement partner (MMP) tracking from Adjust, AppsFlyer, and Singular allowing your SmartNews campaigns to report results as part of your MMP’s analytics.
How to set up an App Promotion campaign
1From the “Campaigns” tab, select “Create campaign”

2Choose “App Promotion” from the campaign type selection pop-up

3Enter app platform and ID
Pick either Android or iOS, and enter your app’s store ID or URL. Note that an App Promotion campaign works with either Google Play or App Store—not both. Create separate campaigns for each platform.

4Choose your MMP and enter the tracking URL according to their instructions

5Save your changes
Your campaign is now ready to track app installs and relay events to your MMP. With this setup, you can monitor your App Promotion campaign’s performance, including metrics like install rates and in-app events. Remember to review your campaign’s performance regularly and adjust your strategy to optimize results.
Tracking URL Settings
Adjust
1Generate an clink link URL in Adjust.
Example URL:
https://app.adjust.com/abc123?campaign=Example_CampaignName&adgroup=Example_PublisherID&creative=Example_CreativeID
2Add or replace example parameters as needed.
Example:
Example_CampaignName →{campaign_id}
Any optional placeholder parameters can be removed.
3Enter the final URL in the “Tracking URL” field (replace abc123 with the token ID provided by Adjust.). This is a minimal example URL required to create a campaign.
https://app.adjust.com/abc123?campaign={campaign_id}&idfa={idfa}
Note that your Adjust URL:
- Cannot include any spaces
- Must begin with https://app.adjust.com/{link_token}
- Must contain an Adjust link token between 6 to 8 lowercase alphanumeric characters
- Must include at least one of the following parameters for advertiser ID:
Parameter | Valid values |
---|---|
idfa | {idfa} |
gps_adid | {gaid} |
idfa_lower_md5 | {lower_case_ad_id_md5} |
gps_adid_lower_sha1 | {lower_case_ad_id_sha1} |
idfa_lower_sha1 | {lower_case_ad_id_sha1} |
- Must include at least one campaign structure parameter:
Parameter | Valid values |
---|---|
campaign | {campaign_id} {campaign_name} |
adgroup | {adgroup_id} {adgroup_name} |
creative | {ad_name} |
Suggested Adjust parameters
Adjust parameter | Valid values | Required | Note |
---|---|---|---|
smartnews_click_id | {click_id} | Yes | |
gps_adid | {gaid} | Yes | Google advertising ID, only required for Google Play app |
idfa | {idfa} | Yes | iOS advertising ID, only required for AppStore app |
ip_address | {ip_address} | No | |
user_agent | {user_agent} | No | |
campaign | {campaign_name} | No | |
creative | {ad_name} | No | |
adgroup | {adgroup_name} | No | |
s2s | 1 | No | Added by default |
AppsFlyer
1Generate a single-platform link starting with https://app.appsflyer.com/
2Replace the placeholder parameters with your app’s ID and relevant SmartNews macros in curly braces, like {gaid} / {idfa} .
3Enter the final URL in the “Tracking URL” field like in the example below:
https://app.appsflyer.com/id123456789?pid=smartnewsads_int&af_siteid=smartnews_ads&clickid={click_id}&c={campaign_name}&af_c_id={campaign_id}&af_adset={adgroup_name}&af_adset_id={adgroup_name}&af_ad={ad_name}&af_ad_id={ad_id}&idfa={idfa}&af_ip={ip_address}&af_ua={user_agent}
Note that your AppsFlyer URL:
- Cannot include any spaces
- Must begin with https://app.appsflyer.com/{app_id}
- Must include at least one parameter for advertising ID (idfa or advertising_id)
- Must contain at least one campaign_structure parameter (c, af_c_id, af_adset, af_adset_id, af_ad, af_ad_id)
Suggested AppsFlyer parameters
AppsFlyer parameter | Valid values | Type | Required | Note |
---|---|---|---|---|
pid | smartnewsads_int | Yes | ||
af_siteid | smartnews_ad | Yes | ||
clickid | {click_id} | Yes | ||
c | {campaign_name} | Campaign structure | No | |
af_c_id | {campaign_id} | Campaign structure | No | |
af_adset | {adgroup_name} | Campaign structure | No | |
af_adset_id | {adgroup_id} | Campaign structure | No | |
af_ad | {ad_name} | Campaign structure | No | |
af_ad_id | {ad_id} | Campaign structure | No | |
idfa | {idfa} | Advertising ID | Yes | iOS advertising ID, only required for AppStore app |
advertising_id | {gaid} | Advertising ID | Yes | Google advertising ID, only required for Google Play app |
af_ua | {user_agent} | Probabilistic attribution | No | Sent to AppsFlyer by default to enable probabilistic attribution |
af_ip | {ip_address} | Probabilistic attribution | No | Sent to AppsFlyer by default to enable probabilistic attribution |
Singular
1Generate a single-platform link starting with https://{advertiser_subdomain}.sng.link/{app_id_singular}/{link_id_singular}
2Replace the placeholder parameters with your specific Singular subdomain and IDs.
3Enter the final URL in the “Tracking URL” field like in the example below
https://sample.sng.link/D59c0/sfxf?idfa={idfa}&cl={click_id}&
pcid={campaign_id}&pcn={campaign_name}&pscid={ad_group_id}&
pscn={ad_group_name}&pcrid={ad_id}&pcrn={ad_name}&p={platform}&
psn=SmartNews&psid={sn_app_id}
Note that your Singular URL:
- Cannot include any spaces
- Must begin with
https://{advertiser_subdomain}.sng.link/{app_id_singular}/{link_id_singular} - Must include at least one parameter for advertising ID (idfa or gaid)
- Must contain at least one campaign_structure parameter (pcid , pcn , pscid , pscn , pcrid , pcrn )
Suggested Singular parameters
Singular parameter | Valid values | Type | Required | Note |
---|---|---|---|---|
psid | SmartNewsAppId | Yes | ||
psn | SmartNews | Yes | ||
cl | {click_id} | Yes | ||
idfa | {idfa} | Advertising ID | Yes | iOS advertising ID, only required for AppStore app |
aifa | {gaid} | Advertising ID | Yes | Google advertising ID, only required for Google Play app |
pcn | {campaign_name} | Campaign structure | No | At least one campaign_structure parameter is required. |
pcid | {campaign_id} | Campaign structure | No | At least one campaign_structure parameter is required. |
pscn | {adgroup_name} | Campaign structure | No | At least one campaign_structure parameter is required. |
pscid | {adgroup_id} | Campaign structure | No | At least one campaign_structure parameter is required. |
pcrn | {ad_name} | Campaign structure | No | At least one campaign_structure parameter is required. |
pcrid | {ad_id} | Campaign structure | No | At least one campaign_structure parameter is required. |
ua | {user_agent} | Probabilistic attribution | No | Sent to Singular by default to enable probabilistic attribution |
ip | {ip_address} | Probabilistic attribution | No | Sent to Singular by default to enable probabilistic attribution |
Consider these best practices for managing your App Promotion campaign
- Closely monitor your campaign performance in the first few days to ensure correct tracking.
- Test different ad creatives and calls-to-action to boost conversion rates.
If you run into any issues or have questions about your App Promotion campaign, please don’t hesitate to contact our support team for help.