Mobile Install Ad was disapproved by Facebook - ios

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.

Related

How to detect an iOS app install campaign inside the app

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

IOS Deeplinking- Pass msg from email to your app

Existing user of the app will send email to other user.
Other user may have app installed or not installed on their device.
The email will contain some token. Now I want to pass that token to my app. I have read that by deep-linking, its possible. But how will I handle the case when other user have not installed my app yet in their IOS device.
Any help is appreciated.
What you're describing is called Deferred Deep Linking (Deep Linking refers to using a link to open your app, even directly to a specific piece of content, and Deferred means that it works even if the app isn't installed first).
Unfortunately there's no native way to accomplish this yet on either iOS or Android. URL schemes don't work, because they always fail if the app isn't installed. Apple's new Universal Links in iOS 9 get closer, but you'd still have to handle redirecting the user from your website to the App Store
A free service like Branch.io (full disclosure: they're so awesome I work with them) can handle all of this for you though. Here's the docs page covering exactly how to create email links like you described: https://docs.branch.io/pages/emails/email-partners-list/

How to enable app on apple app store to view-able on browser?

This is the first time I upload an app to apple app store. After weeks for reviewing, finally, I get my app listed on apple app store. But the problem is, now seems like my app app-store page is only viewable from iTunes. When I try to open it in a browser, it will shows "Connecting to the iTunes Store...". Why is it my app can't be the view from the browser? Why did another app can? How to fix it?
Short answer: It seems, you cannot fully predict the behavior of an app store link for a certain user. You being redirected doesn't mean other people will be redirected right away as well. Your app's country/language availability, users' app store region and language settings, the specificity of the app store link (which has optional components and alternative styles), and the browser cache all seem to have a say.
Added details: After experimenting with this a lot, it seems to me that the behavior of the link (or rather the response from the Apple server to requesting it) depends on the language/country version being requested, my own current country/language defined in iTunes/my app store account, plus some caching issues. So, whether a preview page is shown in the browser, or iTunes is attempted to be opened right away depends on several factors and doesn't always have the same result (for different users). In fact, two consecutive attempts to open the same URL can have different redirect behavior.
I noticed that a full app store link like https://itunes.apple.com/us/app/keynote/id361285480 more likely leads to the preview web page, if the app is available in the language/country referenced ("us" in the example) and there is no prior request cached in which I clicked through to the app in iTunes. If the app isn't available in the referenced location, or any other information is missing in the link for the Apple server to identify a particular language version on the preview website, or there is cached data that makes Apple confident enough to redirect you to iTunes directly (or it's Friday 13th and the moon is right behind the sun by pure chance...) then you may see a redirect instead.
For posting app store links in the likes of Facebook, Apple's app linker seems to produce URLs with the nicest preview snippets (and not: "Connecting to the iTunes store"), when putting in the right country. So, these generated URLs seem to be most complete/specific.
If your app is intended for a specific region, AppStore connect will still give you a URL with .../us/... in it. Changing it to the respective local region seems to fix the problem for me.
For an example,
given URL: https://apps.apple.com/us/app/yourcompany/id123456
If the app is for Norway region, change the URL to: https://apps.apple.com/no/app/yourcompany/id123456

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/ )

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.

Resources