Google iOS 的 AdMob 新 SDK 设置:SKAdNetworkItems、NSUserTrackingUsageDescription、ATTrackingManager。准则 5.1.2 - 法律 - 隐私 - 数据使用

Google AdMob new SDK setup for iOS : SKAdNetworkItems, NSUserTrackingUsageDescription, ATTrackingManager. Guideline 5.1.2 - Legal - Privacy - Data Use

Google AdMob 现在显示以下警告。

为 iOS 14 准备您的应用程序 Apple 宣布了新的 AppTrackingTransparency 框架,这需要对您的 iOS 应用程序进行更改。实施 GMA SDK 7.64.0(或更高版本)并设置意见征求消息以帮助防止广告收入出现重大损失。

某些应用程序尚未配置为使用 Apple 的 SKAdNetwork 为确保您获得所有广告的功劳 activity,例如应用程序安装,请务必使用 Google 的网络配置 SKAdNetwork ID。

您的一些 iOS 应用需要更新 GMA SDK 为了保持广告正常投放并尽量减少广告收入损失,请为您的 iOS 实施 GMA SDK 7.64.0(或更高版本)应用。并使用 Google 的网络 ID 在您的应用中配置 SKAdNetwork。

为此我做了这些改变

  1. 已将 GoogleMobileAds SDK 更新至 8.0

2.Updated 应用的 Info.plist 文件包含这 3 个键:

        1. GADApplicationIdentifier key with a string value of AdMob app ID.
        2. Added SKAdNetworkItems in plist as mentioned here https://developers.google.com/admob/ios/ios14
        3. NSUserTrackingUsageDescription key with value 'Game_Name would like to access IDFA for thirdparty advertising purpose'  

info.plist截图

还添加了应用跟踪透明度警报:

- (void)requestIDFA
{
    if (@available(iOS 14.0, *))
    {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            
            // Admob Ads
            [self loadAdmob_Ads];
            [self loadRewardedInterstitial];
            [self requestAppOpenAd];
        }];
    }
    else
    {
        // Admob Ads
        [self loadAdmob_Ads];
        [self loadRewardedInterstitial];
        [self requestAppOpenAd];
    }
}

我在 Xcode 还需要做什么吗?

请参阅 Appstoreconnect 的下图,我需要设置是还是否?(是的,我们使用广告数据进行跟踪?)我们不跟踪用户,不确定 Google AdMob。

用于跟踪您的数据(标识符),与您相关联的数据(标识符)。 Google AdMob 的设置是否正确?

最近的 AppStore 拒绝消息:

准则 5.1.2 - 法律 - 隐私 - 数据使用和共享

我们注意到您在跨应用和网站跟踪 activity 用户之前没有使用 App Tracking Transparency 来请求用户的许可。您在 App Store Connect 中提供的应用隐私信息表明您收集数据是为了跟踪用户,包括设备 ID 和广告数据。

从iOS14.5开始,App Store上的应用程序在收集用于跟踪它们的数据之前需要通过AppTrackingTransparency框架获得用户的许可。此要求保护 App Store 用户的隐私。

更新: Apple 批准的游戏。这是带有最新 admob 广告(GADInterstitialAd、GADAppOpenAd、GADRewardedInterstitialAd、GADRewardedAd)的游戏:https://apps.apple.com/us/app/ocean-fishing-master-3d-games/id1550945081

更新: Apple 批准的游戏。这是带有最新 admob 广告(GADInterstitialAd、GADRewardedInterstitialAd、GADRewardedAd、GADAppOpenAd)的游戏:

https://apps.apple.com/us/app/ocean-fishing-master-3d-games/id1550945081

在 Info.plist

中添加了 Google Admob SKAdNetworkIdentifier 值
<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4fzdc2evr5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>2fnua5tdw4.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>ydx93a7ass.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>5a6flpkh64.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>p78axxw29g.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>v72qych5uu.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>c6k4g5qg8m.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>s39g8k73mm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qy4746246.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3sh42y64q3.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>f38h382jlk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>hs6bdukanm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>prcb7njmu6.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>wzmmz9fp6w.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>yclnxrl5pm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4468km3ulz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>t38b2kh725.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>7ug5zh24hu.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>9rd848q2bz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>n6fk4nfna4.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>kbd757ywx3.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>9t245vhmpl.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>2u9pt9hc89.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>8s468mfl3y.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>av6w8kgt66.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>klf5c3l5u5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>ppxm28t8ap.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>424m5254lk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>uw77j35x4d.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>e5fvkxwrpn.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>zq492l623r.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qcr597p9d.skadnetwork</string>
    </dict>
  </array>

在 didFinishLaunchingWithOptions 中添加了 requestIDFA。它会打开 App Tracking Transparency 对话框。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    
    [[GADMobileAds sharedInstance] startWithCompletionHandler:nil];
    [self requestIDFA];
.
.
.
}

requestIDFA函数:

- (void)requestIDFA
{
    if (@available(iOS 14.0, *))
    {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {

            // Admob Ads
            [self requestAppOpenAd];
            [self loadAdmob_Ads];
            [self loadRewardedInterstitial];
        }];
    }
    else
    {
        // Admob Ads
        [self requestAppOpenAd];
        [self loadAdmob_Ads];
        [self loadRewardedInterstitial];
    }
}

