安卓接入Kwai广告源
官方文档:gKwai Network_Android SDK 接入说明 | Kwai Network_Android SDK Intergration Description - 轻雀文档
目录
一、新建一个Kotlin的安卓项目
二、环境配置
1.在应用级的build.gradle(app)导包
2、在gradle.propertie文件中新增配置
3、添加权限
三、具体使用
1.新建广告监听器
2.写一个简单的布局
3.初始化sdk 和展示广告
一、新建一个Kotlin的安卓项目
二、环境配置
1.在应用级的build.gradle(app)导包
//下面这两个包在新建项目的时候会自动导入
// implementation(libs.androidx.appcompat)
// implementation(libs.material)implementation("io.github.kwainetwork:adImpl:1.2.19")implementation("io.github.kwainetwork:adApi:1.2.19")implementation("androidx.media3:media3-exoplayer:1.0.0-alpha01")implementation("androidx.annotation:annotation:1.2.0")implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
2、在gradle.propertie文件中新增配置
主要是要使用AndroidX环境
## Android 插件会使用对应的 AndroidX 库而非支持库。| The Android plugin will use the corresponding AndroidX repository instead of the support repository.
android.useAndroidX=true
## Android 插件会通过重写现有第三方库的二进制文件,自动将这些库迁移为使用 AndroidX。| AndroidX。The Android plugin automatically migrates existing third-party repositories to use AndroidX by rewriting their binaries.
android.enableJetifier=true
3、添加权限
在App的AndroidManifest.xml文件中,添加如下权限
<!--联网权限-->
<uses-permission android:name="android.permission.INTERNET" />
三、具体使用
1.新建广告监听器
import android.util.Log
import com.kwai.network.sdk.constant.KwaiError
import com.kwai.network.sdk.loader.business.reward.interf.IKwaiRewardAdListener/*** 这个是激励广告行为的回调 | This is an reward ad behavior callback */
class RewardAdListener : IKwaiRewardAdListener {private val TAG = "RewardAdListener"override fun onAdShow() {Log.i(TAG, "onAdShow")}override fun onAdShowFailed(error: KwaiError) {Log.i(TAG, "onAdShowFailed code = ${error.code} msg = ${error.msg}")}override fun onAdClick() {Log.i(TAG, "onAdClick")}override fun onAdPlayComplete() {Log.i(TAG, "onAdPlayComplete")}override fun onRewardEarned() {// 可以在这里,通过mKwaiRewardAd拿到广告的价格,发放奖励 | It is possible to get the price of the ads through mKwaiRewardAd to give out rewardsLog.i(TAG, "onAdEarned")}override fun onAdClose() {Log.i(TAG, "onAdClose")}
}
import android.content.Context
import android.util.Log
import android.widget.Toast
import com.kwai.network.sdk.constant.KwaiError
import com.kwai.network.sdk.loader.business.reward.data.KwaiRewardAd
import com.kwai.network.sdk.loader.common.interf.AdLoadListener/*** 这个回调,是广告加载成功或者失败的回调*/
class RewardAdLoadListener(val context: Context, val successCallBack : (kwaiRewardAd: KwaiRewardAd)-> Unit) : AdLoadListener<KwaiRewardAd> {private val TAG = "RewardAdLoadListener"override fun onAdLoadStart(trackId: String?) {Log.i(TAG, "onAdLoadStart")Toast.makeText(context, "onAdLoadStart", Toast.LENGTH_SHORT).show()}override fun onAdLoadSuccess(trackId: String?, kwaiRewardAd: KwaiRewardAd) {val msg = "onAdLoaded: ${kwaiRewardAd.price}"Log.i(TAG, msg)successCallBack.invoke(kwaiRewardAd)Toast.makeText(context, msg, Toast.LENGTH_SHORT).show()}override fun onAdLoadFailed(trackId: String?, kwaiError: KwaiError) {val msg = "onAdLoadFailed code = ${kwaiError.code} msg = ${kwaiError.msg}"Log.i(TAG, msg)Toast.makeText(context, msg, Toast.LENGTH_SHORT).show()}
}
import android.util.Log
import com.kwai.network.sdk.constant.KwaiError
import com.kwai.network.sdk.loader.business.interstitial.interf.IKwaiInterstitialAdListener/*** 插屏广告页面状态监听 | Interstitial ads page status listening*/
class InterstitialAdListener : IKwaiInterstitialAdListener {val TAG: String = "interstitial"override fun onAdShow() {Log.i(TAG, "onAdShow")}override fun onAdShowFailed(error: KwaiError) {Log.i(TAG, "onAdShowFailed code = ${error.code} msg = ${error.msg}")}override fun onAdClick() {Log.i(TAG, "onAdClick")}override fun onAdClose() {Log.i(TAG, "onAdClose")}override fun onAdPlayComplete() {Log.i(TAG, "onAdPlayComplete")}
}
import android.content.Context
import android.util.Log
import android.widget.Toast
import com.kwai.network.sdk.constant.KwaiError
import com.kwai.network.sdk.loader.business.interstitial.data.KwaiInterstitialAd
import com.kwai.network.sdk.loader.common.interf.AdLoadListener/*** 插屏广告加载监听*/
class InterstitialAdLoadListener(val context: Context , val successCallBack : (kwaiInterstitialAd : KwaiInterstitialAd)-> Unit) : AdLoadListener<KwaiInterstitialAd> {val TAG: String = "interstitial"override fun onAdLoadStart(trackId: String?) {Log.i(TAG, "onAdLoadStart")Toast.makeText(context, "onAdLoadStart", Toast.LENGTH_SHORT).show()}override fun onAdLoadSuccess(trackId: String?, kwaiInterstitialAd: KwaiInterstitialAd) {val msg = "onAdLoaded: ${kwaiInterstitialAd.price}"Log.i(TAG, msg)successCallBack.invoke(kwaiInterstitialAd)Toast.makeText(context, msg, Toast.LENGTH_SHORT).show()}override fun onAdLoadFailed(trackId: String?, kwaiError: KwaiError) {val msg = "onAdLoadFailed code = ${kwaiError.code} msg = ${kwaiError.msg}"Log.i(TAG, msg)Toast.makeText(context, msg, Toast.LENGTH_SHORT).show()}
}
2.写一个简单的布局
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingTop="20dp"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:layout_gravity="center"><Buttonandroid:id="@+id/interBt"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="插屏广告"/><Buttonandroid:id="@+id/rewardedBt"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="激励广告"/></LinearLayout></FrameLayout>
3.初始化sdk 和展示广告
将下面代码中<< >>标注的参数换成自己的
import android.app.Activity
import android.os.Bundle
import android.util.Log
import com.kwai.network.sdk.KwaiAdSDK
import com.kwai.network.sdk.api.KwaiInitCallback
import com.kwai.network.sdk.api.SdkConfig
import com.kwai.network.sdk.loader.business.interstitial.data.KwaiInterstitialAd
import com.kwai.network.sdk.loader.business.interstitial.data.KwaiInterstitialAdConfig
import com.kwai.network.sdk.loader.business.interstitial.data.KwaiInterstitialAdRequest
import com.kwai.network.sdk.loader.business.reward.data.KwaiRewardAd
import com.kwai.network.sdk.loader.business.reward.data.KwaiRewardAdConfig
import com.kwai.network.sdk.loader.business.reward.data.KwaiRewardAdRequest
import com.kwai.network.sdk.loader.common.interf.IKwaiAdLoaderclass KwaiActivity : Activity() {private var mKwaiRewardAd: KwaiRewardAd? = nullprivate var mKwaiRewardAdAdLoader: IKwaiAdLoader<KwaiRewardAdRequest?>? = nullprivate var mKwaiInterstitialAd: KwaiInterstitialAd? = nullprivate var mKwaiInterstitialAdLoader: IKwaiAdLoader<KwaiInterstitialAdRequest?>? = nullval binding by lazy { ActivityKwaiBinding.inflate(layoutInflater) }override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(binding.root)initKwaiSDK()binding.backImg.setOnClickListener {finish()}binding.interBt.setOnClickListener {//展示插屏广告if (mKwaiInterstitialAd != null && mKwaiInterstitialAd!!.isReady ){mKwaiInterstitialAd!!.show(this)}}binding.rewardedBt.setOnClickListener {//展示激励广告if (mKwaiRewardAd != null && mKwaiRewardAd!!.isReady ){mKwaiRewardAd!!.show(this)}}}fun initKwaiSDK() {val config = SdkConfig.Builder().appId("<< appid >>").token("<< token >>").setInitCallback(object : KwaiInitCallback {override fun onSuccess() {Log.d("Kwai", "kwai init success")loadRewardAd()loadInterstitialAd()}override fun onFail(code: Int, msg: String?) {Log.d("Kwai", "kwai init fail")}}).build()KwaiAdSDK.init(this, config)}//加载激励广告private fun loadRewardAd() {val loaderManager = KwaiAdSDK.getKwaiAdLoaderManager()if (loaderManager != null) {mKwaiRewardAdAdLoader = loaderManager.buildRewardAdLoader(KwaiRewardAdConfig.Builder(RewardAdLoadListener(this){mKwaiRewardAd = it}).withKwaiRewardAdListener(RewardAdListener()).build())// 开始发起请求 | Starting a requestval kwaiRewardAdRequest = KwaiRewardAdRequest("<< 激励广告id >>")mKwaiRewardAdAdLoader!!.loadAd(kwaiRewardAdRequest)}}//加载插屏广告private fun loadInterstitialAd() {val loaderManager = KwaiAdSDK.getKwaiAdLoaderManager()if (loaderManager != null) {mKwaiInterstitialAdLoader = loaderManager.buildInterstitialAdLoader(KwaiInterstitialAdConfig.Builder(InterstitialAdLoadListener(this){mKwaiInterstitialAd = it}).withKwaiInterstitialAdListener(InterstitialAdListener()).build())// 开始发起请求 | Starting a requestval kwaiInterstitialAdRequest = KwaiInterstitialAdRequest("<< 插屏广告id >>")mKwaiInterstitialAdLoader!!.loadAd(kwaiInterstitialAdRequest)}}override fun onDestroy() {super.onDestroy()if (mKwaiRewardAdAdLoader != null){mKwaiRewardAdAdLoader?.release()mKwaiRewardAdAdLoader = null}if (mKwaiInterstitialAdLoader != null){mKwaiInterstitialAdLoader?.release()mKwaiInterstitialAdLoader = null}}
}