Determine whether an app launch came from an AdMob click - ios

I'm trying to figure out whether the users I get from ads will buy in-app purchases frequently enough to justify the cost.
Is there any way an iOS app can tell whether the user has clicked on an AdMob ad in the past? Their Download API only seems to show aggregate data. I'm open to using any other network if they let me do this!
If there's anything in the HTTP request from an ad which would give me the user's magical ISU string, I'd be happy to bounce ads through my own server and implement my own tracking.
Thanks!

AdMob doesn't have any way of querying for this.
I decided to bounce ads through my own server and have the app query it later. If the server finds an ad click which came from the:
Same IP address
Same Device type
Same system version
it will tell the app that it came from a paid click.
Of course the problem with this is that I lose data on some unknown number of ad-click installations. I'd like to know how many I'm losing, but I don't know if there's a way to use AdMob's app conversion tracking together with ads which go to arbitrary URLs.

Related

SKAdNetwork warning from AdMob and when is the App Tracking Transparency alert needed for iOS apps

I have just started getting a warning message in AdMob for my iOS game with ads:
"Some apps haven’t been configured to use SKAdNetwork"
And that I may not be getting some advert credits. It looks easy to fix according to this:
https://developers.google.com/admob/ios/ios14
I just add a key to Info.plist
But on that link it also mentions App Tracking Transparency authorization and I’m unsure what to do about that. I know what ATT is - it presents an alert asking for permission track and affects access to the IDFA. But it’s a bit strange that Google says “If you decide to include ATT”. It’s like Google doesn’t really want you to do it.
Also, as far as I can see, the IDFA is still accessible without adding the ATT alert even in iOS 14.4. So some questions:
Does anyone know when (or if) Apple will enforce requiring the ATT alert? They used to say early 2021 - is there a firmer date or specific version number? It does not seem to be enforced yet (my game update without it was approved this week), and the IDFA seems perfectly accessible on iOS 14.4 without the alert. I can print it out with:
Console.WriteLine("AdvertisingIdentifier={0}", AdSupport.ASIdentifierManager.SharedManager.AdvertisingIdentifier);
And it’s not all zeros.
Am I really losing ad revenue without the SKAdNetwork key when the IDFA is still accessible anyway?
Is SKAdNetwork the future and is IDFA being sort of phased out? So in the future, AdMob will not use IDFA at all?
Should I go ahead and implement the ATT alert or wait (I’m worried most people will deny tracking, or it may put them off installing the game at all). Am I losing anything by not having the alert (I don’t think so, yet).
they will never enforce it, because if you do not show it that means that your app does not track users directly.
Note: I recommend not using ATT because most users ask you not track them anyway.
Yes, if a user gave you a permission to track them then they will get more personalized ads which usually translate into more revenue but as I stated in the note above, most of users will not let you track them.
Yes it seems that way, SKAdNetwork is needed to measure the success of ad campaigns while maintaining user privacy.
No, I think this is not needed

Facebook Analytics SDK for iOS app: how to disable value tracking for non-valuable events like App Install or Start Trial?

