当前位置: 首页 > news >正文

安卓接入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}}
}
http://www.dtcms.com/a/411088.html

相关文章:

  • 专业建站lhznkj怎么做下载网站吗
  • 机器学习/深度学习名词理解
  • 无人机散热系统技术要点与难点
  • 使用Weston(Wayland 显示服务器的参考实现)小记
  • 可以制作网站的软件是什么房地产行业网站建设报价方案
  • 潍坊企业免费建站网站建设 应酷
  • Django + Vue3 前后端分离技术实现自动化测试平台从零到有系列 <第三章> 之 基础架构搭建
  • 深入解析:什么是矩阵系统源码搭建定制化开发,支持OEM贴牌
  • Nginx高并发原理与Tomcat实战全解析:从IO模型到HTTPS配置与故障排查(第七周)
  • 网站推广一般在哪个网做百度快照优化推广
  • STM32 外设驱动模块:Tracking 循迹模块
  • 新版发布!“零讯”微信小程序版本更新
  • 广西建设厅微信网站网站正在建设中的
  • 模板板网站wordpress前台登录插件
  • 河北网站制作报价网站优化公司服务
  • 人脸特征可视化进阶:用 dlib+OpenCV 绘制面部轮廓与器官凸包
  • display ip routing-table故障判断及题目
  • 晨控CK-GW04S与欧姆龙PLC配置Ethernet/IP通讯连接手册
  • 动态IP的特点
  • 团购网站推广怎么做微信公众号怎么创建要多少钱
  • CMDLET使用教程详解
  • 短视频流量|基于SprinBoot+vue的短视频流量数据分析系统(源码+数据库+文档)
  • 安装测试用例
  • ubuntu 网络监听工具及使用方法详解
  • 微信公众号网站自己做导航条WordPress在手机能更新
  • STM32 单片机开发 - FreeRTOS 实时操作系统
  • 网站如何续费深圳网上创建公司
  • UNet改进(41):基于PyTorch的轻量量化UNet
  • [vscode] Tab键无法缩进
  • 网站vr用什么做网站推广的技术有哪些