检查url格式是否正常(参考服务端激励文档),是否刚刚在TaKu后台配置(需要五分钟才生效),通过网页请求自己先验证下服务端回调url是否正常,有没有过滤校验的逻辑
SDK缓存机制会存在一次广告加载请求缓存多个广告的情况,加载前本地传参setLocalExtra(localMap)是和当时加载请求时那次填充的广告绑定的,所以会出现服务器激励回调接收到的自定义参数不一致的情况,可以结合回调信息ATAdInfo中的showid和服务器回调返回的transid对比是否一致,加上回调信息里面的自定义参数和服务器回调user_custom_data做校验就能确保是有效广告了,另外如果是在TaKu后台配置服务端激励可以使用show(Activity activity, ATShowConfig showConfig)这个方法来传参实时获取参数
检查下setLocalExtra方法user_id有没有传值,服务端收到后才会透传的
是否被遮挡重叠的情况,其次是否全自动模式和手动模式方法弄混
移除项目内引入AutoSize,AutoLayout框架
screenOrientation在AndroidManifest.xml中开启硬件加速
<application
...
android:hardwareAccelerated="true">
...
</application>
没有主动关闭方法,需要手动点击关闭
检查布局是否有遮挡
● 广告源的AppID、PlacementID不匹配
ATMediationRequestInfo实例且传入了错误的应用以及广告位参数(传入错误时会导致使用错误的ID初始化广告平台的SDK)请参考SDK预制策略进行配置
ATSplashAd.isAdReady()判断有无开屏广告缓存,若无则发起load进行预加载,或者在onAdDismiss时调用load进行预加载穿山甲开屏展示没有铺满屏幕或Container,如下图所示

请检查项目中是否有引入AutoSize,AutoLayout框架,穿山甲广告展示会受到这些框架影响,需要移除这些框架
如果项目不能移除AutoSize,AutoLayout框架,请参考下方代码去除穿山甲页面缩放:
//去除穿山甲广告页面的缩放
AutoSizeConfig.getInstance().externalAdaptManager
. addCancelAdaptOfActivity(Stub_Activity: :class. java)
. addCancelAdaptOfActivity(Stub_SingleTask_Activity: :class. java)
........
穿山甲sdk其余的Activity
Stub_Activity
Stub_SingleTask_Activity
Stub_SingleTask_Activity_T
Stub_Standard_Activity
Stub_Standard_Activity_T
Stub_Standard_Landscape_Activity
Stub_Standard_Portrait_Activity
穿山甲sdk依赖其他的Activity
AppPrivacyPolicyActivity
AppDetailInfoActivity
TTDelegateActivity
JumpKllkActivity
DownloadTaskDeleteActivity
JumpUnknownSourceActivity
检查布局是否有遮挡
检查是否有东西挡住了Banner的View
Banner广告展示内容太大或太小、广告内容被截掉了一部分等,这些一般是代码中的宽高设置有问题导致的
//设置广告视图mBannerView的布局参数
//设定一个宽度值,比如屏幕宽度
int width = getResources().getDisplayMetrics().widthPixels;
int height = ViewGroup.LayoutParams.WRAP_CONTENT;
mBannerView.setLayoutParams(new FrameLayout.LayoutParams(width, height));
//----------------------- 注 意 ---------------------------------------
//如果出现Banner有时高、有时低的情况,请使用如下代码
//float ratio = 320/50f; //必须跟TopOn后台配置的Banner广告源宽高比例一致,假设尺寸为320x50
//int width = getResources().getDisplayMetrics().widthPixels; //定一个宽度值,比如屏幕宽度
//int height = (int) (width / ratio);
//mBannerView.setLayoutParams(new FrameLayout.LayoutParams(width, height));
//----------------------- 注 意 ---------------------------------------
onBannerAdShow,但还是收不到onBannerShow或onBannerAutoRefreshed删掉mLoadListener.onAdCacheLoaded();重写下这个方法
@Override
public boolean supportImpressionCallback() {
return false;
}
是的 ,只能统一在后台控制
检查布局是否有遮挡
在调用prepare前,ATNativePrepareInfo#setChoiceViewLayoutParams传入一个FrameLayout.LayoutParams, 可以传入一个负值的marginLeft,让这个choiceicon移除可视区域外
setNativeEventListener()、renderAdView()和prepare()方法,每调用一次getNativeAd()方法,会返回不同的NativeAd对象Native广告展示内容太大或太小、广告内容被截掉了一部分等,这些一般是代码中的宽高设置有问题导致的
int adViewWidth = mATNativeView.getWidth() != 0 ? mATNativeView.getWidth() : getResources().getDisplayMetrics().widthPixels;
int adViewHeight = adViewWidth * 3 / 4;
Map<String, Object> localExtra = new HashMap<>();
localExtra.put(ATAdConst.KEY.AD_WIDTH, adViewWidth);
localExtra.put(ATAdConst.KEY.AD_HEIGHT, adViewHeight);
mATNative.setLocalExtra(localExtra);
mATNative.makeAdRequest();
在AndroidManifest.xml中开启硬件加速
<application
...
android:hardwareAccelerated="true">
...
</application>
华为8.0系统会对带有”AdView“ View自动设置为GONE,导致TaKu的ATNativeAdView无法正常展示,可以通过自定义View继承ATNativeAdView方式处理。
<application
...
android:hardwareAccelerated="true">
<!-- Android 9以上适配 -->
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
...
</application>
TaKu SDK内部会用到webview去访问文件,setAllowFileAccessFromFileURLs、setAllowUniversalAccessFromFileURLs设置了为true, 已通过以下方法限制文件访问范围来防护:
确认下自定义Adapter时有无重写这个方法startBiddingRequest,并且return true
广告场景展示统计需要在show方法中传入场景id,entryAdScenario表示进入场景统计
参考示例code,可以传空Map进行切换
Map<String, String> customMap = new HashMap<>();
ATSDK.initCustomMap(customMap);
ATSDK.initPlacementCustomMap(placementId, customMap);