How to detect an iOS app install campaign inside the app - ios

I would like to find out in my iOS app if the app was installed due to an ad campaign link.
Google Analytics is doing this and it is tracked on their analytics web page. iTunes Connect is doing this too and it is also tracked on the iTC web page.
I'm looking now for a way to get this information inside the app. When the app first starts i want to check if it was installed because the user was sent to the App Store by a campaign link and what campaign id it was.
Is there a way for an iOS app to ask Google Analytics, Firebase or iTC/StoreKit what campaign has led to its install?

Google Anlaytics uses IDFA of user's device as identifer after user installs the application, i.e. when user clicks on the ad, they are redirected to google analytics where they collect user's IDFA and redirects user to iTunes. Once user installs the application, they match the saved IDFA with user's IDFA and if they match they mark that user as attributed.
I looked at the Google Analytics docs, to find some info on callback that google may provide if there is a match, after user installs the application. Unfortunately, I could not find anything.
But the thing is, I don't think this method should work at all now after iOS 10. Apple provided users with Limit Ad Tracking from sometime now but on iOS 10, if a user has enabled it, the IDFA API returns a number like this: 00000000-0000-0000-0000-000000000000
You can imagine you cannot match user using IDFA now.
On the other hand, there are other ways to do fingerprint matching for iOS devices. It is not very accurate but it works most of the time.
I have used branch.io for deferred deeplinking and it worked. You can also look at the solution provided by them. They have a callback which you can implement and get to know from which link your app is getting installed.

It looks like Adjust can do this:
Adjust says it uses fingerprinting when IDFA is not available
https://docs.adjust.com/en/getting-started/#tracking-installs
According to https://docs.adjust.com/en/callbacks/#best-practice-accessing-adjust-attribution-data-externally
and
https://partners.adjust.com/placeholders/
the Adjust SDK seems to allow the app access to its data including campaign name for installs.
I will comment later if this really worked.
I got an answer from Adjust saying:
yes it is possible with the Adjust SDK to attribute installs to the
source which drove that install.
By setting up campaign parameter structure to the tracker URL, you can
actually find out the the Network Name, Campaign Name, Adgroup Name
and Creative Name.
For your reference here is the guide to setup campaign parameter
structures ->
https://docs.adjust.com/en/tracker-generation/#planning-your-tracker-structure

Related

Firebase Analytics: Install Referrer: iOS app

Is there any way to get the app install referrer information via firebase for an iOS app.
Say there is a iOS app dynamic link with information about the source and campaign. And if the app is not installed, the link takes you to app store for installing the app.
After installing when opening the first time, is it possible to track the campaign source information via firebase.
Any help is appreciated.
Currently, due to Apple dropping the referrer's URL when the user is taken to Apple Store to install the app for the first time, Firebase Analytics can't report campaign event and attribute it to the source/campaign. Firebase Dynamic Links can probably solve that issue.
If users already install the app, and the URL opens the app directly with the link, then yes, Firebase Analytics can link to the source/campaign if the URL has utm_campaign or utm_source in the URL params.
Yes, according to the documentation, APP_FIRST_OPEN is one of the metrics measured in Dynamic Links. If you want to track different campaigns, the documentation says
You use Dynamic Links with your existing Google Analytics custom
campaigns and iTunes Connect App Analytics campaigns by specifying
campaign parameters when you create a Dynamic Link. When a user opens
a Dynamic Link with campaign parameters specified, the campaign
parameters are passed on to Google Analytics or the App Store.

Google Analytics UTM iOS Testing

I have installed Google Analytics SDK using the Google Analytics v3 iOS guide and I have verified that it is hitting analytics through the real time view of the analytics dashboard. I then followed all the campaign tracking v3 iOS guide, including the troubleshooting steps "Self-serve diagnosis for iOS conversion tracking." The IDFA data was getting sent to GA as verified by viewing the "Audience->Demographics->Overview" page, and all the other steps also verified we had set up the tracking correctly. I then submitted the app, waited for review, and tested the install tracking by creating the following UTM link using the google link generator at the bottom of the Campaign tracking guide (note that the link here is bogus data, but shows the general link structure):
https://click.google-analytics.com/redirect?tid=UA-1234-5&url=https%3A%2F%2Fitunes.apple.com%2Fus%2Fapp%2Fmy-app%2Fid123456789&aid=com.company.app&idfa{idfa}&cs=google&cm=cpc&ck=running%2Bshoes&anid=admob&hash=md5
I then uninstalled my app on the phone I was using to test, clicked on the link to get directed to the app store and installed my app from there. I proceeded to wait 3 days and then looked for the install in the "acquisition->sources->all" tab of analytics and did not see the campaign show up. I then looked more closely at the guide, which has the following warning:
"Note: iOS Install Tracking only works for ads served through mobile ad networks, such as AdMob that serves in-app ads."
Which seems to suggest that the only way to verify that the UTM link install gets tracked correctly is by paying an ad network to serve an add in an app and then click on that ad?? That seems absurd. So we did some backwards engineering. In Android, all one has to do is click on the link and the install gets successfully tracked. That suggested that the restrictions imposed by IDFA (an Apple innovation) made it difficult for analytics to serve a 'one link tracks all installs' solution. Looking back at the UTM link, I noted that there is an idfa{idfa} portion that presumably is supposed to include the idfa of the phone clicking on the link, which would only be possible if the app serving the add or some other entity that knows the phone's IDFA number changed the link to include that phone's IDFA. We then obtained the phone's IDFA number through the GA logs and edited the UTM link to include the IDFA number within the brackets so the portion that used to be idfa{idfa} now was idfa{}. We then clicked on that link and are now waiting for another three days to see if it shows up in GA acquisitions... We also made an Admob account and tied it into the analytics account to track the app... but it appears that is just another way to view the exact same information that is presented in the analytics dashboard.
What is the proper way to test UTM campaign tracking? Do I really have to create a mobile add, run it and click it? Should clicking on the link as generated by Google work fine and show up in GA acquisitions, and the absence of its presence signifying my UTM tracking is not working?

