三、API说明
3.1 TAdRequestBody
| 方法名称 | 方法介绍 |
|---|---|
| TAdRequestBody.AdRequestBodyBuild().build() | 通过该方法创建TAdRequestBody对象 |
3.2 TAdRequestBody.AdRequestBodyBuild
| 方法名称 | 方法介绍 |
|---|---|
| setAdListener(TAdListener adListener) | 广告请求过程中涉及的回调 |
3.3 TAdListener
| 方法名称 | 方法介绍 |
|---|---|
| onLoad() | 广告数据加载完成还未展示,此回调方法适用于所有广告位 |
| onError(TAdErrorCode errorCode) | 请求过程中发生错误的回调,此回调方法适用于所有广告位 |
| onShow(int source) | Splash、Interstitial、Banner、Reward等类型广告展示成功回调 |
| onShowError(TAdErrorCode errorCode) | 广告展示失败回调,此回调方法适用于所有广告位 |
| onClicked(int source) | Splash、Interstitial、Banner、Reward等类型广告点击回调 |
| onClosed(int source) | 广告关闭回调,并不是所有广告都会唤起此方法 |
| onRewarded() | 激励广告播放完毕 |
| onNativeFeedShow(int source, @Nullable TAdNativeInfo nativeInfo) | Native以及Icon类广告展示回调 |
| onNativeFeedClicked(int source, @Nullable TAdNativeInfo nativeInfo) | Native以及Icon类广告点击回调 |
3.4 TBannerView
| 方法名称 | 方法介绍 |
|---|---|
| TBannerView(Context context) | 构造方法 |
| loadAd() | 开始请求广告,在设置的等待时间内返回最优广告 |
| setAdSize() | 设置banner广告大小 |
| setCustomSizeForYandexAndLiftoff(int widthDp, int heightDp) | 广告源Liftoff (Vungle)、Yandex 支持设置banner广告的宽高,单位:dp。具体请参考示例 |
| setAdUnitId() | 设置广告位id |
| destroy() | 释放广告资源 |
| setRequestBody(TAdRequestBody requestBody) | 设置广告请求步骤监听,方法请参照TAdRequestBody类 |
| enterScene(String sceneId, int adCount) | 在到达广告场景时可以优先调用,返回一个String类型的sceneToken,在展示时传入。我们会根据此方法来更好的展示广告 |
| setContainVulgarContent(boolean isContainVulgarContent) | 设置宿主当前需要展示广告的场景是否含有敏感内容,请求广告时会过滤不能在该场景展示的广告 |
| setCloseDirectlyWithoutJumping(boolean isCloseDirectly) | 广告源Hisavana SSP Banner广告点击关闭按钮直接关闭不跳转 |
3.5 TInterstitialAd
| 方法名称 | 方法介绍 |
|---|---|
| TInterstitialAd(Context mContext, String slotId) | 构造方法 |
| setRequestBody(TAdRequestBody tAdRequestBody) | 设置广告请求体,方法请参照TAdRequestBody类 |
| loadAd() | 开始请求广告,在设置的等待时间内返回最优广告 |
| show(Activity activity, String sceneToken) | 展示广告 |
| destroy() | 释放广告资源 |
| hasAd() | 判断当前是否有可用广告 |
| enterScene(String sceneId, int adCount) | 在到达广告场景时可以优先调用,返回一个String类型的sceneToken,在展示时传入。我们会根据此方法来更好的展示广告 |
| setContainVulgarContent(boolean isContainVulgarContent) | 设置宿主当前需要展示广告的场景是否含有敏感内容,请求广告时会过滤不能在该场景展示的广告 |
3.6 TSplashAd
| 方法名称 | 方法介绍 |
|---|---|
| TSplashAd(Context mContext, String slotId) | 构造方法 |
| setRequestBody(TAdRequestBody tAdRequestBody) | 设置广告请求体,方法请参照TAdRequestBody类 |
| loadAd() | 开始请求广告,在设置的等待时间内返回最优广告 |
| showAd(TSplashView tSplashView) | 展示广告 |
| showAd(TSplashView tSplashView, String sceneToken) | 展示广告(带场景标记) |
| showAd(TSplashView tSplashView, View logoLayout) | 展示广告(带Logo布局) |
| showAd(TSplashView tSplashView, View logoLayout, String sceneToken) | 展示广告(带Logo布局和场景标记) |
| destroy() | 释放广告资源 |
| hasAd() | 判断当前是否有可用广告 |
| enterScene(String sceneId, int adCount) | 在到达广告场景时可以优先调用,返回一个String类型的sceneToken,在展示时传入。我们会根据此方法来更好的展示广告 |
| setContainVulgarContent(boolean isContainVulgarContent) | 设置宿主当前需要展示广告的场景是否含有敏感内容,请求广告时会过滤不能在该场景展示的广告 |
| setOnlySourceAdx(String appId, boolean athenaDebug) | 广告源Hisavana SSP 表示快速填充展示开屏广告,需配合代码位配置填充时长fillTimeoutDuration=0ms使用 |
| setLogoLayoutHeightRatio(Float logoLayoutHeightRatio) | 广告源Hisavana SSP、Mintegral 自行设定logo高度比,范围0.1~0.2,默认0.2 |
3.7 TNativeAd
| 方法名称 | 方法介绍 |
|---|---|
| TNativeAd(Context mContext, String slotId) | 构造方法 |
| setRequestBody(TAdRequestBody tAdRequestBody) | 设置广告请求体,方法请参照TAdRequestBody类 |
| loadAd() | 开始请求广告在设置的等待时间内返回最优广告 |
| bindNativeView(TAdNativeView nativeView, TAdNativeInfo nativeInfo, ViewBinder b, String sceneToken) | 注册view的交互事件,建议使用ViewBinder方式,不建议直接使用该方式。sceneToken为enterScene()返回值,不传时使用无sceneToken重载 |
| bindNativeView(TAdNativeView nativeView, TAdNativeInfo nativeInfo, ViewBinder b) | 注册view的交互事件(不带场景标记),其它同上 |
| destroy() | 释放广告资源 |
| hasAd() | 判断当前是否有可用广告 |
| enterScene(String sceneId, int adCount) | 在到达广告场景时可以优先调用,返回一个String类型的sceneToken,在展示时传入。我们会根据此方法来更好的展示广告 |
| getNativeAdInfo() | 获取Native广告,返回一个List |
| getNativeInfoSize() | 获取当前可用的广告的数量 |
| setAdmobMediaAspectRatio(int admobMediaAspectRatio) | admob原生广告素材比例设置: NATIVE_MEDIA_ASPECT_RATIO_UNKNOWN = 0;(默认值) NATIVE_MEDIA_ASPECT_RATIO_ANY = 1;(任意比例) NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE = 2;(横向比例) NATIVE_MEDIA_ASPECT_RATIO_PORTRAIT = 3;(纵向比例) NATIVE_MEDIA_ASPECT_RATIO_SQUARE = 4;(方形比例) |
| setContainVulgarContent(boolean isContainVulgarContent) | 设置宿主当前需要展示广告的场景是否含有敏感内容,请求广告时会过滤不能在该场景展示的广告 |
3.8 TAdNativeInfo
| 方法名称 | 方法介绍 |
|---|---|
| getTitle() | 获取标题 |
| getDescription() | 获取广告描述 |
| getAdCallToAction() | 获取按钮文案 |
| getPackageName() | 获取下载类广告的包名 |
| getPullNewestLive() | 0 非拉新拉活(普通广告),1 代表拉新和拉活,2拉新,3拉活,4:H5游戏 |
| isMatchVulgarBrand() | 判断当前广告是否匹配上了过滤规则。true:不建议在含有敏感内容场景展示,false:可以展示 |
| getAdFormat() | 返回值:2为原生任务类型广告,非2为普通类型广告 |
| destroyAd | 释放内存(每一个已经展示过的TAdNativeInfo在退出页面需要调用该方法) |
3.9 TAdNativeView
| 方法名称 | 方法介绍 |
|---|---|
| TAdNativeView(Context context) | 构造方法 |
| release() | 释放内存 |
3.10 ViewBinder
| 方法名称 | 方法介绍 |
|---|---|
| titleId(int titleId) | 标题 |
| descriptionId(int bodyId) | 描述 |
| iconId(int iconId) | 图标 |
| mediaId(int mediaId) | 主图 |
| sponsoredId(int sponsoredId) | 年龄限制标签 |
| ratingId(int ratingId) | 评分 |
| priceId(int priceId) | 价格 |
| sourceSizeId(int sourceSizeId) | 下载包的大小,字段格式为 x.xMB 或 x.xGB |
| adChoicesView(int adChoicesView) | 广告标识 |
| adCloseView(int adCloseView) | 关闭按钮 |
| storeMarkView(int storeMarkView) | 应用商店图标 |
| domainView(int domainId) | 域名 |
| feedbackView(int feedbackId) | 菜单图标 |
| adBadgeView(int adBadgeView) | 广告AD角标,推荐适配RU(俄罗斯)广告合规的媒体 |
| adDisclaimerView(int adDisclaimerView) | 广告免责声明,推荐适配RU(俄罗斯)广告合规的媒体 |
| callToActionId(int callToActionId) | 绑定 CallToAction View |
| actionIds(Integer... ids) | 给views设置注册点击事件 |
| build() | 构建ViewBinder |
| contextMode(NativeContextMode mode) | 设置Native广告使用场景:NativeContextMode.LIST(RecyclerView等列表场景)、NativeContextMode.NORMAL(其它场景,默认值) |
| ViewBinder(ViewBinder.Builder builder) | 私有构造方法,通过ViewBinder.Builder构造ViewBinder对象 |
3.11 TRewardedAd
| 方法名称 | 方法介绍 |
|---|---|
| TRewardedAd(Context mContext, String slotId) | 构造方法 |
| setRequestBody(TAdRequestBody body) | 设置广告请求体,方法请参照TAdRequestBody类 |
| loadAd() | 开始请求广告在设置的等待时间内返回最优广告 |
| show(Activity activity) | 展示广告 |
| show(Activity activity, String sceneToken) | 展示广告 |
| hasAd() | 判断当前是否有可用广告 |
| enterScene(String sceneId, int adCount) | 在到达广告场景时可以优先调用,返回一个String类型的sceneToken,在展示时传入。我们会根据此方法来更好的展示广告 |
| destroy() | 释放广告资源 |
| setContainVulgarContent(boolean isContainVulgarContent) | 设置宿主当前需要展示广告的场景是否含有敏感内容,请求广告时会过滤不能在该场景展示的广告 |
3.12 TAdManager
| 方法名称 | 方法介绍 |
|---|---|
| setUserConsent(boolean userConsent) | Applovin、InMobi、IronSource、Liftoff(Vungle)、Mintegral、Pangle、Yandex可配置GDPR(通用数据保护条例);"true"值表示用户同意存储和处理个人信息,"false"值表示不同意 |
| setAgeRestrictedUser(boolean ageRestrictedUser) | InMobi、IronSource、Liftoff(Vungle)、Mintegral、Pangle、Yandex、Bigo可配置COPPA(儿童在线隐私保护法);"true"值表示该用户是13岁以下儿童,"false"值表示该用户不是13岁以下儿童。默认情况下,假定用户不是 13 岁以下的儿童 |
3.13 MediationJsBridge
功能:赋予JS调用原生级的广告聚合能力
webView.getSettings().setCacheMode(LOAD_NORMAL);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true); // 设置与JS交互的权限
webView.addJavascriptInterface(new MediationJsBridge(webView), MediationJsBridge.INTERFACE_NAME);
说明:设置安卓与JS交互功能
webView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
// 资源拦截
WebResourceResponse resourceResponse = mediationJsBridge.shouldInterceptRequest(url);
if (resourceResponse != null) {
return resourceResponse;
}
return super.shouldInterceptRequest(view, request);
}
});
说明:重写WebViewClient的shouldInterceptRequest方法做资源拦截。