deploying cordova admob app Advertising Identifier checks - ios

Hi what are the correct answers to apples questions according Advertising Identifier checks:
See below, I am using cordova and this plugin. Is it the first and fourth box assuming I am just distributing an app with the cordova plugin?

I am 100% sure of this answer. Even had an app rejected because of this. Admod iOS SDK uses Apple's advertising identifier (IDFA), thus the settings you are showing are 100% correct.

Related

mobile application was rejected in app store due to health kit framework

I made iOS app using Xamarin and my app is getting rejected for the following reason:
Apps using the HealthKit framework must indicate integration with the
Health app in their marketing text and must clearly identify the
HealthKit functionality in the app's user interface
But I don't use HealthKit anywhere and didn't enable it. I can't find any reference of it in the code.
Has anyone had this problem before?
Thank you
Be sure to check on your Apple Developer Center it isn't activated it on your Application Certificates.
I've resolved it by adding in project Properties, iOS Build:
Additional Options => Additional mtouch arguments: --linkskip=HealthKit
Oddly enough a week ago had my Xamarin app rejected for the same reason.
Although on the resolution center they asked me if the App uses the HealthKit Framework and i replied that the app does not use it.
Was approved the next day

iPhone App AppStore submission with SessionM SDK

I have added SessionM SDK with mPoints to my iOS app. When I submitted it to review I checked YES for Advertising Identifier (IDFA) question.
But the App was rejected with reason "We found that your app uses the iOS Advertising Identifier but does not include ad functionality."
I have checked the code with grep -r advertisingIdentifier . and got match in SessionM-SDK/libSessionM.1.14.6.a (SessionM SDK)
And now I have a question - should I select YES for Advertising Identifier (IDFA) question or not?
You does not need to check Yes for Advertising Identifier(IDFA) question.
it is only require when you have functionality in application to show ads via using Google ad, Chart boost library etc.
Finally I got approve for my App.
Correct answer is - you should check YES for Advertising Identifier (IDFA) question, because SessiomM SDK really uses it.
But some Apple's reviewers can't find advertisement even if it on main screen under the nose.
In this case simply provide more info about advertisement, and how user can find it.

Failed Validation reason : Improper Advsertising Idenfier IDFA Usage. Your app contains the Advertising Identifier IDFA

This is the message, when I tried to submit my new game :
Failed Validation reason : Improper Advsertising Idenfier IDFA Usage.
Your app contains the Advertising Identifier IDFA API but your app is
not respecting the Limit Ad Tracking in iOs.
I never have this issue before.
I check in terminal :
fr:DontTouch anthonybarouch$ grep -r advertisingIdentifier .
Binary file ./Trifecta/libInMobi-4.1.0.a matches
It's the only file where the advertisingIdentifier is used.
Here a screenshot of all the libraries I'm using in my project :
I had the same issue in this weekend and I had to remove all the add support frameworks, including iAd, AdSupport and libGoogleAdMob,and all the code in order to submit a binary and reject it.
Apple doesn't give you the chance to delete a version until you upload a binary, also you can't upload a binary if you didn't checked the "Advertising identifier" checkbox and you use ads in your app, and more retarded you can't change that option until you reject the binary uploaded for the current version.
So what I did, I created a new copy of my project, removed all references to ads, submit the binary without ads and rejected the binary, after that, I set the option on iTunes related to "Advertising identifier" to YES and uploaded a new binary form my original project with ads enabled and this worked.
The problem isn't actually to do with using 'advertisingIdentifier', but weak referencing it which Apple no longer allows.
If you remove AdSupport.framework, any SDK's which then cause linker errors are NOT the problem. So if you have other Ad providers not causing linker errors, this is because they are weak referencing AdSupport which is not allowed. Remove any others advertising SDK's and try again. In my case Millennial was the problem.
As per apple guidelines, if any application is using the Advertising identifier and not have included ad functionality then apple will reject the application.
So you got from terminal that libInMobi-4.1.0.a lib using the Advertising identifier.
Check for libInMobi-4.1.0.a updates. Make sure you have to use libraries which are not using such advertising identifiers.
You can use a symbolic breakpoint to identify what in your code or dependent SDK is calling advertisingIdentifier when it is not supposed to:
On a device, go to Settings > Privacy > Advertising and turn on Limit Ad Tracking.
In Xcode, add a symbolic breakpoint for -[ASIdentifierManager advertisingIdentifier]
Install and run the build to your device. That breakpoint should not fire, and if does then you've found the source of the problem.
I contacted Millennial regarding the same issue, I and was encouraged by their response...
It appears that Apple deployed some new auto-check validations over the weekend and our SDK is being flagged as non-compliant. We do not believe we’re out of compliance with IDFA policies, but it does appear we’re failing this auto-check. GMS Tech and product are both working on this as priority #1 today and we have engaged Apple.
We are (and always have been) compliant and we’re working with Apple
to figure out why this validation message is being tripped.
Later, I was told that the issue had been resolved on Apple's end, and that no Millennial SDK update would be required.
So, it looks like the current Millennial Media SDK (v5.2.0, and possibly earlier ones) are no longer a problem.

