选择要集成的广告平台
您可以通过两种方式下载 MAX 聚合适配器并将其集成到应用中:
- CocoaPods
- AppLovin 建议您采用这种方式集成适配器。 AppLovin 的适配器 Pod 会自动集成被聚合平台的 SDK 及其依赖。
- 开源适配器
- 如果需要更高的集成灵活性,则可以集成 AppLovin 的开源适配器。 此时,您将负责集成被聚合 SDK 及其依赖。 您可以在 AppLovin-MAX-SDK-iOS GitHub 库中找到这些适配器。
CocoaPods
勾选下方复选框,选择要通过 MAX 聚合接入的广告平台。 随后本页面会显示这些平台的具体说明。 本页面还会为您定制一个 CocoaPods 脚本。 将下方的定制 CocoaPods 脚本复制到您的 Podfile。
# Settingsuse_frameworks!inhibit_all_warnings!
# Podstarget 'YOUR_PROJECT_NAME' do pod 'AppLovinSDK' pod 'AmazonPublisherServicesSDK' pod 'AppLovinMediationAmazonAdMarketplaceAdapter' pod 'AppLovinMediationBidMachineAdapter' pod 'AppLovinMediationBigoAdsAdapter' pod 'AppLovinMediationChartboostAdapter' pod 'AppLovinMediationCSJAdapter' pod 'AppLovinMediationFyberAdapter' pod 'AppLovinMediationGoogleAdManagerAdapter' pod 'AppLovinMediationGoogleAdapter' pod 'AppLovinMediationHyprMXAdapter' pod 'AppLovinMediationInMobiAdapter' pod 'AppLovinMediationIronSourceAdapter' pod 'AppLovinMediationVungleAdapter' pod 'AppLovinMediationLineAdapter' pod 'AppLovinMediationMaioAdapter' pod 'AppLovinMediationFacebookAdapter' pod 'AppLovinMediationMintegralAdapter' pod 'AppLovinMediationMobileFuseAdapter' pod 'AppLovinMediationMolocoAdapter' pod 'AppLovinMediationOguryPresageAdapter' pod 'AppLovinMediationByteDanceAdapter' pod 'AppLovinMediationPubMaticAdapter' pod 'AppLovinMediationSmaatoAdapter' pod 'AppLovinMediationTencentGDTAdapter' pod 'AppLovinMediationUnityAdsAdapter' pod 'AppLovinMediationVerveAdapter' pod 'AppLovinMediationMyTargetAdapter' pod 'AppLovinMediationYandexAdapter' pod 'AppLovinMediationYSONetworkAdapter'end
Swift Build 设置
要支持 iOS 12.2 以下版本的 Swift,请按照下列步骤操作:
- 在 Xcode 项目的 main target 中选择File > Build Settings。
- 设置Always Embed Swift Standard Libraries为Yes。
应用委托 window
属性
请勿移除应用委托文件的 window
属性。
否则,InMobi 的 SDK 可能会崩溃。
@property (nonatomic, strong) UIWindow *window;
var window: UIWindow?
Meta Audience Network 数据处理选项
如果您不想启用限制数据使用 (LDU) 模式,请向 SetDataProcessingOptions()
传递一个空数组:
#import <FBAudienceNetwork/FBAudienceNetwork.h>⋮[FBAdSettings setDataProcessingOptions: @[]];⋮// Initialize MAX SDK
import FBAudienceNetwork⋮FBAdSettings.setDataProcessingOptions([])⋮// Initialize MAX SDK
要为用户启用 LDU 并指定用户地理位置,请按如下方式调用 SetDataProcessingOptions()
:
#import <FBAudienceNetwork/FBAudienceNetwork.h>⋮[FBAdSettings setDataProcessingOptions: @[@"LDU"] country: «country» state: «state»];⋮// Initialize MAX SDK
import FBAudienceNetwork⋮FBAdSettings.setDataProcessingOptions(["LDU"], country: «country», state: «state»)⋮// Initialize MAX SDK
使用 Google UMP
如果您使用 Google UMP 作为 CMP,则可以判断用户是否已向 Meta 授予许可。 为此,请使用如下代码:
NSNumber *hasMetaConsent = [ALPrivacySettings additionalConsentStatusForIdentifier: 89];if ( hasMetaConsent ){ BOOL consentGiven = hasMetaConsent.boolValue; // Set Meta Data Processing Options accordingly.}else{ // AC String is not available on disk. Please check for consent status after the user completes the CMP flow.}
let hasMetaConsent = ALPrivacySetting.additionalConsentStatus(forIdentifier: 89)if let consentGiven = hasMetaConsent?.boolValue{ // Set Meta Data Processing Options accordingly.}else{ // AC String is not available on disk. Please check for consent status after the user completes the CMP flow.}
Meta Audience Network 加利福尼亚州用户的数据处理选项
要了解如何启用 Meta Audience Network 的 “Limited Data Use”(限制数据使用)标记,请参阅Meta 开发者文档。
Meta 针对 iOS 14.5 及更高版本的准备工作
Audience Network SDK 6.2.1 于 2021 年 1 月 11 日发布。 此版本包含以下重要要求:
- 无论是否使用聚合,都需要直接调用
setAdvertiserTrackingEnabled
标记。 Meta 会据此判断能否使用这些数据来投放个性化广告。 - 将 Meta 建议的 SKAdNetwork ID 添加到 Xcode 项目的
Info.plist
,方便广告主评估推广活动效果。 请参阅 the SKAdNetwork documentation 了解集成说明。
[sdk initializeSdkWithCompletionHandler:^(ALSdkConfiguration *sdkConfiguration){ if ( @available(iOS 14.5, *) ) { // Note that App transparency tracking authorization can be checked via `sdkConfiguration.appTrackingTransparencyStatus` // 1. Set Meta ATE flag here, THEN }
// 2. Load ads}];
sdk.initializeSdk { (sdkConfiguration: ALSdkConfiguration) in
if #available(iOS 14.5, *) { // Note that App transparency tracking authorization can be checked via `sdkConfiguration.appTrackingTransparencyStatus` // 1. Set Meta ATE flag here, THEN }
// 2. Load ads}
添加您的 Google 竞价和 Google AdMob / Google Ad Manager 应用 ID
在应用的 Info.plist
中添加 GADApplicationIdentifier
键,
其字符串值为 Google 竞价和 Google AdMob / Google Ad Manager 应用 ID。
初始化 Amazon SDK
Amazon Publisher Services SDK 需要在 MAX SDK 之外进行初始化:
[[DTBAds sharedInstance] setAppKey: appId];DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName: DTBADNETWORK_MAX];[DTBAds sharedInstance].mraidCustomVersions = @[@"1.0", @"2.0", @"3.0"];[[DTBAds sharedInstance] setAdNetworkInfo: adNetworkInfo];[DTBAds sharedInstance].mraidPolicy = CUSTOM_MRAID;
从 Amazon SDK 加载横幅或 MREC 广告
要在 MAX 中集成 Amazon 广告,则必须先加载 Amazon 广告。
在加载 MAX 广告之前,将 DTBAdResponse
或 DTBAdErrorInfo
传递至 MAAdView
实例。
您可以通过调用 -[MAAdView setLocalExtraParameterForKey:value:]
来完成此操作。
@interface ExampleViewController ()<DTBAdCallback>⋮@end
@implementation ExampleViewController
- (void)viewDidLoad{ [super viewDidLoad];
NSString *amazonAdSlotId; MAAdFormat *adFormat;
if ( UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad ) { amazonAdSlotId = @"«Amazon-leader-slot-ID»"; adFormat = MAAdFormat.leader; } else { amazonAdSlotId = @"«Amazon-banner-slot-ID»"; adFormat = MAAdFormat.banner; }
CGSize rawSize = adFormat.size; DTBAdSize *size = [[DTBAdSize alloc] initBannerAdSizeWithWidth: rawSize.width height: rawSize.height andSlotUUID: amazonAdSlotId];
DTBAdLoader *adLoader = [[DTBAdLoader alloc] init]; [adLoader setAdSizes: @[size]]; [adLoader loadAd: self];}
- (void)onSuccess:(DTBAdResponse *)adResponse{ // 'adView' is your instance of MAAdView [self.adView setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse]; [self.adView loadAd];}
- (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo{ // 'adView' is your instance of MAAdView [self.adView setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo]; [self.adView loadAd];}
@end
import AppLovinSDKimport DTBiOSSDK
class ExampleViewController: UIViewController{ override func viewDidLoad() { super.viewDidLoad()
let amazonAdSlotId: String let adFormat: MAAdFormat
if UIDevice.current.userInterfaceIdiom == .pad { amazonAdSlotId = "«Amazon-leader-slot-ID»" adFormat = MAAdFormat.leader } else { amazonAdSlotId = "«Amazon-banner-slot-ID»" adFormat = MAAdFormat.banner }
let rawSize = adFormat.size let size = DTBAdSize(bannerAdSizeWithWidth: Int(rawSize.width), height: Int(rawSize.height), andSlotUUID: amazonAdSlotId)!
let adLoader = DTBAdLoader() adLoader.setAdSizes([size]) adLoader.loadAd(self) }}
extension ExampleViewController: DTBAdCallback{ func onSuccess(_ adResponse: DTBAdResponse!) { // 'adView' is your instance of MAAdView adView.setLocalExtraParameterForKey("amazon_ad_response", value: adResponse) adView.loadAd() }
func onFailure(_ error: DTBAdError, dtbAdErrorInfo: DTBAdErrorInfo!) { // 'adView' is your instance of MAAdView adView.setLocalExtraParameterForKey("amazon_ad_error", value:dtbAdErrorInfo) adView.loadAd() }}
import AppLovinSDKimport DTBiOSSDK
struct ExampleSwiftUIWrapper: UIViewRepresentable{ func makeUIView(context: Context) -> MAAdView { let adView = MAAdView(adUnitIdentifier: "«ad-unit-ID»") adView.delegate = context.coordinator
let amazonAdSlotId: String let adFormat: MAAdFormat
if UIDevice.current.userInterfaceIdiom == .pad { amazonAdSlotId = "«Amazon-leader-slot-ID»" adFormat = MAAdFormat.leader } else { amazonAdSlotId = "«Amazon-banner-slot-ID»" adFormat = MAAdFormat.banner }
let rawSize = adFormat.size let size = DTBAdSize(bannerAdSizeWithWidth: Int(rawSize.width), height: Int(rawSize.height), andSlotUUID: amazonAdSlotId)!
let adLoader = DTBAdLoader() adLoader.setAdSizes([size]) adLoader.loadAd(adView)
return adView }}
extension ExampleSwiftUIWrapper{ class Coordinator: DTBAdCallback { func onSuccess(_ adResponse: DTBAdResponse!) { // 'adView' is your instance of MAAdView adView.setLocalExtraParameterForKey("amazon_ad_response", value: adResponse) adView.loadAd() }
func onFailure(_ error: DTBAdError, dtbAdErrorInfo: DTBAdErrorInfo!) { // 'adView' is your instance of MAAdView adView.setLocalExtraParameterForKey("amazon_ad_error", value: dtbAdErrorInfo) adView.loadAd() } }}
@interface ExampleViewController ()<DTBAdCallback>⋮@end
@implementation ExampleViewController
- (void)viewDidLoad{ [super viewDidLoad];
NSString *amazonAdSlotId; DTBAdLoader *adLoader = [[DTBAdLoader alloc] init]; [adLoader setAdSizes: [[DTBAdSize alloc] initBannerAdSizeWithWidth: 300 height: 250 andSlotUUID: amazonAdSlotId]]; [adLoader loadAd: self];}
- (void)onSuccess:(DTBAdResponse *)adResponse{ // 'adView' is your instance of MAAdView [self.adView setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse]; [self.adView loadAd];}
- (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo{ // 'adView' is your instance of MAAdView [self.adView setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo]; [self.adView loadAd];}
@end
import AppLovinSDKimport DTBiOSSDK
class ExampleViewController: UIViewController{ override func viewDidLoad() { super.viewDidLoad()
let amazonAdSlotId: String
let adLoader = DTBAdLoader() adLoader.setAdSizes([DTBAdSize(bannerAdSizeWithWidth: 300, height: 250, andSlotUUID: amazonAdSlotId)!]) adLoader.loadAd(self) }}extension ExampleViewController: DTBAdCallback{ func onSuccess(_ adResponse: DTBAdResponse!) { // 'adView' is your instance of MAAdView adView.setLocalExtraParameterForKey("amazon_ad_response", value: adResponse) adView.loadAd() }
func onFailure(_ error: DTBAdError, dtbAdErrorInfo: DTBAdErrorInfo!) { // 'adView' is your instance of MAAdView adView.setLocalExtraParameterForKey("amazon_ad_error", value:dtbAdErrorInfo) adView.loadAd() }}
import AppLovinSDKimport DTBiOSSDK
struct ExampleSwiftUIWrapper: UIViewRepresentable{ func makeUIView(context: Context) -> MAAdView { let adView = MAAdView(adUnitIdentifier: "«ad-unit-ID»", adFormat: MAAdFormat.mrec) adView.delegate = context.coordinator
let amazonAdSlotId: String
let adLoader = DTBAdLoader() adLoader.setAdSizes([DTBAdSize(bannerAdSizeWithWidth: 300, height: 250, andSlotUUID: amazonAdSlotId)!]) adLoader.loadAd(adView)
return adView }}
extension ExampleSwiftUIWrapper{ class Coordinator: DTBAdCallback { func onSuccess(_ adResponse: DTBAdResponse!) { // 'adView' is your instance of MAAdView adView.setLocalExtraParameterForKey("amazon_ad_response", value: adResponse) adView.loadAd() }
func onFailure(_ error: DTBAdError, dtbAdErrorInfo: DTBAdErrorInfo!) { // 'adView' is your instance of MAAdView adView.setLocalExtraParameterForKey("amazon_ad_error", value: dtbAdErrorInfo) adView.loadAd() } }}
从 Amazon SDK 加载插屏广告
要将 Amazon 插屏广告集成到 MAX,必须先加载 Amazon 广告。
在加载 MAX 广告之前,将 DTBAdResponse
或 DTBAdErrorInfo
传递至 MAInterstitialAd
实例。
您可以通过调用 -[MAInterstitialAd setLocalExtraParameterForKey:value:]
来完成此操作。
#import <AppLovinSDK/AppLovinSDK.h>#import <DTBiOSSDK/DTBiOSSDK.h>
@interface ExampleViewController ()<DTBAdCallback>⋮@end
@implementation ExampleViewControllerstatic MAInterstitialAd *interstitialAd;static BOOL isFirstLoad;
+ (void)initialize{ [super initialize];
interstitialAd = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: @"«MAX-inter-ad-unit-ID»"]; isFirstLoad = YES;}
- (void)loadAd{ // If first load - load ad from Amazon's SDK, then load ad for MAX if ( isFirstLoad ) { isFirstLoad = NO;
DTBAdLoader *adLoader = [[DTBAdLoader alloc] init]; [adLoader setAdSizes: @[ [[DTBAdSize alloc] initInterstitialAdSizeWithSlotUUID: @"«Amazon-inter-slot-ID»"] ]]; [adLoader loadAd: self]; } else { [interstitialAd loadAd]; }}
- (void)onSuccess:(DTBAdResponse *)adResponse{ // 'interstitialAd' is your instance of MAInterstitialAd [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse]; [interstitialAd loadAd];}
- (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo{ // 'interstitialAd' is your instance of MAInterstitialAd [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo]; [interstitialAd loadAd];}
@end
import AppLovinSDKimport DTBiOSSDK
class ExampleViewController: UIViewController{ private static var interstitialAd = MAInterstitialAd(adUnitIdentifier: "«MAX-inter-ad-unit-ID»") private static var isFirstLoad = true
func loadAd() { // If first load - load ad from Amazon's SDK, then load ad for MAX if Self.isFirstLoad { Self.isFirstLoad = false
let adLoader = DTBAdLoader() adLoader.setAdSizes([DTBAdSize(interstitialAdSizeWithSlotUUID: "«Amazon-inter-slot-ID»")!]) adLoader.loadAd(self) } else { Self.interstitialAd.load() } }}
extension ExampleViewController: DTBAdCallback{ func onSuccess(_ adResponse: DTBAdResponse!) { // 'interstitialAd' is your instance of MAInterstitialAd Self.interstitialAd.setLocalExtraParameterForKey("amazon_ad_response", value: adResponse) Self.interstitialAd.load() }
func onFailure(_ error: DTBAdError, dtbAdErrorInfo: DTBAdErrorInfo!) { // 'interstitialAd' is your instance of MAInterstitialAd Self.interstitialAd.setLocalExtraParameterForKey("amazon_ad_error", value: dtbAdErrorInfo) Self.interstitialAd.load() }}
从 Amazon SDK 加载视频插屏广告
要将 Amazon 插屏广告集成到 MAX,必须先加载 Amazon 广告。
在加载 MAX 广告之前,将 DTBAdResponse
或 DTBAdErrorInfo
传递至 MAInterstitialAd
实例。
您可以通过调用 -[MAInterstitialAd setLocalExtraParameterForKey:value:]
来完成此操作。
#import <AppLovinSDK/AppLovinSDK.h>#import <DTBiOSSDK/DTBiOSSDK.h>
@interface ExampleViewController ()<DTBAdCallback>⋮@end
@implementation ExampleViewControllerstatic MAInterstitialAd *interstitialAd;static BOOL isFirstLoad;
+ (void)initialize{ [super initialize];
interstitialAd = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: @"«MAX-inter-ad-unit-ID»"]; isFirstLoad = YES;}
- (void)loadAd{ // If first load - load ad from Amazon's SDK, then load ad for MAX if ( isFirstLoad ) { isFirstLoad = NO;
DTBAdLoader *adLoader = [[DTBAdLoader alloc] init];
// Switch video player width and height values(320, 480) depending on device orientation [adLoader setAdSizes: @[ [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth: 320 height: 480 andSlotUUID:@"«Amazon-video-inter-slot-ID»"] ]]; [adLoader loadAd: self]; } else { [interstitialAd loadAd]; }}
- (void)onSuccess:(DTBAdResponse *)adResponse{ // 'interstitialAd' is your instance of MAInterstitialAd [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse]; [interstitialAd loadAd];}
- (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo{ // 'interstitialAd' is your instance of MAInterstitialAd [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo]; [interstitialAd loadAd];}
@end
import AppLovinSDKimport DTBiOSSDK
class ExampleViewController: UIViewController{ private static var interstitialAd = MAInterstitialAd(adUnitIdentifier: "«MAX-inter-ad-unit-ID»") private static var isFirstLoad = true
func loadAd() { // If first load - load ad from Amazon's SDK, then load ad for MAX if Self.isFirstLoad { Self.isFirstLoad = false let adLoader = DTBAdLoader()
// Switch video player width and height values(320, 480) depending on device orientation adLoader.setAdSizes([DTBAdSize(videoAdSizeWithPlayerWidth: 320, height: 480, andSlotUUID: "«Amazon-video-inter-slot-ID»")!]) adLoader.loadAd(self) } else { Self.interstitialAd.load() } }}
extension ExampleViewController: DTBAdCallback{ func onSuccess(_ adResponse: DTBAdResponse!) { // 'interstitialAd' is your instance of MAInterstitialAd Self.interstitialAd.setLocalExtraParameterForKey("amazon_ad_response", value: adResponse) Self.interstitialAd.load() }
func onFailure(_ error: DTBAdError, dtbAdErrorInfo: DTBAdErrorInfo!) { // 'interstitialAd' is your instance of MAInterstitialAd Self.interstitialAd.setLocalExtraParameterForKey("amazon_ad_error", value: dtbAdErrorInfo) Self.interstitialAd.load() }}
从 Amazon SDK 加载激励视频广告
要将 Amazon 激励视频广告集成到 MAX,必须先加载 Amazon 广告。
在加载 MAX 广告之前,将 DTBAdResponse
或 DTBAdErrorInfo
传递至 MARewardedAd
实例。
您可以通过调用 -[MARewardedAd setLocalExtraParameterForKey:value:]
来完成此操作。
#import <AppLovinSDK/AppLovinSDK.h>#import <DTBiOSSDK/DTBiOSSDK.h>
@interface ExampleViewController ()<DTBAdCallback>⋮@end
@implementation ExampleViewControllerstatic MARewardedAd *rewardedAd;static BOOL isFirstLoad;
+ (void)initialize{ [super initialize];
rewardedAd = [MARewardedAd sharedWithAdUnitIdentifier: @"«MAX-rewarded-ad-unit-ID»"]; isFirstLoad = YES;}
- (void)loadAd{ // If first load - load ad from Amazon's SDK, then load ad for MAX if ( isFirstLoad ) { isFirstLoad = NO;
DTBAdLoader *adLoader = [[DTBAdLoader alloc] init];
// Switch video player width and height values(320, 480) depending on device orientation [adLoader setAdSizes: @[ [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth: 320 height: 480 andSlotUUID:@"«Amazon-video-rewarded-slot-ID»"] ]]; [adLoader loadAd: self]; } else { [rewardedAd loadAd]; }}
- (void)onSuccess:(DTBAdResponse *)adResponse{ // 'rewardedAd' is your instance of MARewardedAd [rewardedAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse]; [rewardedAd loadAd];}
- (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo{ // 'rewardedAd' is your instance of MARewardedAd [rewardedAd setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo]; [rewardedAd loadAd];}
@end
import AppLovinSDKimport DTBiOSSDK
class ExampleViewController: UIViewController{ private static var rewardedAd = MARewardedAd.shared(withAdUnitIdentifier: "«MAX-rewarded-ad-unit-ID»") private static var isFirstLoad = true func loadAd() { // If first load - load ad from Amazon's SDK, then load ad for MAX if Self.isFirstLoad { Self.isFirstLoad = false
let adLoader = DTBAdLoader()
// Switch video player width and height values(320, 480) depending on device orientation adLoader.setAdSizes([DTBAdSize(videoAdSizeWithPlayerWidth: 320, height: 480, andSlotUUID: "«Amazon-video-rewarded-slot-ID»")!]) adLoader.loadAd(self) } else { Self.rewardedAd.load() } }}
extension ExampleViewController: DTBAdCallback{ func onSuccess(_ adResponse: DTBAdResponse!) { // 'rewardedAd' is your instance of MARewardedAd Self.rewardedAd.setLocalExtraParameterForKey("amazon_ad_response", value: adResponse) Self.rewardedAd.load() }
func onFailure(_ error: DTBAdError, dtbAdErrorInfo: DTBAdErrorInfo!) { // 'rewardedAd' is your instance of MARewardedAd Self.rewardedAd.setLocalExtraParameterForKey("amazon_ad_error", value: dtbAdErrorInfo) Self.rewardedAd.load() }}
测试 Amazon Publisher Services
AppLovin 建议您为 Amazon SDK 启用测试模式, 这样您就会收到测试广告。 使用以下调用启用测试模式:
[[DTBAds sharedInstance] setLogLevel: DTBLogLevelAll];[[DTBAds sharedInstance] setTestMode: YES];
DTBAds.sharedInstance().setLogLevel(DTBLogLevelAll)DTBAds.sharedInstance().testMode = true
您可以过滤瀑布流,使其只包含 Amazon 广告。 为此,请在Mediation Debugger中选择Select Live Network,然后选择 Amazon 平台。
禁用 App Transport Security
要禁用 App Transport Security (ATS),请将 NSAppTransportSecurity
添加至应用的 Info.plist
。
然后添加 NSAllowsArbitraryLoads
键并将其布尔值设置为 YES
。
确保这是唯一的键。
SKAdNetwork
请参阅 the SKAdNetwork documentation 了解集成说明。
安装新 Pod
在命令行中运行以下命令。
pod install --repo-update