iTunes install tracking - ios

I should be able to track the click to install conversion, with tools like Flurry or Adjust (ie. user clicks on a generated link, and is redirected to my app on the iOS AppStore and I could see, the click and the install).
How does this work, from the technical side. I'am generating a link, where I can obviously track the click very easily, but how do I get the conversion, from click to install? I can redirect the user to the AppStore page, but I would need to provide a ID (or similar) which the AppStore will provide my app, that the respective SDK can track the actual install.
Could you provide me some insight, how this works? Through iTunes Affiliate?

Through Flurry it's really easy if you own the apps:
Flurry SDK must be installed on both the apps (let call them A and B).
On Flurry website goto Company Tab -> "Conversions" -> "Up-Selling" -> "Create New Up-Sell..."
Then add the conversion you are trying to measure for example from A to B (you can also measure B to A separately).
This would make Flurry start measuring this.
For now you cannot measure exactly how many is by your ad at app A or if the user got both apps separately it would still get into that count. The way to measure that is not so complex it's involves Flurry creating a unique ID for the device (they are probably using Advertising ID - IDFA or other unique identifier you can get from the iOS SDK) and if this ID appears on the other app it would count as up sell (if A is before B).
Doing all that on your own without Flurry is too much because you would need servers just for that task. If you are willing to do so just on server side save each user_id (IDFA or other similar) the APP_ID that connected to it (it is pretty easy to get the bundle_id so you could use it or get from the iTunes API the exact APP_ID), then you would have for each device which apps he has that you installed your SDK on. from there you could estimate your conversion rate. On top of that you could register each link press on your server and then have another estimation of clicks from the SDK itself or sending the user to your server with his IDFA (or similar) and APP_ID. To make statistic more valuable you can measure time from the click till the actual running of the advertised app etc.
For now Apple doesn't provide this service themselves. not through iTunes connect or through other systems I know.

Related

Deep link after iOS app installed (Deferred deep linking)

How can you solve this scenario:
User is using Safari on iOS. They click a link on a website that says
"View Profile on our app". The user does not have the app, they are
taken to the app store to download the app. After they open the app,
the app immediately loads the profile screen (instead of the main
screen).
Currently in order for us to solve this problem, when the app is installed we immediately open Safari to grab the session cookie, if it matches the one on the server we load the right screen. However, Apple is now rejecting our app (and others) for loading Safari at startup.
What is a valid solution that won't get rejected by Apple?
(Also note that we were exploring IDFA - which would have worked - but Apple is rejecting apps that use IDFA if the app isn't using Ads)
This is definitely possible without the IDFA.
Basically, create a URL endpoint on your server that will 302 to the App Store on GET. When a user clicks this link, collect IP Address, OS, OS version, device model, screen size and other parameters and store it as a browser fingerprint.
Then, after the user installs your app, send the same array of meta data to your server as a device fingerprint. Your server can then match this device fingerprint to the browser fingerprint. If there's a match, you can be very certain that the user originated from your link.
Just to give you an idea of numbers, we (at Branch) give this service away for free and now process hundreds of millions of these match queries per day. We've seen that if a user will install, 99% of them will do it within the first 60 minutes. Just empirically, we estimate that this mechanism, with a short window of 2 hours is very close to 100% accurate.
For an added benefit, if you collect IDFA, you can drop a cookie on the browser on redirect and then store the matched pair to the IDFA to create a semi-permanent alternative to the fingerprinting mechanism I mentioned above. If someone clicks your link again, and you've got a cookie stored in the browser, you'll know who they are when they send their IDFA back to your service on install because you've seen that story play out before.
The best solution requires IDFA, which you are in fact allowed to collect for the purpose of deferred deep linking. The "Apple IDFA Scare" was a bit overblown in the media, and Apple revised its T&Cs to make it more clear. Apple also allows you to collect IDFA if you are an advertiser, for attributing installs, or for attributing post-install actions. In other words, you don't have serve ads in your own app in order to collect IDFAs.
Here's a link to the current Apple policy (https://developer.apple.com/news/?id=08282014a ), and this article from AdExchanger goes into a little more detail (http://www.adexchanger.com/mobile/apple-throws-a-bone-to-app-marketers-blesses-idfa-for-attribution/ )

How can one app provide data to another without swiching apps?

Scenario:
I "control" two different apps, App A and App B, both which the user has installed
App A is running
App A needs to obtain a string that was set by App B when App B last ran.
After obtaining the string, App A will still be running
User should not receive any feedback this communication is happening. E.g. no "switching animations" between A or B, no pop-ups, etc.
Constraints:
Apps are released under different vendors
Apps are already in the app store; updated versions will have this communication ability.
It is acceptable for the data stored in App B to be accessible to other apps on the device.
It is not acceptable for the data stored in App B to be visible to general third parties (e.g. if an external server is used, there needs to be some sort of secured scheme)
The data read should be able to occur immediately upon App A being opened after install. For instance, I cannot require the user of App A to enter log in credentials for an external communication service.
Must work on non-jailbroken devices.
This is seeming rather difficult to pull off in iOS7. Help is appreciated.
Tricky work around. Not recommended, but it will get the job done if you can't afford servers.
On the first app create a contact in the user's contacts book. Give it a generic name like "000 - NameOfAppB Data - Don't Delete" (I start with "000" so it goes to the bottom of the users contact book so they never see it, I also add "don't delete" so if the user does somehow find it they don't delete it hahaha) (who looks at contact books anyways). In the contact info under notes add your NSData in string format.
Then when app A is opened search for that contact, read the data, then delete the contact.
Apple does allow you to create and delete users contacts without their permission. (At least in 2011 they did, this may have changed).
This might serve your purpose
https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/Reference/reference.html
I am not sure of its limitations though, i have seen implementations where credentials have been shared between apps.

