集約広告 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の初期化

プロジェクトの 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 リファレンスを参照してください。

おすすめ

転載: blog.csdn.net/u010926168/article/details/121290266