安卓接入Bigo广告源
官方文档:BIGO Ads 开发者管理平台
目录
一、新建一个Kotlin的安卓项目
二、环境配置
三、具体使用
1.新建广告监听器
2.写一个简单的布局
3.初始化sdk 和展示广告
一、新建一个Kotlin的安卓项目
二、环境配置
1.在应用级的build.gradle(app)导包
implementation 'com.bigossp:bigo-ads:5.5.1'
2.允许http明文协议(可选)
在res/xml 中新建network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config><domain-config cleartextTrafficPermitted="true"><domain includeSubdomains="true">127.0.0.1</domain></domain-config></network-security-config>
在AndroidManifast.xml 中添加属性
<application.....android:networkSecurityConfig="@xml/network_security_config">
三、具体使用
1.新建广告监听器
open class MyAdInteractionListener : AdInteractionListener {override fun onAdError(p0: AdError) {Log.d("Bigo" , "广告错误")}override fun onAdImpression() {Log.d("Bigo" , "广告已成功展示在设备屏幕上")}override fun onAdClicked() {Log.d("Bigo" , "广告点击")}override fun onAdOpened() {Log.d("Bigo" , "广告已打开")}override fun onAdClosed() {Log.d("Bigo" , "广告已关闭")}}
//广告加载回调
class MyAdLoadListener<T : Ad>(val type : String ,val successCallBack : (ad : T)-> Unit) : AdLoadListener<T> {override fun onError(error: AdError) {Log.d("Bigo" , "加载$type 广告失败 error: ${error.code} ${error.message}" )}override fun onAdLoaded(ad: T) {Log.d("Bigo" , "加载$type 广告成功")successCallBack.invoke(ad)}
}
class MyRewardAdInteractionListener() : MyAdInteractionListener(),RewardAdInteractionListener {override fun onAdRewarded() {Log.d("Bigo" , "激励视频已播放完成,可下发奖励。")}
}
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 sg.bigo.ads.BigoAdSdk
import sg.bigo.ads.BigoAdSdk.InitListener
import sg.bigo.ads.api.AdConfig
import sg.bigo.ads.api.InterstitialAd
import sg.bigo.ads.api.InterstitialAdLoader
import sg.bigo.ads.api.InterstitialAdRequest
import sg.bigo.ads.api.RewardVideoAd
import sg.bigo.ads.api.RewardVideoAdLoader
import sg.bigo.ads.api.RewardVideoAdRequestclass BigoActivity : Activity() {val binding by lazy { ActivityBigoBinding.inflate(layoutInflater) }var mInterstitialAd: InterstitialAd? = nullvar mRewardVideoAd: RewardVideoAd? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(binding.root)initBigoSDK()binding.backImg.setOnClickListener {finish()}binding.interBt.setOnClickListener {//展示插屏广告if (mInterstitialAd != null && !mInterstitialAd!!.isExpired) {mInterstitialAd!!.setAdInteractionListener(MyAdInteractionListener())mInterstitialAd!!.show(this)}}binding.rewardedBt.setOnClickListener {//展示激励广告if (mRewardVideoAd != null && !mRewardVideoAd!!.isExpired) {mRewardVideoAd!!.setAdInteractionListener(MyRewardAdInteractionListener())mRewardVideoAd!!.show(this)}}}fun initBigoSDK() {val config = AdConfig.Builder().setAppId("<<app id>>").build()BigoAdSdk.initialize(this, config, object : InitListener {override fun onInitialized() {Log.d("Bigo", "Bigo sdk 初始化成功")loadInterstitialAd()loadRewardAd()}})}//加载激励广告private fun loadRewardAd() {val rewardVideoAdAdRequest = RewardVideoAdRequest.Builder().withSlotId("<< 激励广告id >>").build()val rewardVideoAdAdLoader: RewardVideoAdLoader =RewardVideoAdLoader.Builder().withAdLoadListener(MyAdLoadListener<RewardVideoAd>("激励") {mRewardVideoAd = it}).build()rewardVideoAdAdLoader.loadAd(rewardVideoAdAdRequest)}//加载插屏广告private fun loadInterstitialAd() {val interstitialAdRequest = InterstitialAdRequest.Builder().withSlotId("<<插屏广告id>>").build()val interstitialAdLoader: InterstitialAdLoader =InterstitialAdLoader.Builder().withAdLoadListener(MyAdLoadListener("插屏") {mInterstitialAd = it}).build()interstitialAdLoader.loadAd(interstitialAdRequest)}override fun onDestroy() {super.onDestroy()if (mInterstitialAd != null) {mInterstitialAd?.destroy()mInterstitialAd = null}if (mRewardVideoAd != null) {mRewardVideoAd?.destroy()mRewardVideoAd = null}}}