220

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 enter image description herehttp://i.gyazo.com/a7d36f95ac0cc066e5654517d4ec2f3f.png

Jessica
  • 2,367
  • 2
  • 13
  • 14
  • 2
    Please read this:- http://techcrunch.com/2014/04/11/apple-developers-must-now-agree-to-ad-identifier-rules-or-risk-app-store-rejection/ – Nitin Gohel Apr 17 '14 at 05:03
  • Check if you app serves any of those purposes(displaying ads). If Yes, select the ones that applies. If No, you should not use Advertisement Identifier otherwise your app might be rejected. – dispatchMain Apr 17 '14 at 06:53
  • @Jessica Nice question! You're probably saving me a few weeks of waiting that would end up in disappointment! – Radu Sep 17 '15 at 21:02

9 Answers9

241

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

CopsOnRoad
  • 237,138
  • 77
  • 654
  • 440
tomDev
  • 5,620
  • 5
  • 29
  • 39
  • I checked all boxes, app has been in review for 9 days now. – Jessica Apr 29 '14 at 08:30
  • 6
    My app was submitted yesterday. I'm only using AdMob for advertisements (banner and interstitial), so I checked only the first box (serving ads) and the last one, which is mandatory and your must agree that you app and all 3rd parties respect the Limit Ad Tracking settings. I'll let you know how it goes. – tomDev Apr 29 '14 at 20:07
  • 6
    After only 2 business days my app went "In Review". Usually takes 5, this was really fast. After an hour, "Ready for Sale". – tomDev Apr 30 '14 at 22:42
  • @Jessica: has your app been approved? – dcone Jun 13 '14 at 10:27
  • 8
    I checked the first and last boxes. My app has just been approved. – dcone Jun 16 '14 at 08:46
  • 3
    @tomDev What happens if I'm using the same project for Free (with Ads) version of the app and Pro (no ads) version ? Although Pro version will not be serving any ads, Admob SDK is still there. Does that mean I should tick those checkboxes even for the Pro version? What disadvantages will app have if I do so ? – Rukshan Jul 29 '14 at 12:47
  • This is a really late answer, but had this exact issue this week. Just got a rejection for having the AdMob SDK and not displaying AdMob ads. I chose to display only iAds to test the revenue (terrible idea btw). I got a rejection for having IDFA frameworks and not using it. Please note the Apple iAd does not use IDFA, so you don't have check any box. So if you want to release a "Pro" version of your app, you must remove AdMod SDK and all IDFA frameworks. – tomDev Apr 30 '15 at 22:16
  • 1
    @Pixele9 With AdMob, no. It's all on the framework provided by Google. Just follow the simple instructions provided by Google to run the ads, IDFA will work automatically. You only must tell Apple that your app has a framework that uses IDFA. – tomDev Apr 21 '16 at 16:53
  • 7
    To clarify, the **first** box is the line: *"Serve advertisements within the app"*; and the **last** box is the line beginning: *"I, ____, confirm that this app, and any third party that interfaces with this app..."* – Jamie Birch Nov 06 '17 at 01:48
  • My app is submitted yesterday, it get passed and published at 2am today. Very fast! Inside the app, it includes networking request(GET Request) with TMDb API but no authentication and Firebase mobile Ads. I select the 1st and the 4th items when submitting. – Zhou Haibo Apr 30 '20 at 03:41
  • Very funny, I don't check any of the radio boxes (yes, no). Apple accepted my app without any problems. – Ronny Bigler Jan 16 '21 at 09:21
118

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.

Roberto
  • 3,487
  • 1
  • 22
  • 24
André Rodrigues
  • 9,313
  • 4
  • 23
  • 25
  • 2
    Does that work even in static libs? I tried it and there is a match in libGoogleAdMobAds.a but I'm not sure if this method is reliable. – Ricardo Nov 05 '14 at 11:20
  • 3
    @Ricardo Yes it works. Basically this tells you in which files or libs advertisingIdentifier is used. Then you just need to lookup on those files/libs to see what they really going on with IDFA. So for AdMob you need to look on their guidelines or on their readme for more informations. – André Rodrigues Nov 05 '14 at 15:55
  • 2
    Nice trick! Helped me identify which SDK was causing this issue – oyvindhauge Feb 25 '16 at 12:03
22

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.

  • it's 2021 and I'm getting the question for the first time even tho I"ve been using AdMob and submitted the app for 3x. This is the only thing I could find. https://developers.google.com/admob/ios/data-disclosure I am going to follow your answer and – app4g Jan 16 '21 at 06:54
  • did it work? i hope so. kindly reply if it did work – Yazeed AlKhalaf Jan 20 '21 at 19:32
16

You can track all calls to [ASIdentifierManager advertisingIdentifier] with symbolic breakpoint in Xcode: enter image description here

k06a
  • 17,755
  • 10
  • 70
  • 110
14

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.

Pang
  • 9,564
  • 146
  • 81
  • 122
ThomasW
  • 16,981
  • 4
  • 79
  • 106
  • Hmmm. I'm not sure, but I think only the first of the three checkboxes applies. – ThomasW Apr 17 '14 at 04:44
  • 1
    @Jessica I would not check the fourth box unless you have confirmed with Admob, *in writing* that they conform to that requirement. You are opening yourself up to a lawsuit if you get it wrong and could face severe penalties, privacy laws are a minefield of legal hedaches. If your code doesn't do any ad tracking, and if AdMob tells you that their code conforms to the guidelines, then AdMob is liable for any bugs in their code. The way the linked AdMob page is written they seem to be trying to palm liability off to you, by making you responsible for any bugs instead of them. – Abhi Beckert Apr 27 '14 at 19:53
14

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.

Morten Holmgaard
  • 7,484
  • 8
  • 63
  • 85
  • 1
    Thanks for this one. I was using analytics. – Perry May 06 '14 at 16:17
  • 2
    @Perry Not anymore, Apple just rejected my app as I was using Google analytics and ticked all the boxes. "We found that your app uses the iOS Advertising Identifier but does not include ad functionality. This does not comply with the terms of the iOS Developer Program License Agreement, as required by the App Store Review Guidelines." – Mazen Kasser Dec 04 '14 at 22:08
  • 6
    Well okay - then Apple really need to be better to explain them self! – Morten Holmgaard Dec 05 '14 at 16:28
  • 2
    If using GA to collect IDFA, but does not display ads within my app, I should select - Attribute this app installation to a previously served advertisement. - Attribute this app installation to a previously served advertisement. - Limit Ad Tracking setting in iOS. In this case, will my app get approve? – Evelyn Loo Apr 22 '15 at 11:19
  • @GangstaGraham What I did is select the last two checkbox - Attribute this app installation to a previously served adv. - Attribute an action taken within this app to a previously served adv. and the app got approved. – Evelyn Loo Apr 10 '16 at 13:23
7

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

enter image description here

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

Naqeeb
  • 1,121
  • 8
  • 25
  • What is this advice "if your using just admob then check the first one and leave other two unchecked" based on? – Luke Nov 26 '19 at 01:13
  • i mentioned a link at the end of answer which briefly describe these three options and you can select according to your need. – Naqeeb Nov 26 '19 at 06:23
5

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.

Denis Kutlubaev
  • 15,320
  • 6
  • 84
  • 70
3

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.

Jeroen
  • 1,168
  • 1
  • 12
  • 24
Luke
  • 965
  • 8
  • 21