How is flurry able to detect when a user installs an ios app from a provided link?

Flurry can give you a URL that redirects to your app on the App Store, and they can tell you how many people install the app by using that URL. How do they do this?
I've found the answer on Quora, answered by the CTO of Flurry. They use various data points to tie a certain click to a certain user of the app. They claim to be about 90% accurate.
Data points they use include time of click vs time of install, device type, location of user, etc.
http://www.quora.com/Flurry/How-does-Flurry-user-acquisition-work-1

How to track User Conversion Rate by iTunes Affiliate Link within an iOS App

Given the following scenario:
An affiliate link is clicked to route the user to the iTunes App Store
Shouldn't matter if the link is clicked on the device itself or on a Mac/PC.
(Whereas the links are those links from LinkShare for instance)
The app is then being installed on an iOS device.
As soon as the user starts a certain action (for example buying in-app-purchases), this action will be logged together with the original Id of the affiliate ID, which made the user install the app.
The goal is to be able to track "converting users" (aka conversion rates) in dependance of the affiliate. Example: "60% of the users brought by Affiliate XY converted from non-paying to paying users".
What would be the best practice to achieve the above?
Pretty much every campaign analytic service should allow you to set this up just fine. One I know for sure does as I set it up last week for a project is
AppsFlyer: Mobile Apps Installation & Conversion Tracking
In issue 101 of iosdevweekly there was a Tapstream promotion so I took a look at that and they look like they'd do the job fine as well:
Tapstream: App Marketing, Unified.
If neither of those look perfect, here's a bunch of other competitors you can check out too.

iOS >> Ads Conversion Link: Is there a way to "catch" from which site / banner / ad users got to my app in the App Store?

I did some ads to my apps; the only information I get regarding how many people got to my app is from the sites where I advertised (Google, Facebook, etc...); and this is only showing how many people clicked the link.
I want info about the following:
How many people got to my app page - per each ad that I have
How many people downloaded the app - per each ad that I have
Can anyone assist?
What you are talking about is conversion tracking.
There's no easy way because you don't get stats from the app store page itself, so you have to do it like this:
when the user clicks your banner, record their device IP address in your database.
when they launch your app on their iPhone for the first time, make a call to your website using native code in your app and log the IP address again. If you get a match then you'll know that the user who clicked the banner is the same one who launched the app, therefore they must have just downloaded it from the app store.
It's not perfect because it won't work if there's a long time between them downloading and first launching the app (assuming they don't have a static IP), or if they download the app on a PC and then install it via iTunes later. It should work in a lot of cases though.
Some of the standard analytics packages have this capability already, for example Google/Admob supports tracking a user from clicking an Admob ad to launching the app in this way (Assuming you are using Google analytics in your app):
http://support.google.com/admob/bin/answer.py?hl=en&answer=1704628

Resources