集成
在本页面中,您将了解到如何下载、导入和配置 AppLovin React Native 模块。
下载最新模块
执行以下指令,通过 npm
下载 AppLovin MAX React Native 模块:
npm install react-native-applovin-max
要接收版本更新,请订阅 AppLovin MAX React Native 模块 GitHub 库。
集成自定义 SDK 适配器
AppLovin Exchange (ALX) 支持针对 LinkedIn 的自定义适配器。 请按照下列说明操作,在 Android 或 iOS 端集成适配器。 要了解更多信息,请参阅此处。
针对 Android 的说明
针对 iOS 的说明
适配器安装方法:
- 将下列行添加至您的 Podfile:
pod 'AppLovinDSPLinkedInAdapter'
- 在命令行中运行以下命令:
Terminal window pod install --repo-update
启用 Ad Review
要启用 MAX Ad Review 服务,请按照下列说明操作:
针对 Android 的说明
在 build.gradle
文件末尾添加下列行:
Additions to Root-Level build.gradle
File
buildscript { repositories { maven { url 'https://artifacts.applovin.com/android' } } dependencies { classpath "com.applovin.quality:AppLovinQualityServiceGradlePlugin:+" }}
buildscript { repositories { maven { url = uri("https://artifacts.applovin.com/android") } } dependencies { classpath ("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+") }}
Additions to App-Level build.gradle
File
apply plugin: 'applovin-quality-service'applovin { apiKey "«your-ad-review-key»"}
plugins { id("applovin-quality-service")}applovin { apiKey = "«your-ad-review-key»"}
您可以在 AppLovin 控制面板的 Account > General > Keys 部分找到 Ad Review Key。
针对 iOS 的说明
下载 AppLovinQualityServiceSetup-ios.rb
并将其移动到您的项目文件夹中。
打开终端窗口,将cd
转到您的项目目录中,然后运行:
ruby AppLovinQualityServiceSetup-ios.rb
初始化 SDK
将以下代码片段添加至应用的主屏幕:
import AppLovinMAX, { Configuration } from "react-native-applovin-max";
⋮
AppLovinMAX.initialize("«your-SDK-key»").then((conf: Configuration) => { // SDK is initialized, start loading ads}).catch(error => { // Failed to initialize SDK});
您可以在 AppLovin 控制面板的 Account > General > Keys 部分找到 SDK Key。
完全缓存的广告素材能带来更好的用户体验。 因此,请务必在应用启动时初始化 AppLovin SDK。 这样,聚合平台就有最充裕的时间来缓存广告。 这一点对于视频广告尤为重要。
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 数据。
React Native v5 迁移指南
React Native 模块版本 5 加入了重大更新,能支持 Promises 和回传。 不过,该更新打破了向后兼容性。 本节将总结这些更新的信息。
原生 UI 组件 (AppLovinMAX.AdView
和 AppLovinMAX.NativeAdView
) 可以直接在组件内声明回传。
现在有了特定类型事件监听器,而不是以类型为参数的通用事件监听器。
例如,AppLovinMAX.addEventListener(type, listener)
现已被 AppLovinMAX.addInterstitialLoadedEventListener(listener)
取代。
多个之前带有返回值的同步方法现在改用了 Promises 架构。
访问 Promise
传递的值时,您可以通过 then
/catch
或 async
/await
实现链式调用。
更新后的方法见下表。
方法 | resolve 返回类型 | reject 返回类型 |
---|---|---|
AppLovinMAX.getAdaptiveBannerHeightForWidth(width) | 高度 (float ) | ⸺ |
AppLovinMAX.hasUserConsent() | boolean | ⸺ |
AppLovinMAX.initialize(sdkKey) | 配置对象 | error |
AppLovinMAX.isAgeRestrictedUser() | boolean | ⸺ |
AppLovinMAX.isAppOpenAdReady(adunitId) | boolean | error |
AppLovinMAX.isDoNotSell() | boolean | ⸺ |
AppLovinMAX.isInitialized() | boolean | ⸺ |
AppLovinMAX.isInterstitialReady(adUnitId) | boolean | error |
AppLovinMAX.isMuted() | boolean | ⸺ |
AppLovinMAX.isRewardedAdReady(adunitId) | boolean | error |
AppLovinMAX.isTablet() | boolean | ⸺ |
AppLovinMAX.showConsentDialog() | null | error |
您也可以引用 演示应用中的此提交,了解迁移后如何使用这些新方法。
React Native v6 迁移指南
React Native 模块版本 6 加入了重大更新,能支持 TypeScript 和模块。 不过,该更新打破了向后兼容性。 本节将总结这些更新的信息。
TypeScript
自 React Native 0.71 版本起,TypeScript 成为了 React Native 的默认应用程序编程语言。 React Native 模块版本 6 将代码库迁移到了 TypeScript。
模块
之前的版本作为单一模块导出 AppLovinMAX
,其中包含了 MAX 的所有功能。
版本 6 引入了一组模块,对不同的功能进行了分类。
版本 6 的架构与版本 5 类似,但根据新引入的模块调整了函数签名。
主要新模块如下:
模块 | 功能 |
---|---|
AppLovinMAX (默认) | 集成 (初始化和通用功能) |
隐私 | 隐私、条款流程 |
AppOpenAd | 应用开屏广告 |
BannerAd | 横幅广告 |
InterstitialAd | 插屏广告 |
MRecAd | 中等矩形 (MREC) 广告 |
NativeAdView | 原生广告 |
RewardedAd | 激励广告 |
AdView | 横幅和 MREC (UI 组件) |
迁移示例
import AppLovinMAX from 'react-native-applovin-max';
AppLovinMAX.addInterstitialLoadedEventListener((adInfo) => { const isInterstitialReady = await AppLovinMAX.isInterstitialReady(«ad-unit-ID»); if (isInterstitialReady) { AppLovinMAX.showInterstitial(«ad-unit-ID»); }});
AppLovinMAX.loadInterstitial(«ad-unit-ID»);
import { InterstitialAd, type AdInfo } from 'react-native-applovin-max';
InterstitialAd.addAdLoadedEventListener((adInfo: AdInfo) => { const isInterstitialReady = await InterstitialAd.isAdReady(«ad-unit-ID»); if (isInterstitialReady) { InterstitialAd.showAd(«ad-unit-ID»); }});
InterstitialAd.loadAd(«ad-unit-ID»);