Track Install from Facebook SDK came from Facebook - ios

I am using facebook iOS ads to send install to my app.
I am using the following code to track the installs.
- (void)applicationDidBecomeActive:(UIApplication *)application {
[FBSession.activeSession handleDidBecomeActive];
[FBSettings publishInstall:[FBSession defaultAppID]];
}
Is there anyway to track that a new install actually came from Facebook? I want to plug it into Flurry and track what quality of user I am getting.

Typically when you track ad providers (be it facebook, greystripe, adcolony, etc) they will record some sort of device identifier for every device that clicks the ad. In the past it was UDID but moving forward Apple is pushing their advertiser identifier.
You will need to store your own list of identifiers for every device that installed your app and then cross reference with the list of devices that clicked on the advertisement. The ad provider should be able to provide this list, including Facebook.
I am not sure if Flurry supports making cohorts by advertiser but I do know Kontagent has some admin tools which allow you to drop in reports from the ad networks to enable tracking by provider. Alternatively you could always roll your own.

There is no way.
You could check wether the user liked your Fanpage or stuff like that, but you don't know the link the user opening the AppStore came from.
A possibility could be to not directly link the ad to the AppsStore, but link it via a private proxy that recognizes a user clicked on the link and if shortly after this time a user downloaded your app it may be a Facebook User that clicked the Ad

I figure you has read the SDK documentation.
If you go to Set up your app to measure mobile app install ads you can read that this information is stored in your App Dashboard.
In this link is explained clearly how the "app installs ads" works and how to manage this information.
Unfortunately isn't possible to export this information directly from your app to be sent to Flurry.

What you're talking about is attributing the source of installs for a mobile advertising campaign. In order to do this, you need to be able to determine that the person who installed the app was the same person that clicked on the relevant ad (on Facebook, or whatever other ad provider). In order to do this, you need an identifier that uniquely identifies the user--in the past this was the UDID, now it's moving towards the advertising identifier.
Many ad providers will calculate this figure for you if you report to them whenever a use installs the app for any reason, by comparing all the identifiers of the installs you send them with the identifiers of the users that clicked their ads.

Related

Do I need to use User Tracking if I use Admob?

I added the App Tracking Transparency dialog in my code to ask users if they allow tracking.
My app was rejected in the App Store Connect -
Your app contains NSUserTrackingUsageDescription, indicating that you will request permission to track users.
But now I'm not sure if I really need to use tracking?
I simply use Admob to show ads, and have only one app, so I don't need to collect data?
I have no idea what type of ads Admob shows the users (personalized/not personalized)
I assumed that everyone who uses Admob should show that User Tracking permission for ios14+, but do I really? Why do I need to collect data?
no you don't need NSUserTrackingUsageDescription if you use Admob.
you can use this permission like if you want to get advertising id of the device.
and remember to delete NSUserTrackingUsageDescription from info.plist if you don't use it so your app don't get rejected.
also if you used this permission remember to change the privacy of the app on apple store,
go to app privacy and in data types section click edit and select Identifiers (Device ID) and set this one as used for tracking purposes. and make sure that this is the only one selected as used for tracking.

IS storing data without user signing in on flutter app possible?

I'm making a card game for apple appstore that consists of 5 decks, 2 of them being free to play and 3 of them needed payment to be unlocked. I am not currently planning to do a login for my app. Would there be any way for me to track whether or not the user has paid and unlocked a particular deck?
If you want to detect if user bought something and you need to do it in different devices and even in the same device if user uninstall / install again, you'll need to implement a sign up strategy.
If you don't care about cross device, cross installations.. then you could generate an installation id that you're sure to be unique and send it to the server the first time the app is opened and use that to identify activity on that device/installation in the future.
You could use a uuid or any other identifier that you know that won't be used by anyone else.
So the flow would be:
App opened for first time
Generate installation id
Store it locally
Send installation id to server
Send it in the future to identify current installation

Whats the recommended way to handle the Apple's "Data use & sharing" warning message?

I just got mail from Apple stating that
"Data use & sharing" : Your app uses analytics software to collect and send user or device data to a third party without the user's consent. Apps must request explicit user consent and provide a clear visual indication when recording, logging, or otherwise making a record of user activity. This includes any use of the device camera, microphone, or other user inputs.
For your app to remain available on the App Store, you must remove any code, frameworks, or SDKs that collect, record or share a users data and resubmit your app for review.
Please let us know what is the recommended way to handle it,
My suggestions:
Can we just remove the data tracking(only for analytics & statistics which is the key to business) 3rd party SDKs ?
(or)
Just add permission alert stating that we are collecting information for so and so permission and track information ?
Apple has started a crackdown on the apps which tracks user activity through user inputs, screen recording etc.
The best way to get your app approved is to remove any code or the third party sdks which tracks user activity. I resubmitted an app today by removing a third party library and it got approved right away.
But if statistics are the key to your business then you can take a hint from here.
Apps must request explicit user consent and provide a clear visual indication when recording, logging, or otherwise making a record of user activity.
If you use your own privacy policy then clearly state how you track your user and how user's data will be used. And in addition to that, also show some kind of alert in your app that how the user data will be used (maybe through a UIPageViewController)
We ended up keeping all of our analytics (MixPanel, Google, Crashlytics, Facebook, AppsFlyer).
We only removed AppSee - because of the screen recording, and got approved within 10 hours.
My conclusion is that the only thing to remove is the screen recoding and all he rest can remain as is.

Retrieve Apple ID in Cordova

Maybe someone knows, there are some plugin cordova, allowing to determine the user's Apple ID on iOS? I need to use this account to identify the user in the application, if it is, for example, decides to change the device to another. I would be very grateful for any help for two days looking for on the Internet, can not find anything. Sorry for my english
there is no way in iOS SDK to get AppleId (email or password) or any information about it this type of data is very sensitive and I hope well secured ;) So no plugin for Cordova.
To identify an user in your application you can use other ways, for example Game Center Account or Facebook login to identify user. I suggest you to find more information about these steps:
Allow user to sign using game center or facebook for iOS applications
Store obtained identifier at your server
Store app/game data at your server with obtained identifier
When user sign back to your app you can identify him at your server
You may restore some app/game data from your server after user sign on other device
Depends on your needs what you need to store and restore when user sign back.
Also I suggest read some parts from https://developer.apple.com/app-store/review/guidelines/ like 17.2, 22.7 before you made final decision about what and how you will ask user for some credentials or other private dat.
To identify a user across devices the only real solution is the implement an authentication system of some kind. There is nothing accessible through the API to uniquely identify the user.

How to find out which facebook mobile install ad was clicked after installing the promoted iOS app

When a user clicks on a facebook mobile install ad on ios an app store window pops up.
As answered here What happens to an iOS deeplink when the app is not installed? it's not possible to put any custom parameters to be an launch parameter on the first app launch.
Is there a way after the downloaded app was opened and the user logged in with facebook to get information about which ad he clicked befor? Because actually there is a connection between ad, itunes app id, and facebook app id, isn't it?
I asked a similar question today. But from the information that I was able to find, that is (most likely) not possible.
Even if your app requires the user to register with Facebook and you therefore you have a FB user Id which could potentially be matched against.. Because Facebook gives you the total install counts only, but not a list of user Ids of FB users who clicked your ad, I really can't imagine how to get that info. Unfortunately.
I think we can use this link to check the Activities done on the FB Ad's.
https://www.facebook.com/ads/manager/

Resources