菜单

基本流程

详细实现自定义Adapter的示例可查看:Taku Demo

1. 针对实现各个广告形式需要继承的类说明

开发者需要根据自身需求继承相应广告形式的类(参照下表)并重写所有抽象方法,在相应的方法中调用广告平台的API,并通过类成员变量mLoadListener回调加载的结果,通过类成员变量mImpressionListener回调广告展示、点击、关闭等事件结果

广告形式类名
激励视频com.anythink.rewardvideo.unitgroup.api.CustomRewardVideoAdapter
插屏广告com.anythink.interstitial.unitgroup.api.CustomInterstitialAdapter
横幅广告com.anythink.banner.unitgroup.api.CustomBannerAdapter
原生广告com.anythink.nativead.unitgroup.api.CustomNativeAdapter
开屏广告com.anythink.splash.unitgroup.api.CustomSplashAdapter

请查看如何在Taku后台创建自定义广告平台

如果需要使用自定义Adapter实现Bidding功能,请查看: 自定义高级配置

2. 公共抽象方法的实现以及广告加载事件的回调

2.1 公共的抽象方法实现

抽象方法参数说明返回值作用是否必须实现说明
loadCustomNetworkAdContext context:上下文 Map serverExtra: 服务端配置的自定义参数 Map localExtra: 本次加载传入自定义参数void实现自定义广告平台的广告的加载逻辑context参数
对应传入ATRewardVideoAd、ATInterstitial、ATNative、ATBannerView、ATSplashAd的context值。对于开屏广告,context类型为Activity;对于激励视频、插屏、原生(信息流)广告、横幅广告,context类型取决于调用传入ATRewardVideoAd、ATInterstitial、ATNative、ATBannerView的Context
serverExtra参数
Taku后台配置的Json字符串中的key-value都可通过serverExtra参数获取到
自定义key-value默认会透传填写的代码位id(key=slot_id)
localExtra参数:通过ATRewardVideoAd#setLocalExtra()、ATInterstitial#setLocalExtra()、ATNative#setLocalExtra()、ATBannerView#setLocalExtra()等方法传入的key-value都可通过locaExtra参数获取到
destory-void实现自定义广告平台的销毁逻辑Taku SDK内部会在合适的时机调用此方法销毁广告平台的资源
getNetworkPlacementId-void提供本次加载自定义广告平台的广告位id用于Taku SDK回调方法中的ATAdInfo对象及内部相关逻辑等
getNetworkSDKVersion-void提供本次加载自定义广告平台的SDK版本用于Taku SDK回调方法中的ATAdInfo对象及内部相关逻辑等
setUserDataConsentContext context: 上下文 boolean isConsent: 用户是否授权 isEUTraffic: 是否是欧盟地区boolean提供用户授权情况以及是否欧盟的信息给自定义广告平台实现GDPR的设置功能。(如果有实现则返回true,Taku会用于统计记录)(发布欧盟的地区的建议实现)-
getNetworkInfoMap-Map提供自定义广告的自定义信息在此方法中,可以创建Map,并将一些额外的信息添加到此Map中返回,开发者最终可根据Taku SDK各回调方法中的ATAdInfo对象,通过调用ATAdInfo.getExtInfoMap()方法获取到这些额外信息

2.2 公共广告加载事件的回调

使用Adapter里的成员变量ATCustomLoadListener实现广告加载结果的回调

回调方法参数说明说明
onAdCacheLoadedBaseAd... baseAds: 主要是提供给原生广告回调广告对象的,其他广告形式不需要加入参数回调广告内容以及素材加载成功时,调用此方法通知Taku SDK,最终Taku SDK会回调加载成功的方法通知开发者
onAdLoadErrorString errorCode: 错误码信息 String errorMsg: 详细错误信息广告加载失败时,调用此方法通知Taku SDK,最终Taku SDK会回调加载失败的方法通知开发者 (errorCode及errorMsg会封装到Taku SDK回调方法中的AdError对象中)

注意:使用成员变量ATCustomLoadListener时候需要做判空处理,因为聚合SDK内部有可能会回收该Listener对象

3. 自定义广告平台Adapter的使用以及注意事项

3.1 使用流程

   •开发者只需要继承相关类并重写相关方法,自定义Adapter中的所有方法都不需要开发者进行调用,当Taku后台的广告位下配置好自定义广告平台的广告源后,SDK内部会在合适的时机调用自定义Adapter中的相关方法。

   •开发者调用Taku SDK的load API加载广告,Taku SDK会根据后台配置的类名通过反射创建出自定义Adapter的类,并调用loadCustomNetworkAd()进行广告的请求,自定义广告平台的广告加载结果需要通过调用ATCustomLoadListener的方法(onAdCacheLoaded、onAdLoadError)通知Taku SDK,最终Taku SDK会通过Taku的回调方法通知开发者

   •自定义广告平台加载广告时所需要的参数(AppID、AppKey、PlacementID等)需以Json字符串的形式配置在Taku后台的该广告平台的广告源中例如:

{
    "app_id":"2004533529842888",
    "unit_id":"VID_HD_16_9_15S_APP_INSTALL#2004533529842888_2110107055952201"
}

Taku SDK拉取到后台策略时,会将此Json字符串转化为Map,传给loadCustomNetworkAd(Context context, Map

   •开发者调用Taku SDK的isAdReady API时,会调用到自定义Adapter的isAdReady()方法

   •开发者调用Taku SDK的show API时,会调用到自定义Adapter的isAdReady()、show(Activity activity)方法

3.2 注意事项

   •Taku后台添加自定义广告平台时,Adapter类名需配置全路径类名(包名+类名),否则加载广告时Adapter类将不能正常被创建

   •因为SDK内部是通过反射new出Adapter的类,所以在构建release包时,必须确保Adapter类不能被混淆。混淆规则示例如下:

# 将  改为开发者自己的Adapter类名 
-keep class  { *;} 
-keepclassmembers public class  { 
    public *; 
}

   •遇到任何问题,可查阅 如何测试广告 寻找解决方案


上一个
自定义广告平台
下一个
激励视频
最近修改: 2025-05-30Powered by