Menu

Things to note about native advertising platforms

● Meta (Facebook)

  • 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().

● Vungle

  • 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.

● Inmobi:

  • MediaView: The MediaView must be added to the layout, otherwise it will be considered an invalid impression.

● Pangle (China), Pangle

  • When creating an ATNativeAdView instance, the Context passed must be an Activity.

● Huawei:

  • 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.

Copy
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.

● Bigo:

  • AdIconView: When the return is not null, the AdIconView must be added to the layout, otherwise it will be considered an invalid impression.

● Yandex:

  • 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.
Previous
self-rendering ads
Next
Self-rendering shake
Last modified: 2026-07-21Powered by