集成广告网络

Android聚合说明

OpenMediation聚合平台支持从多个广告网络展示广告,通过将广告请求发给多个平台,遴选最佳广告进行展示,这有助于最大化提升您的广告收益。OpenMediation平台支持从十多个平台聚合横幅、原生、插屏、激励视频等类型进行广告加载与展示,通过智能加载、多实例机制和hybrid waterfall等技术实现收益最大化。

注意从OpenMediation 2.3.1开始,我们对广告API进行了调整,详情请参考 Android OM v2.3.1 API 变更。

 

开始之前

在开始使用OpenMediation聚合功能之前,您需要先正确的集成OpenMediation 聚合SDK并完成了相应的广告类型的加载与展示:

重要提示:Android SDK v2.0.0及以上的版本中, 用于集成第三方广告平台的adapter模块采用独立的aar文件方式打包,除了广告平台的SDK,您还需要单独下载和集成adapter的aar文件到您的项目中.

举例来说,如果您要集成AdMob的广告,那么您需要同时将AdMob的SDK和对应的adapter添加到project的libs中。

 

集成广告网络

OpenMediation聚合平台支持十多个第三方广告网络,进行第三方平台的集成需要以下三个方面操作:

  1. 第三方广告平台操作:登录第三方网络操作界面,创建应用和对应的广告位。
  2. OpenMediation平台操作:更新对应广告位的聚合设置,增加该网络的实例。我们建议采用自动优化的方式。
  3. 应用程序代码 – 需要更新您的应用程序,加入第三方广告网络的SDK和对应的adapter。

请务必按照本文档的聚合说明指导下进行操作.

我们同时支持Maven自动方式和手动方式进行第三方平台的聚合和集成。

 

自动方式集成

按照以下所示的代码,您可以非常简单快速的完成自动集成操作,只需将对应广告平台的脚本拷贝到您的gradle 文件中。我们建议您采用自动的方式进行集成。

如果您习惯于使用手动下载方式,您可以参考下一节“手动下载集成”,那里可以找到所有需要的下载链接和信息。

OpenMediation SaaS平台提供全面的海外变现AdNetwork平台覆盖,您只需要两个步骤即可完成所需的平台SDK和OpenMediation SDK的集成。以下示例的集成代码包含了所有支持的海外平台,请根据所需集成的平台选取适当的代码片段。

第一步,将下面对应平台的集成脚本拷贝到您的 project-level build.gradle 文件的 repositories 中。

allprojects {
    repositories {
        mavenCentral()
        google()
        // Mintegral
        maven {
            url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"
        }
        // Tapjoy
        maven {
            url "https://sdk.tapjoy.com/"
        }
        // AdTiming
        maven {
            url "https://dl.adtiming.com/android-sdk"
        }
        // Ogury
        maven {
            url 'https://maven.ogury.co'
        }
        // PubNative
        maven {
            url 'https://verve.jfrog.io/artifactory/verve-gradle-release'
        }
        // Pangle
        maven {
            url 'https://artifact.bytedance.com/repository/pangle'
        }
        // OpenMediation
        maven {
            url 'https://dl.openmediation.com/omcenter/'
        }
        // ironSource
        maven { url 'https://android-sdk.is.com/' }
        // Chartboost Mediation
        maven { url 'https://cboost.jfrog.io/artifactory/chartboost-mediation' }
        // Admost
        maven {
            allowInsecureProtocol true
            url 'http://repo.admost.com:8081/artifactory/amr'
        }
    }
}

第二步,将下面对应平台的集成脚本拷贝到您的 application-level build.gradle 文件的 dependencies 中。

// OpenMediation SDK
implementation 'com.openmediation:om-android-sdk:2.3.2'

// AdTiming (Support S2S Bidding)
implementation 'com.openmediation.adapters:adtiming:2.3.1'
implementation 'com.adtiming:adnetwork:6.9.1'

// AdMob
implementation 'com.openmediation.adapters:admob:2.3.1'
implementation 'com.google.android.gms:play-services-ads:20.1.0'

// Facebook (Support S2S Bidding)



// Vungle
implementation 'com.openmediation.adapters:vungle:2.3.0'
implementation 'com.vungle:publisher-sdk-android:6.9.1'

