Оглавление
Стимулирующая реклама (вознаграждение)
Реклама информационных потоков
Конфигурация проекта
Конфигурация 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
Создайте класс приложения для проекта и инициализируйте его в методе 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.