Appsflyer Unity
Import the appsflyer-unity-plugin-.unitypackage into your Unity project. Go to Assets Import Package Custom Package. Select the appsflyer-unity-plugin-.unitypackage file. Note: The plugin uses the The External Dependency Manager for Unity (EDM4U) (formerly Play Services Resolver / Jar Resolver). Free software tools and APIs for marketers, product managers, and developers that help improve user acquisition, web-to-app journeys, and user experience - all with no advertising budget. Import the appsflyer-unity-plugin-.unitypackage into your Unity project. Go to Assets Import Package Custom Package. Select the appsflyer-unity-plugin-.unitypackage file. Note: The plugin uses the The External Dependency Manager for Unity (EDM4U) (formerly Play Services Resolver / Jar Resolver).
đź› In order for us to provide optimal support, we would kindly ask you to submit any issues to support@appsflyer.com
When submitting an issue please specify your AppsFlyer sign-up (account) email , your app ID , production steps, logs, code snippets and any additional relevant information.
Table of content
- Initializing the SDK
This plugin is built for
📲 Adding the SDK to your project
- Import the appsflyer-unity-plugin-*.unitypackage into your Unity project.
- Go to Assets >> Import Package >> Custom Package.
- Select the appsflyer-unity-plugin-*.unitypackage file.
Note: The plugin uses the The External Dependency Manager for Unity (EDM4U) (formerly Play Services Resolver / Jar Resolver). If you do not want to use EDM4U see the Installation guide for more details.
🚀 Initializing the SDK
Using the AppsFlyerObject.prefab
Setting | Description |
---|---|
Dev Key | AppsFlyer’s Dev Key, which is accessible from the AppsFlyer dashboard. |
App ID | Your iTunes Application ID. (If your app is not for iOS the leave field empty) |
Get Conversion Data | Set this to true if your app is using AppsFlyer for deep linking. |
Is Debug | Set this to true to view the debug logs. (for development only!) |
- Update the code in Assets > AppsFlyer > AppsFlyerObjectScript.cs with other available API.
Manual integration
đź“– Guides
đź“‘ API
See the full API available for this plugin.
⏩ Migration
Migrating from the old plugin? (version V4)
View the migration docs here.
⚠️ There are breaking changes when migrating to Unity v5
. This includes new API, different class/package names, and the removal of com.appsflyer.GetDeepLinkingActivity
.
Billing FAQs
SKAdNetwork Reporting
Support for Appsflyer Advanced Privacy
User acquisition SDKs
Reach Extension FAQs
Migration to Source App ID FAQs
Advertising account FAQs
Campaign performance FAQs
Note: Cost per impression (CPM) billing is only available for iOS.
What is cost per impression billing?
This is a billing method where you will be charged based on the number of impressions your campaign receives. Regardless of the billing method, your campaigns will still be optimized for installs.
How does Unity CPM billing differ from traditional industry CPM?
In a traditional industry CPM campaign, you pay a predefined amount per thousand impressions (cost per mille) that your ad receives. With this type of CPM, you are serving impressions to anyone matching the targeting criteria of your campaign and you pay the same amount for each impression.
Unity’s Cost-per-iMpression (CPM) billing allows you to pay a unique price per individual impression. With Unity's CPM, you are serving impressions to users who are most likely to install your app. You pay a dynamic price depending on the potential value of the player. The price is tied to the probability that the impression will convert to an install as well as your campaign goals.
This example illustrates the differences.
What is Target CPI?
Target CPI (tCPI) is the average amount you wish to pay per install. Target CPI is a bidding strategy that sets bids to help you get as many conversions as possible within a tight range of the target cost-per-install you set. This strategy automatically optimizes bidding for your ad each time it is eligible to appear.
Why are the number of SKAdNetwork and MMP installs different?
In order to be counted as SKAdNetwork installs:
- Source games and target games must both support the SKAdNetwork.
- Source games must be using SDK 3.5.1 and above.
- Source games that target users running iOS 14 or above must also implement Unity Ads' network ID in the information property list file info.plist
Please note that this apparent discrepancy will begin to narrow once more supply is SKadNetwork-enabled.
Who will be affected?
All campaigns (both iOS and Android) on Unity Ads that use Appsflyer as an attribution provider will be automatically updated to append new mandatory parameters to attribution (tracking) URLs. This will enable all advertisers to use Appsflyer’s Advanced Privacy mode.
What is Appsflyer Advanced Privacy mode?
Advanced Privacy mode is Appsflyer’s solution to provide end-user privacy and to help advertisers comply with Apple iOS 14 updated privacy controls. When Advanced Privacy is enabled in Appsflyer’s settings, attribution data is stripped of identifiers and postbacks are available on an aggregated level only.
What will happen to these campaigns?
All campaigns will continue to run, uninterrupted. For all campaigns using Appsflyer, the attribution links for each campaign will have the following four mandatory parameters appended to each URL, so that the campaigns will automatically support Appsflyer’s Advanced Privacy, if an advertiser wishes to enable this mode.
Parameter name | Macro required | Explanation |
---|---|---|
af_siteid | {source_app_id}] | Source app / game identifier |
af_ad_id | {creative_pack_id} | Unity Acquire dashboard creative pack identifier |
af_ad_orientation | {video_orientation} | The replaced values will be 'landscape'/'portrait' |
af_channel | {exchange} | The replaced values will be 'unity'/'others' |
Which attribution links in Unity Ads campaigns will be updated?
This applies to all three tracking URLs for Appsflyer, or any subset that is used:
- Click URL - required for all Unity campaigns
- Start (Impression) URL - recommended for Unity campaigns
- Completed view URL - optional
In order to cover as many scenarios as possible, any Appsflyer tracking URLs present in a campaign will be automatically updated, to pass through these required macros as parameters in the URL.
What if I don’t enable Advanced Privacy mode?
All Appsflyer attribution URLs will be updated, whether Advanced Privacy is currently enabled or not.
Will the tracking URLs for Android campaigns also be updated?
Yes, all Appsflyer attribution URLs for both iOS and Android campaigns will be updated.
What are SDKs for user acquisition?
Due to privacy changes relating to iOS 14, Unity recommends upgrading to one of our SDKs that help optimize your campaigns' performance and insights. If you are advertising and monetizing with Unity, upgrade to the latest Ads SDK version. If you are only advertising with us, then you need to integrate our deltaDNA SDK (deltaDNA is a company Unity recently acquired).
Which SDK do I use if I am both advertising and monetizing with unity?
If you are monetizing with Unity, then have already integrated our Ads SDK. You need to ensure that you are using version 3.7 or above which is our iOS 14 compliant SDK. To help optimize performance, the latest Ads SDK should be initialized independently from the mediation waterfall (during the first gaming session). In addition, give permission to Unity to activate the general purpose analytics collection within the SDK. This allows Unity to help optimize your campaigns.
Which SDK do I use if I am only advertising with Unity?
Appsflyer Unity Online
If you are only Advertising and NOT monetizing with Unity, then you need to integrate to our deltaDNA SDK (a company Unity recently acquired). You can find the information about the SDK and the integration guide here.
Can I use Unity SDK with an adaptor from my mediation partner?
Yes our SDK works whether it is installed via an adaptor or without one. Clients who are working with a mediation partner will use an adaptor.
Will the SDK still work if I do not initialize at app start?
We recommend initializing at app start for all users since this allows us to help improve your optimization. Once Apple’s ATT Framework is enforced, you will not be able to identify which user is attributed to each network.
What is reach extension?
Reach Extension gives you access to more supply, reaching valuable users from other exchanges while leveraging Unity’s optimization tools and mobile advertising expertise.
Can I convert an existing campaign into a reach extension campaign?
You can either recreate your existing campaign to automatically enable reach extension inventory, or contact support with your request.
What geos are supported?
Reach extension inventory is available for all geographical areas.
What targeting is available?
You can access the same targeting levers, including allowlisting, blocklisting and source bidding .
Reach extension inventory is not available for Audience Pinpointer campaigns or LAT targeting.
Which ad formats are supported by reach extension?
Video with end cards, and playable ads are all supported by reach extension.
Appsflyer Unity Web
How do we evaluate reach extension performance?
Evaluate reach extension supply sources similarly to any Unity supply source. Use campaign optimization features like allowlisting, blocklisting and source bidding to improve performance.
How can I track the quality of reach extension supply?
You can track the quality of reach extension supply the same way you track quality across Unity supply. All supply utilize the same source identifiers (such as source_app_id).
Can I opt out of including reach extension inventory in my campaign?
Yes, please contact support for more information.
Appsflyer Unity Sdk
Unity has migrated all campaigns to use a new universal alphanumeric source identifier, source app ID
as of early May 2020. This new source identifier is a 12-character, alphanumeric, case-sensitive string.
What has changed?
The macro {source_app_id}
has replaced the {source_game_id}
macro in the attribution URLs of all of your campaigns. Unity has made these changes for you on the backend.
What should I expect after the migration?
Identifiers that were previously called source_game_id
or souce_id
in the dashboard have changed to source_app_id
. This has happened in:
- attribution links
- source targeting such as allowlisting, blocklisting or source bidding
There is no longer a source_game_id
value in the attribution passback. Now, there is a source_app_id
value in the attribution passback.
Attribution providers have changed the default links generated for Unity.
If you use our statistics API please replace anywhere that was using source ID
or source game ID
with source app ID
.
How will these new identifiers affect the format?
The format is now a 12-character, case-sensitive alphanumeric string rather than an integer. Otherwise attribution links should work the same as the previous format.
Will anything else with my campaign workflow change?
Once the migration is complete the only change will be source_app_id
in all attribution passbacks, and the fact that you will use this identifier for any source targeting. If you are using our statistics API, just change any fields that currently use source_ID
or source_game_id
to source_app_ID
.
How long will I be able to view data from the previous source ID?
You can no longer receive source IDs. The information may still be present in your own internal BI tools or through your attribution partner.
Can I expect any other changes with my reporting in my attribution partner portal or through Unity?
There shouldn’t be any other changes.
How does this impact stats API?
If you are using the source_game_id
or source_id
field from Stats API to retrieve cost and other data, you can redirect your API to use the new source_app_id
field post migration.
Can I access the new dashboard with the same login credentials as before?
Yes. Please log in to the new dashboard with the same credentials that you used before.
How do I add users to my organization?
You must have owner or manager privileges to add new members to an organization. To do so, follow these steps:
- Select Organizations on the left navigation bar. This displays a list of organizations associated with your account.
- Navigate to the organization you wish to add a new member to, then select the Manage settings icon.
- On the organization profile page, select Members & Groups from the left navigation bar.
- Select + Add members.
- Enter emails manually or copy paste from a list of emails. To add multiple members, separate email addresses with a space or comma, or enter each email on a new line.
- Select a role for the new members you’re adding, then select Next. Note that you can only assign roles that are equal or less than your role.
- Review the settings, then select Invite members.
Why can’t I see my apps?
Hackintosh download iso. The most common cause of this is viewing the wrong organization. When you create a new UDN account, it also creates a new organization for you, but does not automatically set that organization as the default for that email. Verify that the correct organization is selected in the top-right corner of the dashboard. If you do not have access to the correct organization, you may request that the organization’s owner adds you. If the problem persists, please contact Ad Ops.
How can I improve my campaign’s performance?
Our machine learning algorithm will always work to find the best users for you. However, there are two main factors that contribute to a successful ad campaign:
- Use engaging creatives that drive conversion rate.
- Make competitive CPI bids.
The key to success is high user engagement. For more tips, please see documentation on Optimizing campaigns. We will continue updating this article to help you get the most out of your advertisements!
Can I configure Campaigns to promote my other games?
Yes! Cross-Promotion is an open beta feature that allows publishers to backfill ad Placements with promotions for their own games. A Cross-Promotion works just like regular advertisements, but drives traffic to your own apps. For more information on setting up a cross-promotional Campaign, click here.
Can I block specific apps from showing my campaign?
Yes. Please contact the Ad Ops team to inquire about blocking specific apps by their ID.
Appsflyer Unity
Why did my install volume change?
During the course of a campaign, it is natural to see some performance fluctuations. Though the figure may vary from campaign to campaign, a 10-15% variation from week to week is considered normal. However, a greater spike than this might indicate a deeper issue.
Some factors contributing to a decrease in volume include:
- Underperforming creatives: A gradual decrease in volume over time can suggest ad fatigue. The introduction of a new creative that resonates less with your audience can also cause decreased conversion rates, and thus a decrease in volume.
- A change in the competitive advertiser-side landscape: Our inventory is constantly changing and growing. Occasionally new campaigns vastly outperform the rest of our platform, thus receiving preferential publisher inventory. If this happens, you can raise your bids to compete for this inventory.
- A change in publishers: Rarely, a publisher will remove their traffic from the inventory altogether.
- A tracking issue: This could be due to an outage in your third-party tracking service, or an uncommunicated change to the postback or tracking URLs.
On the other side of the coin, the inverse reasons can cause increases in volume:
Appsflyer Unity Att
- The addition of a well-matched publisher: We constantly add new publishers. If we happen to add a publisher whose users are particularly engaged with your ads, you may see volume suddenly skyrocket.
- High-performing new creatives: Advertisers often see noticeable volume increases after conducting a trailer refresh. Rotating in new trailers approximately once per quarter is a best practice if resources permit.