开发者

保留您现有的聚合配置。

选择适合您应用的接入模式:可以由 Orivia 代为发起聚合请求,也可以由您的应用向 Orivia 获取推荐后自行发起请求。您与现有广告网络的合作关系保持不变。

接入

两种接入模式

两种模式都会保留您的聚合平台和广告网络合作关系,区别在于由谁向 MAX 发起请求。

兼容性

平台兼容性

可用性和后续步骤因聚合平台而异。

聚合平台状态说明
AppLovin MAX已支持生产环境已在 Android、iOS 和 Unity 上提供生产环境支持,涵盖插屏、激励视频和横幅广告格式。
Google AdMob需要测试合作方在承诺生产环境支持之前,需要有发行商参与测试。
Unity LevelPlay需技术确认需要在广告加载集成点进行技术确认。
其他聚合平台需技术评估需要进行技术评估。

更新于 2026 年 10 月。Orivia 提供 Android、iOS 和 Unity SDK;是否支持生产环境取决于上表所列的聚合平台。

快速开始

接入 AppLovin MAX

四步完成托管模式接入。如需使用集成模式,请参阅对应平台的集成指南。

平台
  1. 添加 SDK

    添加 Orivia SDK 及其 AppLovin MAX 模块。

    添加 Orivia Maven 仓库和两个模块。

    build.gradle.kts
    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。

    Podfile
    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,然后引用命名空间。

    C#
    using Orivia.Monetization;
  2. 初始化

    使用您的发行商 ID 和默认广告单元进行初始化。Orivia 会先获取配置,再初始化 MAX。默认广告单元用于回退:请使用未设底价或底价为 $0.01 的广告单元。

    Kotlin
    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()
            }
        )
    }
    Swift
    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()
        }
    }
    C#
    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();
        }
    }
  3. 发起聚合请求

    通过 Orivia 加载和展示广告。广告位(placement)和自定义数据会直接传递给 MAX。

    Kotlin
    oriviaMaxSdk.loadInterstitial()
    
    if (oriviaMaxSdk.isInterstitialReady()) {
        oriviaMaxSdk.showInterstitial("level_end")
    }
    Swift
    OriviaMaxSdk.shared.loadInterstitial()
    
    if OriviaMaxSdk.shared.isInterstitialReady() {
        OriviaMaxSdk.shared.showInterstitial(placement: "level_end")
    }
    C#
    OriviaMaxSdk.LoadInterstitial();
    
    if (OriviaMaxSdk.IsInterstitialReady)
        OriviaMaxSdk.ShowInterstitial("level_end");
  4. 验证

    在调试版本中开启日志,确认初始化完成、广告能够正常加载和展示,发布前请关闭日志。在分配任何流量之前,我们的团队会与您一起审核集成情况。

    Kotlin · 日志显示在 Logcat 中
    oriviaMaxSdk.setLoggingEnabled(true)
    Swift · 日志显示在 Xcode 控制台中
    OriviaMaxSdk.shared.setLoggingEnabled(true)
    C# · 日志显示在 Logcat 或 Xcode 控制台中
    OriviaMaxSdk.SetLoggingEnabled(true);

回退

回退机制

  • 异步优化,广告请求不停顿。如果 Orivia 超时,SDK 会返回您配置的默认广告单元。
  • 默认广告单元由您决定。初始化时,请提供未设底价或底价为 $0.01 的默认广告单元。
  • 控制权始终在您手中。通过动态配置调整测试流量分配,或停用 Orivia。

回退机制可以保住展示机会,但不会重建自定义的广告单元链或并行请求。

数据

Orivia 使用哪些数据

核心输入为广告请求、展示和收益数据。目前不需要点击数据。发行商可以提供额外的用户行为上下文。这些输入用于底价优化,而非广告定向。

SDK 如何读取用户同意信息,请参阅各平台指南中的 Privacy(隐私)章节。

文档与支持

平台指南

SDK 文档为英文。AdMob 指南请参阅 SDK 文档(在新标签页中打开)。

需要集成审核?

告诉我们您的应用和配置,我们的团队会与您一起梳理集成。

开始测试

发掘您流量中已有的收益。

从一款应用和受控流量开始,先衡量结果,再扩大规模。

开始测试