Агрегированная документация по рекламному SDK (Kotlin)

Оглавление

Конфигурация проекта

Профиль прав

Инициализировать SDK

Всплеск

Баннер

Межстраничная реклама (Интер)

Стимулирующая реклама (вознаграждение)

Реклама информационных потоков


Конфигурация проекта

Конфигурация 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.

Supongo que te gusta

Origin blog.csdn.net/u010926168/article/details/121290266
Recomendado
Clasificación