improper advertising identifier usage

17 Solutions Collect From Internet About “improper advertising identifier usage”

You can upload any application with the same bundleID. When you’ve done uploading, you can reject binary and next time you change status to Ready to Upload, don’t forget check [IDFA].

Everything has come to its usual state now. Simply upload your binary as you’ve been doing this while, and broadly classify IDFA in two categories:

  1. publisher: You use third-party ad-networks library to display ad. Choose the 1st option in IDFA -> “Serve advertisements within the app”.
    You’re a publisher since you show ads, but do not perform advertising for your own app.

  2. Advertiser: You use third-party libraries to track conversions for your app, as well as track ‘goals’ in your app. You directly do not show ads in your app.
    Choose the 2nd & 3rd option in IDFA -> “Attribute this app installation to a previously served ad”.
    AND
    “Attribute an action taken within this app to a previously served advertisement”.

  3. Mixed: You track conversions for your app, as well as display ads in your app.
    Choose all three options.

You have to check “Yes” on the Prepare for Upload page:
enter image description here
But when you checked “No”, you are stuck with this new version on iTunes Connect and cannot reenter the Prepare for Upload page or delete your new version.

At the moment it seems like your app is locked forever on the old version when this error occurs.
Apple has to fix this!

  1. Remove Google Analytics Library folder from your reference (google analytics uses [IDFA])
  2. Remove AdSupport Framework from your reference
  3. Remove iADSupport Framework from your reference
  4. try upload again

This worked for me right now.

by the way, enabling this option does not help us

According to this article, which profiled a publisher who shared what Apple told them after receiving the same issue.

Apple advised the publisher to check code, including third-party libraries, to remove any incidences of the following:

class: ASIdentifierManager

selector: advertisingIdentifier

framework: AdSupport.framework

I had the same problem, and searched for the above instances… i found a method with them in the Playhaven api, and after i commented that section out i didn’t get the error again.

An update of the Playhaven api may have fixed this as well, but i’m not sure… i just opted for the ‘quick fix.’.

You just need to upload any app with the same bundle id and no ad support then reject the binary and check the new ad options yes. Then you can submit your app without a problem.

I was also facing this warning while validating app with iTunes connectenter image description here and I was using FacebookSDK.framework which was downloaded from Ref Link. In FBUtility.m I have commented below code and removed Adsupport.Frmaework

+ (NSString *)advertiserID {
NSString *advertiserID = nil;
Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"];
if ([ASIdentifierManagerClass class]) {
    ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
    advertiserID = [[manager advertisingIdentifier] UUIDString];
}
return advertiserID;

}
to

+ (NSString *)advertiserID {

return @"";

}

and changed another function in same class FBUtility.m

+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus {

if ([FBSettings restrictedTreatment] == FBRestrictedTreatmentYES) {
    return AdvertisingTrackingDisallowed;
}
FBAdvertisingTrackingStatus status = AdvertisingTrackingUnspecified;
Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"];
if ([ASIdentifierManagerClass class]) {
    ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
    if (manager) {
        status = [manager isAdvertisingTrackingEnabled] ? AdvertisingTrackingAllowed : AdvertisingTrackingDisallowed;
    }
}
return status;

}

to

+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus {

FBAdvertisingTrackingStatus status =AdvertisingTrackingUnspecified;
return status;

}

I have removed that FacebookSDK.framework and downloaded Facebook framework from Ref Link . I have resolve this warning by using this way and I have uploaded app successfully.

And also see this stack question Link to avoid rejection, find and remove unwanted framework.

The iTunesConnect site changed the workflow for when you handle this warning. You will need to upload your app with this warning (at least with XCode 5.1.1).

In iTunesConnect, you now select your build after uploading from XCode. After selecting the build, then clicking “Submit for Review”, you will get the prompts you previously set when preparing for upload (specifically – “Advertising Identifier”).

If you select “Yes” for the IDFA in the iTC upload page, be sure to have your AdBlocker switched off in Safari preferences, else you will get the error “You must select how your App uses the IDFA”, when you click “Continue”, but giving you no option to select that usage.

If your adblocker is switched off and everything works as it should, the HTML page rolls out to show options to select, at the bottom.

i have the same problem.

Our app just use googleAnalytics/googleMaps libraries and TestFlight library.
I’m stuck with a new version on itunes connect with NO flag on IDFA.

We cant remove this libraries because the app will not compile anymore right.

What’s the solution? Just create an empty app with the same bundle id and version id, upload to itunes connect and then stop the publishing? Really?

Thanks 🙂

If the issue is only related to google analytics SDK for iOS, you can upgrade it: the new version remove dependencies from AdSupport Framework, and hence from IDFA.

As a complete detailed answer to what @iDurocher said:
1. Make sure you have at least one active prerelease build after uploading your binary(choose prerelease then make sure that there is one clickable build, note that it takes time for processing maybe half an hour).
2. Get back to the Versions screen and select Build to add the uploaded build.
3. Press Submit for review now then you will be asked about the IDFA.

Facebook iOS SDK also uses IDFA. As I understand, one should use IDFA only for advertising purposes, according to info in iTunes Connect. I removed it, and it’s ok now.

I had the same problem and I resolved uploading the app, despite the IDFA warning. Then, the IPA is rejected and you can start over, with “Prepare for Upload” page enabled.
Make sure to check “Yes” in the section “Advertising Identifier” section of the page “Prepare for Upload”.

I had the same problem with Admob (GoogleMobileAds) SDK while validating the app with Xcode.

My solution was:

  1. Distribute the app with Xcode to iTunes Connect

  2. Turn off Adblock in Safari for the iTunes Connect page

  3. The App was declared as invalid because of improper IDFA usage in iTunes Connect

  4. I’ve got the “Prepare for Upload” Page again

  5. I enabled the Advertising Identifier Usage on this page, et voila

-Reject the binary.

-Upload binary again.

-Check the option “Does this app uses the advertising identifier(IDFA)”

and you are done.

You need to modify the code on MixPanel.m If you are using it.

 - (NSString *)defaultDistinctId
{
    NSString *distinctId = nil;
    if (NSClassFromString(@"ASIdentifierManager")) {
        distinctId = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
    }
    if (!distinctId) {
        NSLog(@"%@ error getting ifa: falling back to uuid", self);
        distinctId = [[NSUUID UUID] UUIDString];
    }
    if (!distinctId) {
        NSLog(@"%@ error getting uuid: no default distinct id could be generated", self);
    }
    return distinctId;

}

to

- (NSString *)defaultDistinctId
{
       return @"";

}

and Comment below lines on collectAutomaticProperties ,collectAutomaticProperties function

//    if (NSClassFromString(@"ASIdentifierManager")) {
//        [p setValue:[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString] forKey:@"$ios_ifa"];
//    }