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聚合平台支持十多个第三方广告网络,进行第三方平台的集成需要以下三个方面操作:
- 第三方广告平台操作:登录第三方网络操作界面,创建应用和对应的广告位。
- OpenMediation平台操作:更新对应广告位的聚合设置,增加该网络的实例。我们建议采用自动优化的方式。
- 应用程序代码 – 需要更新您的应用程序,加入第三方广告网络的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)
implementation 'com.openmediation.adapters:facebook:2.3.0'
implementation 'com.facebook.android:audience-network-sdk:6.4.0'
// 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 |
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
- 更新Android Manifest.xml
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="admob_app_id" />
- 仅针对使用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
- 更新Android Manifest.xml
<meta-data
android:name="applovin.sdk.key"
android:value="YOUR_SDK_KEY_HERE" /> - 仅针对使用 Proguard
如果您将 ProGuard 与AppLovin适配器一起使用,则必须将以下代码添加到 ProGuard 配置中 (Android Studio: proguard-rules.pro or Eclipse: proguard-project.txt):
-keep class com.applovin.** { *; }
- 设置激励视频
将 AppLovin 适配器添加到您的内部版本后,您需要在AppLovin 后台启用激励视频功能.
- 在'Manage Apps' 选择指定的应用
- 向下滚动到'Rewarded Video'部分设置下列选项
- Frequency Capping – 不要对激励视频限制频次
- Virtual Currency Details – 不需要设置,OpenMediation 适配器会自动设置
- Callback Options – Client-side callbacks only
- 点击保存 '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);
}
评论
文章评论已关闭。