// AdColony
implementation 'com.openmediation.adapters:adcolony:2.3.0'
implementation 'com.adcolony:sdk:4.5.0'

// AppLovin
implementation 'com.openmediation.adapters:applovin:2.3.0'
implementation 'com.applovin:applovin-sdk:10.2.1'

// Tapjoy
implementation 'com.openmediation.adapters:tapjoy:2.3.0'
implementation 'com.tapjoy:tapjoy-android-sdk:12.8.0@aar'

// Chartboost
implementation 'com.openmediation.adapters:chartboost:2.3.0'
implementation 'com.chartboost:chartboost-sdk:8.2.0'
implementation 'com.google.android.gms:play-services-base:17.5.0'
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'

// UnityAds
implementation 'com.openmediation.adapters:unity:2.3.0'
implementation 'com.unity3d.ads:unity-ads:3.7.1'

// Mintegral (Support S2S Bidding)
// Mintegral NativeAd only support Custom Rendering
implementation 'com.openmediation.adapters:mintegral:2.6.0@aar'
implementation 'com.mbridge.msdk.oversea:reward:15.8.01'
implementation 'com.mbridge.msdk.oversea:interstitialvideo:15.8.01'
implementation 'com.mbridge.msdk.oversea:mbbanner:15.8.01'
implementation 'com.mbridge.msdk.oversea:mbsplash:15.8.01'
implementation 'com.mbridge.msdk.oversea:mbnative:15.8.01'
// for using bidding
implementation 'com.mbridge.msdk.oversea:mbbid:15.8.01'

// Pangle
implementation 'com.openmediation.adapters:tiktok:2.3.1'
implementation 'com.pangle.global:ads-sdk:3.5.1.0'
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'

// ironSource
implementation 'com.openmediation.adapters:ironsource:2.3.0'
implementation 'com.ironsource.sdk:mediationsdk:7.1.5.1'
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.google.android.gms:play-services-basement:17.5.0'

// Chartboost Mediation (Support C2S Bidding)
implementation 'com.openmediation.adapters:helium:2.3.0'
implementation 'com.chartboost:helium:2.2.1'
implementation 'org.greenrobot:eventbus:3.2.0'
implementation 'com.google.android.gms:play-services-base:17.5.0'
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'

// Ogury
implementation 'com.openmediation.adapters:ogury:2.3.0'
implementation 'co.ogury:ogury-sdk:5.0.9'

// PubNative (Support C2S Bidding)
implementation 'com.openmediation.adapters:pubnative:2.3.0'
implementation 'net.pubnative:hybid.sdk:2.4.7'

// Admost
implementation 'com.openmediation.adapters:admost:2.5.0'
implementation 'com.admost.sdk:amr:2.7.0'
implementation 'com.android.volley:volley:1.2.1'
implementation 'com.admost.sdk:facebook-adapter:6.12.0.a34'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.annotation:annotation:1.2.0'
implementation 'com.google.android.gms:play-services-base:18.1.0'
implementation 'com.facebook.android:audience-network-sdk:6.12.0'

// Inmobi
implementation 'com.openmediation.adapters:inmobi:2.5.2'
implementation 'com.inmobi.monetization:inmobi-ads:10.1.1'
implementation 'androidx.browser:browser:1.3.0'

// ReklamUp
implementation 'com.openmediation.adapters:gam_reklamup:2.6.0'
implementation 'com.google.android.gms:play-services-ads:21.4.0'

 

手动下载集成

OpenMediation SDK同时提供了手动集成方式,下表中列举了支持的第三方平台、广告类型和SDK的版本以及SDK和adapter的下载方式与链接,您可以按需要进行下载和集成。

