开发者
保留您现有的聚合配置。
选择适合您应用的接入模式:可以由 Orivia 代为发起聚合请求,也可以由您的应用向 Orivia 获取推荐后自行发起请求。您与现有广告网络的合作关系保持不变。
接入
两种接入模式
两种模式都会保留您的聚合平台和广告网络合作关系,区别在于由谁向 MAX 发起请求。
- 托管模式
由 Orivia 发起聚合请求
SDK 优化底价或选择广告单元,然后发起聚合请求。
代码需要做哪些改动
- 通过 OriviaMaxSdk 初始化,它会同时初始化 MAX。
- 通过 OriviaMaxSdk 加载和展示插屏广告与激励视频广告,加载失败时会自动重试。
- 横幅广告仍使用您自己的 MAX 代码。
指南: Android 托管模式指南(在新标签页中打开) · iOS 托管模式指南(在新标签页中打开) · Unity 托管模式指南(在新标签页中打开)
- 集成模式
由您的应用获取推荐
您的应用获取推荐结果,并自行发起聚合请求。
代码需要做哪些改动
- 在 MAX 之后初始化 Orivia,并传入您的默认广告单元。
- 将 MAX 的加载成功、加载失败和收益回调转发给 OriviaMaxHelper。
- 每次加载前向 OriviaMaxHelper 获取广告单元,然后照常调用 MAX。
指南: Android 集成模式指南(在新标签页中打开) · iOS 集成模式指南(在新标签页中打开) · Unity 集成模式指南(在新标签页中打开)
兼容性
平台兼容性
可用性和后续步骤因聚合平台而异。
| 聚合平台 | 状态 | 说明 |
|---|---|---|
| AppLovin MAX | 已支持生产环境 | 已在 Android、iOS 和 Unity 上提供生产环境支持,涵盖插屏、激励视频和横幅广告格式。 |
| Google AdMob | 需要测试合作方 | 在承诺生产环境支持之前,需要有发行商参与测试。 |
| Unity LevelPlay | 需技术确认 | 需要在广告加载集成点进行技术确认。 |
| 其他聚合平台 | 需技术评估 | 需要进行技术评估。 |
更新于 2026 年 10 月。Orivia 提供 Android、iOS 和 Unity SDK;是否支持生产环境取决于上表所列的聚合平台。
快速开始
接入 AppLovin MAX
四步完成托管模式接入。如需使用集成模式,请参阅对应平台的集成指南。
添加 SDK
添加 Orivia SDK 及其 AppLovin MAX 模块。
添加 Orivia Maven 仓库和两个模块。
repositories { maven { url = uri("https://raw.githubusercontent.com/orivia-ai/orivia-maven/main") } } dependencies { implementation("ai.orivia:monetization:1.18.0") implementation("ai.orivia:mediation-max:1.18.0") }添加 Orivia specs 仓库和两个 pod,然后运行 pod install。
source 'https://github.com/orivia-ai/orivia-specs.git' source 'https://cdn.cocoapods.org/' pod 'OriviaMonetization', '1.18.0' pod 'OriviaMonetizationMax', '1.18.0'导入我们提供的 orivia-sdk-max .unitypackage,然后引用命名空间。
using Orivia.Monetization;初始化
使用您的发行商 ID 和默认广告单元进行初始化。Orivia 会先获取配置,再初始化 MAX。默认广告单元用于回退:请使用未设底价或底价为 $0.01 的广告单元。
private val oriviaMaxSdk: OriviaMaxSdk by lazy { OriviaMaxSdk.getInstance(context) } fun start() { oriviaMaxSdk.onInterstitialLoadedListener = OriviaMaxSdk.OnAdLoadedListener { // Ad is ready to show. isInterstitialReady() == true. } oriviaMaxSdk.onRewardedLoadedListener = OriviaMaxSdk.OnAdLoadedListener { // Ad is ready to show. isRewardedReady() == true. } oriviaMaxSdk.init( sdkKey = MAX_SDK_KEY, publisherId = ORIVIA_PUBLISHER_ID, defaultInterstitialAdUnitId = INTERSTITIAL_AD_UNIT_ID, defaultRewardedAdUnitId = REWARDED_AD_UNIT_ID, initListener = { // Both Orivia SDK and MAX are ready — safe to start loading oriviaMaxSdk.loadInterstitial() oriviaMaxSdk.loadRewarded() } ) }func start() { OriviaMaxSdk.shared.onInterstitialLoaded = { // Ad is ready to show. isInterstitialReady() == true. } OriviaMaxSdk.shared.onRewardedLoaded = { // Ad is ready to show. isRewardedReady() == true. } OriviaMaxSdk.shared.initialize( sdkKey: maxSdkKey, publisherId: oriviaPublisherId, defaultInterstitialAdUnitId: interstitialAdUnitId, defaultRewardedAdUnitId: rewardedAdUnitId ) { // Both Orivia SDK and MAX are ready — safe to start loading OriviaMaxSdk.shared.loadInterstitial() OriviaMaxSdk.shared.loadRewarded() } }void Start() { OriviaMaxSdk.OnInterstitialLoaded += OnInterstitialLoaded; OriviaMaxSdk.OnRewardedLoaded += OnRewardedLoaded; MaxSdk.SetSdkKey(MaxSdkKey); OriviaMaxSdk.Init( publisherId: OriviaPublisherId, defaultInterstitialAdUnitId: InterstitialAdUnitId, defaultRewardedAdUnitId: RewardedAdUnitId, initListener: new InitListener() ); } private class InitListener : OriviaMaxSdk.IInitListener { public void OnInitFinished() { // Both Orivia SDK and MAX are ready — safe to start loading OriviaMaxSdk.LoadInterstitial(); OriviaMaxSdk.LoadRewarded(); } }发起聚合请求
通过 Orivia 加载和展示广告。广告位(placement)和自定义数据会直接传递给 MAX。
oriviaMaxSdk.loadInterstitial() if (oriviaMaxSdk.isInterstitialReady()) { oriviaMaxSdk.showInterstitial("level_end") }OriviaMaxSdk.shared.loadInterstitial() if OriviaMaxSdk.shared.isInterstitialReady() { OriviaMaxSdk.shared.showInterstitial(placement: "level_end") }OriviaMaxSdk.LoadInterstitial(); if (OriviaMaxSdk.IsInterstitialReady) OriviaMaxSdk.ShowInterstitial("level_end");验证
在调试版本中开启日志,确认初始化完成、广告能够正常加载和展示,发布前请关闭日志。在分配任何流量之前,我们的团队会与您一起审核集成情况。
oriviaMaxSdk.setLoggingEnabled(true)OriviaMaxSdk.shared.setLoggingEnabled(true)OriviaMaxSdk.SetLoggingEnabled(true);
回退
回退机制
- 异步优化,广告请求不停顿。如果 Orivia 超时,SDK 会返回您配置的默认广告单元。
- 默认广告单元由您决定。初始化时,请提供未设底价或底价为 $0.01 的默认广告单元。
- 控制权始终在您手中。通过动态配置调整测试流量分配,或停用 Orivia。
回退机制可以保住展示机会,但不会重建自定义的广告单元链或并行请求。
数据
Orivia 使用哪些数据
核心输入为广告请求、展示和收益数据。目前不需要点击数据。发行商可以提供额外的用户行为上下文。这些输入用于底价优化,而非广告定向。
SDK 如何读取用户同意信息,请参阅各平台指南中的 Privacy(隐私)章节。
文档与支持
平台指南
- Android Managed MAX(在新标签页中打开)
- Android Integration (MAX)(在新标签页中打开)
- iOS Managed MAX(在新标签页中打开)
- iOS Integration (MAX)(在新标签页中打开)
- Unity Managed MAX(在新标签页中打开)
- Unity Integration(在新标签页中打开)
SDK 文档为英文。AdMob 指南请参阅 SDK 文档(在新标签页中打开)。
需要集成审核?
告诉我们您的应用和配置,我们的团队会与您一起梳理集成。