distriqt / airnativeextensions

DEPRECATED: Original repository of the distriqt native extensions and is no longer maintained. Please see our site for the latest ANEs
https://airnativeextensions.com
2 stars 0 forks source link

iAds - must not include IDFA code #218

Closed gtawebb closed 9 years ago

gtawebb commented 9 years ago

Please see the conversation below. Even though the reviewer accepts that I show iAds, the app is still rejected based on it having IDFA in the code? Is it possible to not have IDFA in the adverts extension?

We found 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.

Specifically, section 3.3.12 of the iOS Developer Program License Agreement states:

"You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising. If a user resets the Advertising Identifier, then You agree not to combine, correlate, link or otherwise associate, either directly or indirectly, the prior Advertising Identifier and any derived information with the reset Advertising Identifier."

Note: iAd does not use the AdSupport framework, ASIdentifierManager, or the Advertising Identifier. Therefore they are not required for iAd implementations and should not be included in your app for iAd support.

If your app is serving ads, please:

If your app does not serve ads, please check your code - including any third-party libraries - to remove any instances of:

class: ASIdentifierManager selector: advertisingIdentifier framework: AdSupport.framework

If you are planning to incorporate ads in a future version, please remove the Advertising Identifier from your app until you have included ad functionality.

To help locate the Advertising Identifier, use the “nm” tool. For information on the “nm” tool, please see the nm man page.

If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool lists the methods that the library calls, and "otool -ov" will list the Objective-C class structures and their defined methods. These techniques can help you narrow down where the problematic code resides.

Sep 30, 2014 08:28 AM George Webb, gtawebb@gmail.com The app does show ads after 60 seconds of inactivity. They are displayed in a top banner and are dismissed by a tap anywhere on the screen.

I hope this allows you to accept the binary? photo%20(1).PNG Apple Sep 30, 2014 11:23 AM Hi,

Thank you for your response. We were still unable to encounter advertisements in your app. Could you tell us how to locate the ads in your app?

We look forward to continuing the review of your app.

Oct 1, 2014 01:26 AM George Webb, gtawebb@gmail.com Hi, I've retested this with the exact same code as in the production binary that you have and the ads are successfully displaying. I wouldn't include the ad code if i didn't want to display adverts. I have several free apps in this education series that display ads and this is just an additional subject that uses the same code base.

You don't need to do anything, just load up the app and wait on the initial options screen. I can only suggest that the app is having difficulty connecting to the adserver/ difficulty being served ads, for whatever reason, when you are trying? Although ads should appear after a minute, if you could wait longer one should definitely appear Apple Oct 1, 2014 05:56 PM Reasons

Program License Agreement Hi,

The screenshot you provided shows that you are using iAds. iAd has its own Ad Identifier, so it would be appropriate to remove IDFA from your binary or provide screenshots of the alternative advertisements present in your app.

We look forward to reviewing your revised app.

gtawebb commented 9 years ago

Hi, any thoughts on this? It could be a recurring problem for me and anyone who wants to use the Adverts ANE for iAds. Although I have published many times before with the same code, they now seem to be making an issue of it. The crux of the problem seems to be that the ANE should not reference IDFA code if it's just displaying iAds as opposed to other custom ads...

"The screenshot you provided shows that you are using iAds. iAd has its own Ad Identifier, so it would be appropriate to remove IDFA from your binary or provide screenshots of the alternative advertisements present in your app.

We look forward to reviewing your revised app."

marchbold commented 9 years ago

Hi, I'm looking to splitting out the iAd functionality. Seems the only way to satisfy Apple is to have an extension dedicated to iAd.

marchbold commented 9 years ago

I'll be updating the extension with 2 versions soon. You'll see in github an com.distriqt.Adverts-iAdOnly.ane which has all the other platforms stripped out on iOS so it only contains the iAd functionality on iOS.

You can still use the other platforms on Android.

Let me know how you go with this version.

gtawebb commented 9 years ago

That sound good to me, thanks.

The only other suggestion I can think of would be to only import the code based on conditional compilation constants that are set when compiling the final app. However, as the ane is prepackaged this prob won't work?

From my point of view a separate ANE for iAds that also works with all the Android platforms would be easiest. Once this is ready I will re-publish and submit my app including iAds and let you know how it goes.

marchbold commented 9 years ago

You are correct, there's not really any way to pass pre compilation options through to the ANE as it's already compiled code.

It's in github now. Let me know how it goes.

gtawebb commented 9 years ago

Hi, it got through, so hopefully that's that. However they (Apple reviews) aren't all that consistent! Thanks, George