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。
为此我做了这些改变
- 已将 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 查看更新。
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。
为此我做了这些改变
- 已将 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 查看更新。