iOS: How to get install referrer source

I want to find out how the user installed the app using what source (attribution).
For Android, it's possible to get the referrer's URL, but I haven't found an obvious way for iOS. There are external services such as AppsFlyer (http://support.appsflyer.com/entries/69796693-Accessing-AppsFlyer-Attribution-Conversion-Data-from-the-SDK-Deferred-Deep-linking-) that let's you do this.
I noticed that starting iOS 8, developers could append the publisher id and the campaign id to the App Store URL for iTunes Connect Analytics (http://www.applift.com/blog/new-era-attribution-analytics.html). Is it possible to get the campaign id and the publisher id inside the app? I couldn't find any API changes or resources on this.
Any help would be appreciated. Thanks.
This has to be solved/implemented by Apple. If another company is coming out and saying they can solve this (Branch, etc.), they aren't being completely truthful.
The issue is that iTunes doesn't pass a referrer into the app, so without passing them the iOS IDFA on the click (redirect or out-of-bounds) every tracking method has to rely on Fingerprinting which drops off in attribution accuracy significantly past 24 hours.
This feature isn´t available in iTunesConnect as of yet (there´s no option for 'Analytics'). The only possibility I know is to sign up for the Affiliate Program (https://www.apple.com/itunes/affiliates/) and use the links generated there.
But maybe it will be available in iTC when iOS8 goes live...who knows!
And your second question: no, you can´t get the App Store URL via the iOS SDK. Apple suggests to copy it over from the AppStore in iTunes (via 'copy link'), e.g. https://itunes.apple.com/us/app/youtube/id544007664?mt=8. When you open this link via
[[UIApplication sharedApplication] openURL:]
iOS will automatically open the AppStore.

Want to track the iOS installs if the user install from Google ADs instead of directly from app store.

I am trying to track source of the App whether it is coming from Google Ads. If it is installed by clicking from Google Ads then I want to get the confirmation when a user registers.
I have followed http://mobileapptracking.com/docs/MAT-Tracking-Methods-For-Mobile-Apps.pdf but can't get any solution.
I guess, you could find the solution here: http://support.mobileapptracking.com/forums/20877789-Integrated-Publishers
It's a set of articles which describe how to add an app publisher (like Google Ads), to view the related statistics, etc.

Mobile Install Ad was disapproved by Facebook

I setup a Mobile App using the developer's panel and added all the correct information as mentioned in the tutorial video on the Facebook SDK page.
It's a native iOS app so I supplied the bundle ID and the App Store ID. I've installed the SDK and Facebook is registering installs whenever I run it on my device.
However once I tried to use the "Promote" feature to setup install ads it keeps getting rejected by Facebook on the grounds that the URL is bad. The URL works fine as I've tested it multiple times. The URL is generated by Facebook itself using the App ID.
I've tried submitting it again after changing the creative, but I'm assuming I've been blacklisted since it immediately is disapproved.
What can I do?
Is your app limited to a certain region or country?
My ad was also disapproved and this is what I got:
"The destination URL of this ad violates our Ad Guidelines or could not be reviewed. Please check the URL you have submitted to ensure that it is free of any spelling errors and that it complies with our Advertising Guidelines. Please note that all sites must be viewable and functioning properly, regardless of the viewer's location. Additionally, sites are prohibited from linking to proprietary file types (.pdf, .doc, etc,) initiating automatic downloads, or trapping a user's browser in any way (e.g., pop-ups of any kind).
"
In my case the only logical explanation would be the availability of the app, as it is only available in one country. I link directly to the app store so that should not be a problem...
Sorry for my reply, i know it's not very helpful, but there is so little info on the web about it. I need to do detective work in order to understand what is happening.
I had the exact same thing. I think Facebook changed a ton of stuff in their ads dashboard. I created a new ad yesterday and it was finally approved. Try again.

Resources