集成
在本页面中,您将了解到如何下载、导入和配置 AppLovin MAX SDK。
下载最新版本 SDK
您可以通过 CocoaPods 将 SDK 作为依赖项下载。如果您想手动集成,请按照此处的说明操作。如果您希望使用 Swift Package Manager 进行集成,请按照此处的说明操作。
SDK 要求 iOS 最低部署目标为 iOS 11.0 或更高版本。 此外,Xcode 需要为 15 或更高版本。
要接收版本更新,请订阅 AppLovin iOS MAX SDK GitHub 库。
Swift 兼容性
要确保您的构建与包含 Swift 的构建文件兼容,请将 Build Settings > Always Embed Swift Standard Libraries 设置为 YES。
如果您使用的是 Swift,且构建目标为 iOS 12.2.0 或更早版本,请将 /usr/lib/swift
添加至 Build Settings > Runpath Search Paths,
避免 libswiftCore.dylib
发生问题。
CocoaPods
要通过 CocoaPods 集成 AppLovin SDK,请按照下列步骤操作:
- 将以下行添加至您的 Podfile:
pod 'AppLovinSDK'
- 在指令行中运行以下指令:
Terminal window pod install --repo-update
集成自定义 SDK 适配器
AppLovin Exchange (ALX) 支持针对 LinkedIn 的自定义适配器,请在下方查看集成说明。要了解更多信息,请参阅此处。
要安装适配器:
- 将以下行添加至您的 Podfile:
pod 'AppLovinDSPLinkedInAdapter'
- 在指令行中运行以下指令:
Terminal window pod install --repo-update
启用 Ad Review
要启用 MAX Ad Review 服务,请先登入您的 AppLovin 账户,再下载AppLovinQualityServiceSetup-ios.rb
,并将它移入您的项目文件夹中。打开终端窗口,将 cd
进入到您的项目目录中,然后运行:
ruby AppLovinQualityServiceSetup-ios.rb
初始化 SDK
创建 SDK 初始化配置
在初始化 SDK 之前,请在应用委托的 application:applicationDidFinishLaunching:
方法中为 SDK 创建初始化配置对象。
借助此配置对象,您可以配置 SDK 初始化时使用的属性。这些初始化属性均不可改变,但 ALSdkSettings
除外,它包含可在应用生命周期中改变的可变属性。
// Create the initialization configurationALSdkInitializationConfiguration *initConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: @"«SDK-key»" builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) {
builder.mediationProvider = ALMediationProviderMAX;
// Perform any additional configuration/setting changes}];
// Create the initialization configurationlet initConfig = ALSdkInitializationConfiguration(sdkKey: "«SDK-key»") { builder in
builder.mediationProvider = ALMediationProviderMAX
// Perform any additional configuration/setting changes}
您可以在 AppLovin 控制面板的 Account > General > Keys 部分找到 SDK Key。
初始化 SDK
请在应用启动时,使用初始化配置对象来初始化 AppLovin SDK。这样可为 SDK 提供更多广告缓存时间,从而改善用户体验。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ // Create the initialization configuration ALSdkInitializationConfiguration *initConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: @"«SDK-key»" builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) { builder.mediationProvider = ALMediationProviderMAX; }];
// Initialize the SDK with the configuration [[ALSdk shared] initializeWithConfiguration: initConfig completionHandler:^(ALSdkConfiguration *sdkConfig) { // Start loading ads }]; ⋮
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool{ let initConfig = ALSdkInitializationConfiguration(sdkKey: "«SDK-key»") { builder in builder.mediationProvider = ALMediationProviderMAX }
// Initialize the SDK with the configuration ALSdk.shared().initialize(with: initConfig) { sdkConfig in // Start loading ads } ⋮
示例
下方展示了集成示例:
// Create the initialization configurationALSdkInitializationConfiguration *initConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: @"«SDK-key»" builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) { builder.mediationProvider = ALMediationProviderMAX; builder.segmentCollection = [MASegmentCollection segmentCollectionWithBuilderBlock:^(MASegmentCollectionBuilder *builder) { [builder addSegment: [[MASegment alloc] initWithKey: @(849) values: @[@(1), @(3)]]]; }];}];
// Configure the SDK settings if needed before or after SDK initialization.ALSdkSettings *settings = [ALSdk shared].settings;settings.userIdentifier = @"«user-ID»";[settings setExtraParameterForKey: @"uid2_token" value: @"«token-value»"];
// Note: you may also set these values in your Info.plistsettings.termsAndPrivacyPolicyFlowSettings.enabled = YES;settings.termsAndPrivacyPolicyFlowSettings.termsOfServiceURL = [NSURL URLWithString: @"«https://your-company-name.com/terms-of-service»"];settings.termsAndPrivacyPolicyFlowSettings.privacyPolicyURL = [NSURL URLWithString: @"«https://your-company-name.com/privacy-policy»"];
// Initialize the SDK with the configuration[[ALSdk shared] initializeWithConfiguration: initConfig completionHandler:^(ALSdkConfiguration *sdkConfig) { // Start loading ads}];
// Create the initialization configurationlet initConfig = ALSdkInitializationConfiguration(sdkKey: "«SDK-key»") { builder in builder.mediationProvider = ALMediationProviderMAX builder.segmentCollection = MASegmentCollection { segmentCollectionBuilder in segmentCollectionBuilder.add(MASegment(key: 849, values: [1, 3])) }}
// Configure the SDK settings if needed before or after SDK initialization.let settings = ALSdk.shared().settingssettings.userIdentifier = "«user-ID»"settings.setExtraParameterForKey("uid2_token", value: "«token-value»")
// Note: you may also set these values in your Info.plistsettings.termsAndPrivacyPolicyFlowSettings.isEnabled = truesettings.termsAndPrivacyPolicyFlowSettings.termsOfServiceURL = URL(string: "«https://your-company-name.com/terms-of-service»")settings.termsAndPrivacyPolicyFlowSettings.privacyPolicyURL = URL(string: "«https://your-company-name.com/privacy-policy»")
// Initialize the SDK with the configurationALSdk.shared().initialize(with: initConfig) { sdkConfig in // Start loading ads}
iOS 14 支持
在 iOS 14 中,Apple 对全局隐私政策进行了调整。 Apple 要求应用遵守这些新政策。 否则,您可能会损失收入。 本节将介绍如何遵守新政策。
SKAdNetwork
使用特定于平台的标识符更新应用的 Info.plist
。
请参阅 SKAdNetwork documentation 中的说明。
许可和数据 API
在某些司法管辖区,您必须代表 AppLovin 的变现合作伙伴获得用户的许可,还必须向 AppLovin 正确发送许可值。 要了解操作方法,请查看 Privacy–Consent, Age-Related Flags, and Data APIs 文档。
iOS 15 全局 SKAdNetwork 报告
自 iOS 15 起,Apple 允许开发者向其自选终端发送 SKAdNetwork 安装回调副本。 MAX 包含全局 SKAdNetwork 报告 (MAX > Mediation > Analyze > Global SKA Report)。 通过此功能,您可以在同一面板中查看所有平台合作伙伴的 SKAdNetwork 数据。