Platforms Supported SDK Version Banner Interstitial Native Reward Video Splash SDK Download Adapter Download
AdTiming 6.9.1  ✔️  ✔️  ✔️  ✔️   Maven Configuration Download
AdMob 20.1.0  ✔️  ✔️  ✔️  ✔️  ✔️ Maven Configuration Download
Facebook 6.4.0  ✔️  ✔️  ✔️  ✔️   Maven Configuration Download
UnityAds 3.7.1  ✔️  ✔️    ✔️   Maven Configuration Download
AppLovin 10.2.1  ✔️  ✔️    ✔️   Maven Configuration Download
AdColony 4.5.0   ✔️    ✔️   Maven Configuration Download
Vungle 6.9.1  ✔️  ✔️    ✔️  ✔️ Maven Configuration Download
Tapjoy 12.8.0    ✔️    ✔️   Maven Configuration Download
Chartboost 8.2.0    ✔️    ✔️   Maven Configuration Download
Mintegral 15.5.11  ✔️   ✔️ ✔️(Custom Rendering)  ✔️  ✔️ Maven Configuration Download
Pangle 3.5.1.0  ✔️  ✔️  ✔️  ✔️  ✔️ Maven Configuration Download
ironSource 7.1.5.1  ✔️  ✔️    ✔️   Maven Configuration Download
Helium 2.2.1    ✔️    ✔️   Maven Configuration Download
Ogury 5.0.9    ✔️    ✔️   Maven Configuration Download
PubNative 2.4.7  ✔️  ✔️  ✔️  ✔️   Maven Configuration Download
Admost 2.7.0  ✔️  ✔️  ✔️  ✔️   Maven Configuration Download
InMobi 10.1.1  ✔️  ✔️    ✔️   Maven Configuration Download
ReklamUp 21.4.0  ✔️  ✔️  ✔️  ✔️ ✔️ Maven Configuration Download
 
 

针对聚合平台的额外配置

1. AdMob

  1. 更新Android Manifest.xml
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="admob_app_id" />
  1. 仅针对使用Proguard

如果您将 ProGuard 与 AdMob 适配器一起使用,则必须将以下代码添加到 ProGuard 配置中

-keep public class com.google.android.gms.** {
 public *;
}
-keep public class com.google.ads.** {
 public *;
}

 

2. Facebook

要与 Facebook Android SDK 集成,只需按照 Facebook 的说明通过 gradle 添加Facebook SDK(Facebook Android SDK文档)。

另外,根据 Facebook 要求在 Android 9 及以上版本需要开发者在其网络安全配置文件中添加以下内容:

<?xml version="1.0" encoding="utf-8"?>
  <network-security-config>
      <domain-config cleartextTrafficPermitted="true">
          <domain includeSubdomains="true">127.0.0.1</domain>
      </domain-config>
 </network-security-config>

并更新 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest...>
<application android:networkSecurityConfig="@xml/network_security_config">
...
</application>
</manifest>

有关 Facebook 网络安全配置的更多信息,请检查 网络安全配置

仅针对使用 Proguard

如果您将 ProGuard 与 Facebook适配器一起使用,则必须将以下代码添加到 ProGuard 配置中 (Android Studio: proguard-rules.pro or Eclipse: proguard-project.txt):

-keep class com.facebook.ads.** { *; }

 

3. UnityAds

仅针对使用 Proguard

如果您将 ProGuard 与 UnityAds适配器一起使用,则必须将以下代码添加到 ProGuard 配置中 (Android Studio: proguard-rules.pro or Eclipse: proguard-project.txt):

-keepattributes SourceFile,LineNumberTable
-keepattributes JavascriptInterface
-keep class android.webkit.JavascriptInterface {
    *;
}
-keep class com.unity3d.** {
    *;
}

 

 4. AppLovin

  1. 更新Android Manifest.xml
    <meta-data
    android:name="applovin.sdk.key"
    android:value="YOUR_SDK_KEY_HERE" />
  2. 仅针对使用 Proguard

     

    如果您将 ProGuard 与AppLovin适配器一起使用,则必须将以下代码添加到 ProGuard 配置中 (Android Studio: proguard-rules.pro or Eclipse: proguard-project.txt):

    -keep class com.applovin.** { *; }
  3. 设置激励视频

将 AppLovin 适配器添加到您的内部版本后,您需要在AppLovin 后台启用激励视频功能.

  1. 'Manage Apps' 选择指定的应用
  2. 向下滚动到'Rewarded Video'部分设置下列选项
  • Frequency Capping – 不要对激励视频限制频次
  • Virtual Currency Details – 不需要设置,OpenMediation 适配器会自动设置
  • Callback Options – Client-side callbacks only
  1. 点击保存 'Save'

 

5. Vungle

1.  更新xml文件

修改Android Manifest.xml 添加permissions.

