安卓
Adkit for ADOP: 安卓¶
安装¶
- 下载并解压最新版本的 AdKit 文件。
- 将 AdKit.gradle 文件复制到项目应用的路径。
- 将以下内容添加到项目应用的 build.gradle 文件中:
设置¶
添加格式为 ca-app-pub-XXXXX~YYYYY
的 AdMobId 和 ADOP APP_KEY 到在 Android 项目中生成的 AndroidManifest.xml 文件。ADOP APP_KEY 可以在登录 ADOP Insight 后的账户管理 > 我的信息 > 详细信息中找到。
<application>
…
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-XXXXX~YYYYY"/>
<meta-data
android:name="com.google.android.gms.ads.AD_MANAGER_APP"
android:value="true"/>
<meta-data
android:name="com.adop.sdk.APP_KEY"
android:value="6933aab2-7f78-11ed-a117-XXXXXXXXX"/>
…
</application>
如何使用¶
ADOP Proguard 设置¶
如果您正在使用 Proguard,请添加以下 ADOP Proguard 设置。
-keep class com.adop.sdk.** { *; }
-keep class ad.helper.openbidding.** { *; }
-keep class com.adop.sdk.adapter.**{ *; }
-keepnames class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient ;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keepclassmembers class * {
@android.webkit.JavascriptInterface ;
}
# Pangle
-keep class com.bytedance.sdk.** { *; }
-keep class com.bykv.vk.openvk.component.video.api.** { *; }
# Tapjoy
-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.**
在ADOP中测试广告密钥¶
使用ADOP发布的测试广告密钥是必需的。
var bannerZoneId = "944fe870-fa3a-4d1b-9cc2-38e50b2aed43"
var interstitialZoneID = "e9acd7fc-a962-40e4-aaad-9feab1b4f821"
var rewardVideoZoneId = "7d9a2c9e-5755-4022-85f1-6d4fc79e4418"
var appOpenAdZoneId = "33906f96-dae8-4790-8ce4-d1f287ba00b2"
初始化 AdKit¶
执行 AdKit 初始化。
在执行重置时,如果您位于欧洲和英国(EEA和英国)地区,将自动显示GDPR同意弹出窗口。在其他地区,重置会立即执行。
- 如果您的游戏面向欧洲经济区和英国地区,请确保您的GDPR同意弹出窗口按照GDPR消息指南进行设置。
import com.com2us.hive.adkit.*
// Commercial
AdKit.InitializeWithShowGDPRConsent(this.activity, false, null)
// GDPR EEA test mode
AdKit.InitializeWithShowGDPRConsent(this.activity, true, gdprTestDeviceId)
在发生分析日志时,可以包含用户的附加信息,并以JSONObject类型传递数据。
奖励视频类型¶
奖励视频类型广告会奖励观看视频一段时间的用户,并且一次只能加载一个广告。
// RewardVideo Instance Create
var rewardVideo:RewardVideo? = null
rewardVideo = RewardVideo.Initialize(this.activity, rewardVideoZoneId, object : EventHandlers() {
override fun onAdLoaded() {}
override fun onAdOpening() {}
override fun onAdClosed() {}
override fun onAdFailed() {}
override fun onAdClick() {}
override fun onAdReward() {}
})
// RewardVideo Load
rewardVideo?.LoadAd("NativeRewardVideo-Load")
// RewardVideo Show
rewardVideo?.Show("NativeRewardVideo-Show")
此外,adPlacementInfo
可以作为字符串传递,该字符串在成功 Load
或通过 Show
展示广告时设置。
插屏类型¶
插屏类型广告使用全屏覆盖游戏界面。
// Interstitial Instance Create
var interstitial:Interstitial? = null
interstitial = Interstitial.Initialize(this.activity, interstitialZoneId, object : EventHandlers() {
override fun onAdLoaded() {}
override fun onAdOpening() {}
override fun onAdClosed() {}
override fun onAdFailed() {}
override fun onAdClick() {}
})
// Interstitial Load
interstitial?.LoadAd("NativeInterstitial-Load")
// Interstitial Show
interstitial?.Show("NativeInterstitial-Show")
此外,adPlacementInfo
可以作为字符串传递,该字符串在成功Load
或通过Show
展示广告时设置。
自适应横幅类型¶
自适应横幅类型广告是一种占据屏幕位置的滚动横幅。您可以使用 BannerPosition 或 yPos 值来调整横幅位置。 如果您提供 yPos 来调整横幅位置,横幅将对齐到屏幕底部,然后将按您指定的 yPos 值向上移动。
// the example codes using the BannerPosition
var adaptiveBanner: AdaptiveBanner? = null
// Create AdaptiveBanner Instance at Top of View
adaptiveBanner = AdaptiveBanner.Initialize(this.activity, bannerZoneId, AdaptiveBanner.BannerPosition.Top, object : EventHandlers() {
override fun onAdLoaded() {}
override fun onAdOpening() {}
override fun onAdClosed() {}
override fun onAdFailed() {}
override fun onAdClick() {}
})
// Create AdaptiveBanner Instance at Bottom of View
adaptiveBanner = AdaptiveBanner.Initialize(this.activity, bannerZoneId, AdaptiveBanner.BannerPosition.Bottom, object : EventHandlers() {
override fun onAdLoaded() {}
override fun onAdOpening() {}
override fun onAdClosed() {}
override fun onAdFailed() {}
override fun onAdClick() {}
})
// AdaptiveBanner Load & Automatic show
adaptiveBanner?.LoadAd("NativeAdaptiveBanner-Load")
// Destroy AdaptiveBanner
adaptiveBanner?.Destroy()
// This example shows adjusting the banner position with specifiying the yPos value.
var adaptiveBanner: AdaptiveBanner? = null
adaptiveBanner = AdaptiveBanner.Initialize(this.activity, bannerZoneId, yPos, object : EventHandlers() {
override fun onAdLoaded() {}
override fun onAdOpening() {}
override fun onAdClosed() {}
override fun onAdFailed() {}
override fun onAdClick() {}
})
// Banner Load
adaptiveBanner?.LoadAd("NativeAdaptiveBanner-Load")
// Banner Show
adaptiveBanner?.Show("NativeAdaptiveBanner-Show")
// Banner Hide
adaptiveBanner?.Hide()
// The position is adjusted following the yPos value.
adaptiveBanner?.setPosition(yPos)
此外,adPlacementInfo
可以作为字符串传递,该字符串在成功Load
或通过Show
展示广告时设置。
AppOpen 类型广告¶
当应用状态从后台切换到前台时,会显示一种广告类型。
// Create AppOpenAd Instance
var appOpenAd: AppOpenAd? = null
appOpenAd = AppOpenAd.Initialize(this.activity, appOpenAdZoneId, object : EventHandlers() {
override fun onAdLoaded() {}
override fun onAdOpening() {}
override fun onAdClosed() {}
override fun onAdFailed() {}
})
// Automatically load & show AppOpenAd when the app comes to the foreground
appOpenAd?.LoadAd("NativeAppOpen-Load")
// Destroy AppOpenAd
appOpenAd?.Destroy()
测试广告¶
在开发过程中,当测试广告被点击时,广告主不被收费是很重要的。如果您在测试模式之外点击广告过多,将被视为无效操作。因此,请注意不要成为被举报的目标账户。请参考Google Developers以使用测试广告。
卸载¶
将安装期间设置的文件恢复到其原始状态。