- MediaView: The MediaView must be added to the layout, otherwise it will be considered an invalid impression.
- AdIconView: The AdIconView must be added to the layout, otherwise it will be considered an invalid impression.
- Icon (Badge): The Meta badge must not be obscured. The Meta badge can be controlled via
ATNativePrepareInfo.setChoiceViewLayoutParams().
- MediaView: The MediaView must be added to the layout, otherwise it will be considered an invalid impression.
- AdIconView: The AdIconView must be added to the layout, otherwise it will be considered an invalid impression.
- MediaView: The MediaView must be added to the layout, otherwise it will be considered an invalid impression.
- When creating an ATNativeAdView instance, the Context passed must be an Activity.
- Huawei provides a "Native Ad Download Button Control" (refer to Huawei Native Ad Download Button Control Instructions) to improve the download conversion rate of app download type native ads.
Taku provides ATNativeMaterial#getAppDownloadButton() for integrating the Huawei download button control. For specific integration methods, refer to the bindSelfRenderView sample code below.
public static void bindSelfRenderView(Context context, ATNativeMaterial adMaterial,
View selfRenderView, ATNativePrepareInfo nativePrepareInfo) {
......
// AppDownloadButton (Only Huawei Ads support)
View lastView = ((ViewGroup) selfRenderView).getChildAt(((ViewGroup) selfRenderView).getChildCount() - 1);
// Remove AppDownloadButton since last time added
if (lastView instanceof AppDownloadButton) {
((ViewGroup) selfRenderView).removeView(lastView);
}
//View appDownloadButton = adMaterial.getAppDownloadButton();
// v6.3.70 or above
View appDownloadButton = adMaterial.getCallToActionButton();
if (appDownloadButton != null) {
if (appDownloadButton instanceof AppDownloadButton) {
((AppDownloadButton) appDownloadButton).setTextSize(dip2px(context, 12));
appDownloadButton.setPadding(dip2px(context, 46),dip2px(context, 24),dip2px(context, 46),dip2px(context, 24));// Adjust button size
}
ViewGroup.LayoutParams ctaParams = ctaView.getLayoutParams();
((ViewGroup) selfRenderView).addView(appDownloadButton, ctaParams);
appDownloadButton.setVisibility(View.VISIBLE);
ctaView.setVisibility(View.INVISIBLE);
}
}
Note: getAppDownloadButton() may return null, so null checking must be performed during integration. Clicking AppDownloadButton will not trigger the onAdClicked callback, but will not affect revenue.
- AdIconView: When the return is not null, the AdIconView must be added to the layout, otherwise it will be considered an invalid impression.
- Domain: When the return is not null, the text must be added to the layout and bound via
ATNativePrepareInfo.setDomainView(), otherwise it will be considered an invalid impression.- Warning: When the return is not null, the text must be added to the layout and bound via
ATNativePrepareInfo.setWarningView(), otherwise it will be considered an invalid impression.- AdFrom: When the return is not null, the text must be added to the layout and bound via
ATNativePrepareInfo.setAdFromView(), otherwise it will be considered an invalid impression.