<!-- Optional permissions to enable better geo-targeting of ads (recommended) -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

2.  仅针对使用Proguard

如果您将 ProGuard 与 Vungle适配器一起使用,则必须将以下代码添加到 ProGuard 配置中 (Android Studio: proguard-rules.pro or Eclipse: proguard-project.txt):

# Vungle
-keep class com.vungle.warren.** { *; }
-dontwarn com.vungle.warren.error.VungleError$ErrorCode
    
# Moat SDK
-keep class com.moat.** { *; }
-dontwarn com.moat.**

# Okio
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

# Retrofit
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8
    
# Gson
-keepattributes Signature
-keepattributes *Annotation*
-dontwarn sun.misc.**
-keep class com.google.gson.examples.android.model.** { *; }
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
    
# Google Android Advertising ID
-keep class com.google.android.gms.internal.** { *; }
-dontwarn com.google.android.gms.ads.identifier.*

 

6. Tapjoy

仅针对使用Proguard

如果您将 ProGuard 与 Tapjoy适配器一起使用,则必须将以下代码添加到 ProGuard 配置中 (Android Studio: proguard-rules.pro or Eclipse: proguard-project.txt):

-keep class com.tapjoy.** { *; }
-keep class com.moat.** { *; }
-keepattributes JavascriptInterface
-keepattributes *Annotation*
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep class com.google.android.gms.ads.identifier.** { *; }
-dontwarn com.tapjoy.**

 

7. AdColony

仅针对使用Proguard

如果您将 ProGuard 与 AdColony适配器一起使用,则必须将以下代码添加到 ProGuard 配置中 (Android Studio: proguard-rules.pro or Eclipse: proguard-project.txt):

-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keepclassmembers class com.adcolony.sdk.ADCNative** { 
    *;
}
-dontwarn android.app.Activit

 

8. Chartboost

仅针对使用Proguard

如果您将 ProGuard 与 Chartboost适配器一起使用,则必须将以下代码添加到 ProGuard 配置中

-dontwarn com.chartboost.**.*
-keep class com.chartboost.** { *; }
-dontwarn org.greenrobot.eventbus.**.*
-keep class org.greenrobot.eventbus.** { *; }

 

9. Mintegral

1.  仅针对使用Proguard配置

如果您将 ProGuard 与 Mintegral适配器一起使用,则必须将以下代码添加到 ProGuard 配置中

-keepattributes Signature   
-keepattributes *Annotation*   
-keep class com.mbridge.** {*; }  
-keep interface com.mbridge.** {*; }  
-keep interface androidx.** { *; }
-keep class androidx.** { *; }
-keep public class * extends androidx.** { *; }
-dontwarn com.mbridge.**   
-keep class **.R$* { public static final int mbridge*; }

 

10. Pangle

1.  仅针对使用Proguard配置

如果您将 ProGuard 与 Pangle 适配器一起使用,则必须将以下代码添加到 ProGuard 配置中

-keep class com.bytedance.sdk.openadsdk.** { *; }
 

11. ironSource

仅针对使用Proguard配置

如果您将 ProGuard 与 ironSource 适配器一起使用,则必须将以下代码添加到 ProGuard 配置中

-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface {
    public *;
}
-keepclassmembers class * implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
}
-keep public class com.google.android.gms.ads.** {
   public *;
}
-keep class com.ironsource.adapters.** { *;
}
-dontwarn com.ironsource.mediationsdk.**
-dontwarn com.ironsource.adapters.**
-keepattributes JavascriptInterface
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}

 

12. Helium

1.   更新 AndroidManifest.xml文件

<!--The following permissions are optional, but recommended-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

2. 仅针对使用Proguard配置

如果您将 ProGuard 与 Helium 适配器一起使用,则必须将以下代码添加到 ProGuard 配置中

-keep class com.chartboost.** { *; }
#Proguard rules for using green robot eventbus.
#'http://greenrobot.org/eventbus/'
-keepattributes *Annotation*
-keepclassmembers class ** {
    @org.greenrobot.eventbus.Subscribe ;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    (java.lang.Throwable);
}

这篇文章有帮助吗?
2 人中有 2 人觉得有帮助

评论

0 条评论

文章评论已关闭。