I'm running Facebook Ads campaigns for my iOS app and quite naturally I have Facebook Analytics SDK integrated inside my app to track App Installs and Start Trial events to measure the "quality" of the traffic my campaigns bring.
At the Analytics settings page inside Facebook developer dashboard.
https://developers.facebook.com/apps/XXX_APP_ID_XXX/analytics/settings/?business_id=XXX_BUSINESS_ID_XXX
I have the option Log In-App Events Automatically (Recommended) set to "Yes", which I presume enables the tracking of App Install and Start Trial events. There's also a Shared App Secret field filled in with the value from iTunesConnect.
Indeed, the App Install and Start Trial events have started to appear inside Analytics dashboard
https://www.facebook.com/analytics/XXX_APP_ID_XXX/AppEvents?__aref_src=landing_page&__aref_id=entity_name&force_desktop=1&user_id=XXX_USER_ID_XXX
However I noticed when viewing the stats for just App Installs there's a quite considerable value in USD attributed to these events. I decided to take a closer look into these events using Event Debugging
https://www.facebook.com/analytics/XXX_APP_ID_XXX/most_recent?since=1577923200000&until=1580256000000&__aref_src=landing_page&__aref_id=entity_name&force_desktop=1&user_id=XXX_USER_ID_XXX
and selecting "App Install" in the events filter.
There I saw that some (only some and as if randomly) App Installs have a value associated with them. To me this is an unexpected behavior since I can't imagine revenue being made by just receiving an install.
Same goes for Start Trial event, which always has the value associated to it (equal to the sale price of a subscription period) and once again this makes no sense to me because started trials themselves bring no value to me. They may be canceled or may end up in Billing Retry when the user has no money on the bank card attached to their iTunes account, etc. I track the conversions from Start Trial to Purchase on my backend separately with great precision and only these conversions as well as subsequent renewals would bring real value to my business.
I can and will track these Purchases manually and post them to Facebook (server-to-server style) and I will supply the corresponding value to these events myself, which will help to understand the overall performance and ROI but I need to clean my stats from these "false" automatically and erroneously attributed values to App Install and Start Trial events first.
I've already reported this issue to Facebook few days ago, however they seem to be slow in handling such requests so I've decided to ask here if anybody ran into similar issue.
Add this to your plist file to disable Auto Event Logging
<key>FacebookAutoLogAppEventsEnabled</key>
<false/>
Thanks to Lena Bru for giving enough food to find a solution.
The Facebook documentation is scarce on the raised questions and the support answer literally headed me towards the documentation. To recap things, there were 2 main issues (the second one I've mentioned in the comments to Lena's reply):
Facebook was tracking value for the events, which brought no value to my business
Some of the events I've sent from backend didn't appear in the campaign reports
To solve both of these problems, I:
Turned off the value tracking option in the Facebook app settings
On the client side I've started setting up User ID (which the client receives from backend) according to Facebook documentation
I've started to send all of the events, which I wanted to view inside Facebook business cabinet, under custom names from backend. I've supplemented them with app_user_id parameter (see Advanced Matching for App Events in Facebook documentation) so that they could match the App Installs reported from client.
There's still a smaller issue left (it feels like Facebook reports include 20% less installs than actually happening) but the current setup is already something to begin with.

My Own Impressions on AdMob?

I successfully made an app and its waiting for review right now. But meanwhile i've been playing the game on my mom's phone because, one, i dont have an iphone and its for iphone, and two, I actually like playing it. But I looked at my admob because i wanted to make sure i wasnt messing with it by playing my own app but it turns out i have 100 impressions! D: No clicks though, and i know im not supposed to click on my own ads. What do the impressions do? what are they? Am I going to get in trouble? I stopped playing the game now.
btw my moms iphone no longer has my developer Apple ID signed in on it, but it can still play the app and the UDID is still registered with the developer account if that matters.
Nothing to worry about.
Impressions are when an ad is displayed.
Requests are when an ad is requested.
Clicks is when you clicked on an ad (you haven't done that so nothing to worry about).
It's probably a good idea to add some quick code that differentiates between you and every other user. "If username == 'MobileGamer', don't display ads", or something similar. Just to be safe.
For example, I have several websites where both the ads and the stats-tracking code is omitted if I'm the logged-in user. That way, Google can't claim that I'm trying to steal money from them when I'm using my own website (they've tried before), and my user stats aren't skewed by huge activity spikes whenever I'm adding features or testing.
I haven't used AdMob specifically, but ad companies are famously strict with this sort of thing. I was once kicked from an advertising plan simply because my roommate, who was on the same network as me, clicked on an ad no my website once.
Better not to risk it. Just don't show the ads at all, for you or your testers.

iTunes install tracking

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.

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