已将 AppTrackingTransparency.framework 添加到 Xcode。

在 info.plist 中添加了 NSUserTrackingUsageDescription

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

Admob 广告相关功能:

- (void)requestAppOpenAd {
  self.appOpenAd = nil;
  [GADAppOpenAd loadWithAdUnitID:ADMOB_APP_OPEN_ID
                         request:[GADRequest request]
                     orientation:UIInterfaceOrientationPortrait
               completionHandler:^(GADAppOpenAd *_Nullable appOpenAd, NSError *_Nullable error) {
                 if (error) {
                   NSLog(@"Failed to load app open ad: %@", error);
                   return;
                 }
                 self.appOpenAd = appOpenAd;
                 self.appOpenAd.fullScreenContentDelegate = self;

               }];
}

- (void)tryToPresentAd
{
        if (self.appOpenAd) {
          UIViewController *rootController = self.window.rootViewController;
          [self.appOpenAd presentFromRootViewController:rootController];
        } else {
          // If you don't have an ad ready, request one.
          [self requestAppOpenAd];
        }
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
 [self tryToPresentAd];
}

-(void)loadAdmob_Ads
{
    GADRequest *request = [GADRequest request];
            
    [GADInterstitialAd loadWithAdUnitID:ADMOB_FULL_SCREEM
                                    request:request
                          completionHandler:^(GADInterstitialAd *ad, NSError *error)
    {
      if (error)
      {
                NSLog(@"\nAdmob Failed to load interstitial ad with error: %@", [error localizedDescription]);
          return;
      }
      self.interstitial = ad;
      self.interstitial.fullScreenContentDelegate = self;
    }];
}

-(void)showAdmobAdsFullScreen
{
        if (self.interstitial) {
            [self.interstitial presentFromRootViewController:self.viewController];
          }
}

-(void)loadRewardedInterstitial
{
    [GADRewardedInterstitialAd
           loadWithAdUnitID:ADMOB_REWARDED_INTERSTITIAL
                    request:[GADRequest request]
          completionHandler:^(
              GADRewardedInterstitialAd *_Nullable rewardedInterstitialAd,
              NSError *_Nullable error) {
            if (!error) {
              self.rewardedInterstitialAd = rewardedInterstitialAd;
              self.rewardedInterstitialAd.fullScreenContentDelegate = self;
            }
          }];
}

-(void)playRewardedInterstitial
{
          [self.rewardedInterstitialAd presentFromRootViewController:self.viewController
                                userDidEarnRewardHandler:^{
                                    
                                    [self rewardInterstitialDoneRewardUser];
      
                                    [self loadRewardedInterstitial];
                                }];
}

Google官方文档:

SKAdNetworkItems iOS 14 次更新:https://developers.google.com/admob/ios/ios14

GADInterstitialAd:https://developers.google.com/admob/ios/interstitial

GADRewardedInterstitialAd:https://developers.google.com/admob/ios/rewarded-interstitial

GAD奖励广告:https://developers.google.com/admob/ios/rewarded-ads

GADAppOpenAd : https://developers.google.com/admob/ios/app-open-ads

自适应横幅(GADBannerView):https://developers.google.com/admob/ios/banner/adaptive

NSAppTransportSecurity:https://developers.google.com/admob/ios/app-transport-security

面向广告商的 SKAdNetwork 解决方案,以获得对 Apple SKAdNetwork 的开箱即用支持,并最大限度地提高您在 iOS 14 及以后的未来增长。

要解决此问题,请启用 SKAdNetwork 以跟踪转化

Google 移动广告 SDK 支持使用 Apple 的 SKAdNetwork 进行转化跟踪,即使 IDFA 不可用,它也能让 Google 归因应用安装。

要启用此功能,请使用附加字典更新 SKAdNetworkItems 键,该字典在 Info.plist[ 中定义 Google 的 SKAdNetworkIdentifier 值=29=].

    <key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4fzdc2evr5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>2fnua5tdw4.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>ydx93a7ass.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>5a6flpkh64.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>p78axxw29g.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>v72qych5uu.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>c6k4g5qg8m.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>s39g8k73mm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qy4746246.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3sh42y64q3.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>f38h382jlk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>hs6bdukanm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>prcb7njmu6.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>wzmmz9fp6w.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>yclnxrl5pm.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4468km3ulz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>t38b2kh725.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>7ug5zh24hu.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>9rd848q2bz.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>n6fk4nfna4.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>kbd757ywx3.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>9t245vhmpl.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>2u9pt9hc89.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>8s468mfl3y.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>av6w8kgt66.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>klf5c3l5u5.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>ppxm28t8ap.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>424m5254lk.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>uw77j35x4d.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>e5fvkxwrpn.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>zq492l623r.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qcr597p9d.skadnetwork</string>
    </dict>
  </array>

将来可能会添加其他 SKAdNetworkIdentifier 值。我们建议您返回 this page 查看更新。