Improper IDFA usage, your app is not respecting the Limit ad tracking setting in ios

I have checked the iTC settings
I have uploaded the same app 2 days ago and it works fine but when today I uploaded the same app with a minor bug fix it's now showing this error.
I'm using Admob, Revmob and Applovin. But I know admob is the culprit.
The only solution for me was to trash the Admob-SDK and integrate the Startapp-SDK, It is compliant with the apple's new IDFA policies, you can read their documentation here.
I will let you know if Admob guys fix this issue.
From Applovin Folks
I wanted to update you on an IDFA change Apple made on Saturday. Apple's systems are automatically rejecting apps that are uploaded if the app has SDKs in it that access IDFA and still support pre-iOS 6 (where IDFA wasn't present). Our new SDK 2.3.6 (and in Unity, 3.0.9) will now pass Apple's screen since we have deprecated support for iOS 4 and 5 (only 1.5% of traffic); and note that many popular SDKs in the market act similarly so you may need to work with your other vendors on updating their software for compatibility.
Edit
I uploaded an update today(5th May, 2014) with admob 6.8.0 and it was uploaded sucessfully
It validated for me also. Initially I thought admob was the issue and might have been but after removing TapJoy and all references the app validated.
I had to remove both InMobi and Conversant (aka ValueClick/Greystripe). Then it stopped being an "Invalid Binary" and went into "Waiting for Review". I can confirm that AdColony, Chartboost and TapJoy all definitely pass Apple's check with latest SDKs. InMobi issued an SDK update on 29/4 (v4.3.0) but it does NOT pass this test.
I used Google AdMob and Flurry. With AdSupport framework removed, shows it's AdMob that's the culprit.
I can't find any recently released SDK for AdMob and Flurry, so I just change the status back to ready for binary upload again, select the answer as shown above in the screen dump, and it works for me, some screen dumps on my blog below. Hope this helps. Thanks!
http://new2objectivec.blogspot.com.au/2014/05/app-store-invalid-binary-error-due-to.html
I've submitted an app with AdMob today with the same settings.
It's now in Waiting for Review state.
I've used Xcode Organizer to submit the app. Maybe Apple have re-adjusted the validation.
I uploaded an app with admob sdk 6.8.0 successfully today (after removed mmedia sdk 5.2.0). I think you need to check other ad network sdk.
It appears your issue is actually coming from Applovin, not AdMob. Others seem to have succeeded with AdMob in some way, so it would make sense. These guys have come to the conclusion that it is Applovin -> Source
I've finally got mine to validate! If you remove AdSupport.framework, any culprits causing this failed validation will NOT cause a linker error. So the SDK's that are showing errors are the ones using the framework correctly, remove any others and try again. In my case Millennial was the problem.
I had an app that was at state "waiting for upload" before 12th April. After which the itunes guidelines were updated to contain section of IDFA usage when the app state is "Prepare for upload". So, because of this situation every time I turned in the binary I would get an error of "Improper IDFA usage".
For me the solution was
1.upload a binary without IDFA sdks.
2.make it "developer rejected".
3.Update the settings of IDFA after choosing "ready to upload binary" option from itunes connect.
4.Upload a new binary with IDFA sdks.

Does this app use the Advertising Identifier (IDFA)? - AdMob 6.8.0

