本页面将向您展示如何下载、导入和配置 AppLovin MAX SDK。
您可以通过 CocoaPods 将 SDK 作为依赖项下载。 如果您想手动集成,请按照此处的说明操作。 如果您希望使用 Swift Package Manager 进行集成,请按照此处的说明操作。
SDK 要求最低 iOS 部署目标为 iOS 12.0 或更高版本。 此外,Xcode 版本需要为 15 或更高版本。
要接收版本更新,请订阅 AppLovin iOS MAX SDK GitHub 库。
要确保您的构建与包含 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 集成 AppLovin SDK:
pod 'AppLovinSDK'
pod install --repo-update
要启用 MAX Ad Review 服务,您必须登录您的 AppLovin 账户。
然后下载 AppLovinQualityServiceSetup-ios.rb 并将其移入您的项目文件夹中。
打开终端窗口,cd 进入您的项目文件夹并运行:
ruby AppLovinQualityServiceSetup-ios.rb
在初始化 SDK 之前,请在应用委托的 application:applicationDidFinishLaunching: 方法中为 SDK 创建初始化配置对象。
此配置对象允许您配置 SDK 初始化时所使用的属性。
这些初始化属性是不可变的,但 ALSdkSettings 除外,它包含可在应用生命周期内更改的可变属性。
// Create the initialization configuration
ALSdkInitializationConfiguration *initConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: @"«SDK-key»" builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) {
builder.mediationProvider = ALMediationProviderMAX;
// Perform any additional configuration/setting changes
}];
// Create the initialization configuration
let initConfig = ALSdkInitializationConfiguration(sdkKey: "«SDK-key»") { builder in
builder.mediationProvider = ALMediationProviderMAX
// Perform any additional configuration/setting changes
}
您可以在 AppLovin dashboard 的 Account > General > Keys 部分找到您的 SDK key。
请使用初始化配置对象来初始化 AppLovin SDK。 请在启动时执行此操作。 这可以最大限度地延长 SDK 缓存 mediated network 广告的时间,从而提供更好的用户体验。
- (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 configuration
ALSdkInitializationConfiguration *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.plist
settings.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 configuration
let 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().settings
settings.userIdentifier = "«user-ID»"
settings.setExtraParameterForKey("uid2_token", value: "«token-value»")
// Note: you may also set these values in your Info.plist
settings.termsAndPrivacyPolicyFlowSettings.isEnabled = true
settings.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 configuration
ALSdk.shared().initialize(with: initConfig) { sdkConfig in
// Start loading ads
}
在 iOS 14 中,Apple 引入了全局隐私政策变化。 Apple 要求应用程序遵守这些新政策。 如果您未能遵守,可能会损失收入。 本节将介绍如何遵守这些政策。
使用特定于 network 的标识符更新应用的 Info.plist。
请参阅 SKAdNetwork 文档中的说明。
在某些司法管辖区,您必须代表 AppLovin 的变现合作伙伴获得用户的同意。 您还必须向 AppLovin 传递同意值。 要了解操作方法,请查看隐私—同意、年龄相关标志和数据 API文档。