目次
プロジェクト構成
プロジェクトレベルの build.gradle 設定:
buildscript {
repositories {
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
maven { url 'https://developer.huawei.com/repo/' }
}
}
モジュールレベルの build.gradle 設定:
将聚合SDK的aar包放到项目libs目录中,然后在build.gradle中加入
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
権利プロフィール
Android 6.0 以降では、動的アプリケーションに関連する権限が必要です。一部の権限が不足していると、広告の読み込み、表示、収益に影響が出る可能性があります。
Manifest.permission.READ_PHONE_STATE
Manifest.permission.READ_EXTERNAL_STORAGE
Manifest.permission.WRITE_EXTERNAL_STORAGE
Manifest.permission.ACCESS_COARSE_LOCATION
SDKの初期化
プロジェクトの Application クラスを作成し、 onCreate() メソッドで初期化します。
// 声明为项目接入的广告商类型
val adProviderType = arrayOf(
AdProviderType.CSJ, // 穿山甲
AdProviderType.GDT, // 广点通(优量汇)
AdProviderType.KS, // 快手
AdProviderType.BAIDU, // 百度百青藤
AdProviderType.HUAWEI // 华为
)
//初始化SDK,appId和appKey由我们提供的代理商信息
AggAd.int(this, adProviderType, "appId", "appKey");
スプラッシュ
詳細な例については、デモのSplashActivityを参照してください。
AggSplashHelper.loadAndShow(
activity = this,
container = adContainer, //展示开屏广告的容器View
listener = object : SplashListener {
override fun onStartRequest() {
addLog("\n开屏广告开始请求")
}
override fun onLoaded() {
addLog("开屏广告加载完成")
}
override fun onClicked() {
addLog("开屏广告被点击了")
}
override fun onExposured() {
addLog("开屏广告曝光了")
}
override fun onRequestFailed(failMsg: String?) {
addLog("开屏广告请求失败了:,$failMsg")
actionHome()
}
override fun onDismissed() {
addLog("开屏广告点了跳过或者倒计时结束")
actionHome()
}
})
バナー
詳細な例については、デモのBannerActivityを参照してください。
AggBannerHelper.show(
activity = this,
container = adContainer,
listener = object : BannerListener {
override fun onStartRequest() {
addLog("\n开始请求了")
}
override fun onLoaded() {
addLog("请求到了")
}
override fun onRequestFailed(failMsg: String?) {
addLog("单个广告请求失败: $failMsg")
}
override fun onClicked() {
addLog("点击了")
}
override fun onExposured() {
addLog("曝光了")
}
override fun onClosed() {
addLog("关闭了")
}
})
メモリリークを避けるために、ページのライフサイクルの終了時に広告エンティティを破棄します。
override fun onDestroy() {
super.onDestroy()
//销毁,避免内存泄漏
adContainer?.removeAllViews()
AggBannerHelper.destroy()
}
インタースティシャル広告(インター)
詳細な例については、デモのInterActivityを参照してください。
AggInterHelper.load(
this@InterActivity,
object : InterListener {
override fun onLoaded() {
super.onLoaded()
addLog("请求到了")
}
override fun onClicked() {
super.onClicked()
addLog("点击了")
}
override fun onExposured() {
super.onExposured()
addLog("曝光了")
}
override fun onClosed() {
super.onClosed()
addLog("关闭了")
}
override fun onCached() {
super.onCached()
addLog("缓存了")
// 广告展示方法可以在任意时间和位置调用,但必须在onCached被调用后
AggInterHelper.show()
}
override fun onStartRequest() {
super.onStartRequest()
addLog("\n开始请求了")
}
override fun onRequestFailed(failMsg: String?) {
super.onRequestFailed(failMsg)
addLog("广告请求失败:$failMsg")
}
})
メモリリークを避けるために、ページのライフサイクルの終了時に広告エンティティを破棄します。
override fun onDestroy() {
super.onDestroy()
AggInterHelper.destroy()
}
インセンティブ広告(報酬)
詳細な例については、デモのRewardActivityを参照してください。
AggRewardHelper.loadAndShow(
this@RewardActivity,
"10001", // 用户唯一标识,用于奖励发放
object : RewardListener {
override fun onStartRequest() {
//在开始请求之前会回调此方法,失败切换的情况会回调多次
addLog("\n开始请求")
}
override fun onRequestFailed(failMsg: String?) {
//请求失败的回调,失败切换的情况会回调多次
addLog("请求失败: $failMsg")
}
override fun onClicked() {
//点击广告的回调
addLog("点击了")
}
override fun onShow() {
//广告展示展示的回调
addLog("展示了")
}
override fun onLoaded() {
//广告请求成功的回调,每次请求只回调一次
addLog("请求到了")
}
override fun onVideoComplete() {
//视频播放完成的回调
addLog("视频播放完成")
}
override fun onCached() {
//视频缓存完成的回调
addLog("视频已缓存")
}
override fun onRewardVerify(
userId: String,
rewardAmount: Int
) {
//激励结果验证成功的回调
addLog("激励验证,用户Id:${userId},积分:${rewardAmount}")
}
override fun onClosed() {
//广告被关闭的回调
addLog("关闭了")
}
})
メモリリークを避けるために、ページのライフサイクルの終了時に広告エンティティを破棄します。
override fun onDestroy() {
AggRewardHelper.destroy()
super.onDestroy()
}
情報フロー広告
詳細な例については、デモのNativeExpressSimpleActivity (簡単な使用) および NativeExpressRecyclerViewActivity (RecyclerView での情報フローの使用)を参照してください。
広告をロードする
AggNativeExpressHelper.load(
this@NativeExpressSimpleActivity,
1, // 一次请求的数量
object : NativeExpressListener {
override fun onStartRequest() {
addLog("开始请求:信息流广告")
}
override fun onRequestFailed(failMsg: String?) {
addLog("信息流广告请求失败")
}
override fun onLoaded(adEntityList: List<NativeExpressAdEntity>) {
if (!adEntityList.isNullOrEmpty()) {
addLog("信息流广告加载成功")
mAdEntity = adEntityList[0]
}else{
addLog("信息流广告加载成功,但广告内容为空")
}
}
override fun onLoaded() {
}
override fun onClicked() {
addLog("信息流广告点击了")
}
override fun onExposured() {
addLog("信息流广告曝光了")
}
override fun onClosed() {
addLog("信息流广告关闭了")
}
})
ディスプレイ広告
mAdEntity?.let { AggNativeExpressHelper.show(it,adContainer) }
メモリリークを避けるために広告を破棄する
mAdEntity?.let { AggNativeExpressHelper.destroyAd(it) }
注: RecyclerView リストでの複雑な使用法については、NativeExpressRecyclerViewActivity リファレンスを参照してください。