I'm currently uploading my App to the App Store and Apple is asking me if this app users IDFA. I'm using the latest Admob SDK or 6.8.0 and I don't know if it uses IDFA or not, and if it does which check boxes should I hit X.X
Image http://i.gyazo.com/a7d36f95ac0cc066e5654517d4ec2f3f.png
I'm having the same issue here and I was a bit afraid of checking the last box, since I have no idea what the 3rd party SDK will do with the data collected and if they will respect the Limit Ad Settings.
But I found a post by a Google Admob programmer, Eric Leichtenschlag, on their forums:
The Google Mobile Ads SDK and the Google Conversion Tracking SDK utilize Apple's advertising identifier introduced in iOS 6 (IDFA). While each developer is responsible for how they access device data, the SDKs use IDFA under the guidelines laid out in the iOS developer program license agreement, including Limit Ad Tracking.
Including Limit Ad Tracking. This is what the last box is all about. So you must check the that box if you use AdMob. If you use other SDK I strongly recommend checking if they respect the guidelines as well.
Since I run only ads (Google AdMob), I checked the first (Serve ads...) and last box (I, ___, confirm...). App was approved and released, no issues.
Source: https://groups.google.com/forum/#!topic/google-admob-ads-sdk/BsGRSZ-gLmk
If you are lazy to check on each third party SDK if they use or not the IDFA you can use this command:
fgrep -R advertisingIdentifier . (don't forget the dot at the end of the command)
Go to your project/workspace folder and run the command to find which files are using the advertising identifier.
Then you just have to look in the guidelines of those SDKs to see what you need to do about the IDFA.
I recently submitted an app to Apple's App Store. My app was built using iOS 12, Xcode 10, and Swift 4.2. My app uses Google AdMob for the sole purpose of showing Interstitial Ads. When prompted these question, this is what I did:
1) Does this app use the Advertising Identifier (IDFA)? ANSWER: YES
a) Serve advertisements within the app - CHECKED
b) Attribute this app ... - NOT CHECKED
c) Attribute an action ... - NOT CHECKED
I, (my name), confirm that this app ... - CHECKED
My app was accepted and "Ready for Sale" in less than 24 hrs.
You can track all calls to [ASIdentifierManager advertisingIdentifier] with symbolic breakpoint in Xcode:
Yes, it does. From the AdMob page:
The Mobile Ads SDK for iOS utilizes Apple's advertising identifier (IDFA). The SDK uses IDFA under the guidelines laid out in the iOS developer program license agreement. You must ensure you are in compliance with the iOS developer program license agreement policies governing the use of this identifier.
If you have Google analytics or Facebook api in you app, you need to check all of them to make sure it works!
Edit: This is an old answer - see comments or other answers for an exact answer.
In app store connect now if we are using ads in our app then we will answer as yes to Does this app use the Advertising Identifier (IDFA)?
further 3 questions will be asked as
if your using just admob then check the first one and leave other two unchecked. Other two options (2nd , 3rd ) will be checked if your using app flyer to show ads.
all options are explained with detail here
BTW, Yandex Metrica also uses IDFA.
./Pods/YandexMobileMetrica/libYandexMobileMetrica.a
They say on their GitHub page that
"Starting from version 1.6.0 Yandex AppMetrica became also a tracking instrument and uses Apple idfa to attribute installs. Because of that during submitting your application to the AppStore you will be prompted with three checkboxes to state your intentions for idfa usage. As Yandex AppMetrica uses idfa for attributing app installations you need to select Attribute this app installation to a previously served advertisement."
So, I will try to select this checkbox and send my app without actually no any ads in it.
It seems many indie developers like me are desperately looking for an answer to these questions for years. Strangely, even after 5 years this question was asked, it seems the answer to this question is still not clear.
As far as I can see, there is not any official statement in Google AdMob documentation or website about how a developer can safely answer these questions. It seems developers are left on their own in the mystery about answering some legally binding questions about the SDK.
In their support forums they can advice questioners to reach out to Apple Support:
Hi there,
I believe it would be best for you to reach out to Apple Support for
your concern as it tackles with Apple Submission Guidelines rather
than our SDK.
Regards, Joshua Lagonera Mobile Ads SDK Team
Or they can say that it is out of their scope of support:
Hello Robert,
On this forum, we deal with Mobile Ads SDK related technical concerns
only. We would not be able to address you question as this is out of
scope for our team.
Regards, Deepika Uragayala Mobile Ads SDK Team
The only answer I could find from a "Google person" is about the 4th question. It is not in the AdMob forum but in the "Tag Manager" forum but still related. It is like so:
Hi Jorn,
Apple asks you about your use of IDFA when submitting your application
(https://developer.apple.com/Library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/SubmittingTheApp.html).
For an app that doesn't display advertising, but includes the
AdSupport framework for conversion attribution, you would select the
appropriate checkbox(es). In respect to the Limit Ad Tracking
stipulation, all of GTM's tags that utilize IDFA respect the limit ad
tracking stipulations of the SDK.
Thanks,
Eric Burley Google Tag Manager.
Here is an Internet Archive link in case they remove this page.
Lastly, let me mention about AdMob's only statement I've seen about this issue (here is the Internet Archive link):
The Mobile Ads SDK for iOS utilizes Apple's advertising identifier
(IDFA). The SDK uses IDFA under the guidelines laid out in the iOS
developer program license agreement. You must ensure you are in
compliance with the iOS developer program license agreement policies
governing the use of this identifier.
In conclusion, it seems most developers using AdMob simply checks 1st and 4th checkmarks and submit their apps without being completely sure about what Google exactly does in its SDK and without any official information about it. I wish good luck to us all.

Resources