【问题标题】:How to implement Native ads through Manual Integration in android using MOPUB如何使用 MOPUB 在 android 中通过手动集成实现原生广告
【发布时间】:2018-06-05 11:41:53
【问题描述】:

尝试将 Mopub 原生广告集成到 Android 应用中。

我已成功集成来自 mopub 的横幅广告和插页式广告,但在原生广告方面遇到了困难。

原生广告已加载到 onNativeLoad(),但需要帮助将原生广告视图附加到 Mainactivity 视图

公共类 MainActivity 扩展 Activity {

private MoPubView moPubView;
//private MoPubInterstitial mInterstitial;
private MoPubNative moPubNative;
private MoPubNativeNetworkListener moPubNativeNetworkListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    moPubNativeNetworkListener = new MoPubNativeNetworkListener() {
        @Override
        public void onNativeLoad(NativeAd nativeAd) {

            Log.d("MoPub", "Native ad has loaded.");



        }

        @Override
        public void onNativeFail(NativeErrorCode errorCode) {
            Log.d("MoPub", "Native ad failed to load with error: " + errorCode.toString());
        }
    };

    moPubNative = new MoPubNative(this, "11a17b188668469fb0412708c3d16813 ", moPubNativeNetworkListener);

    ViewBinder viewBinder = new ViewBinder.Builder(R.layout.native_ad_list_item)
            .mainImageId(R.id.native_main_image)
            .iconImageId(R.id.native_icon_image)
            .titleId(R.id.native_title)
            .textId(R.id.native_text)
            .privacyInformationIconImageId(R.id.native_privacy_information_icon_image)
            .build();


    MoPubStaticNativeAdRenderer moPubStaticNativeAdRenderer = new MoPubStaticNativeAdRenderer(viewBinder);
    moPubNative.registerAdRenderer(moPubStaticNativeAdRenderer);


    EnumSet<RequestParameters.NativeAdAsset> desiredAssets = EnumSet.of(
            RequestParameters.NativeAdAsset.TITLE,
            RequestParameters.NativeAdAsset.TEXT,
            RequestParameters.NativeAdAsset.CALL_TO_ACTION_TEXT,
            RequestParameters.NativeAdAsset.MAIN_IMAGE,
            RequestParameters.NativeAdAsset.ICON_IMAGE,
            RequestParameters.NativeAdAsset.STAR_RATING
    );

    RequestParameters mRequestParameters = new RequestParameters.Builder()
            .desiredAssets(desiredAssets)
            .build();

    moPubNative.makeRequest();
}

}

【问题讨论】:

    标签: android ads mopub


    【解决方案1】:

    onNativeLoad() 触发NativeAd 实例时,您需要从MoPub 获取预渲染的广告视图,然后将其添加到视图层次结构中的父视图:

    final View adView = adapterHelper.getAdView(null, nativeAdView, nativeAd, new ViewBinder.Builder(0).build());
    
    adView.setLayoutParams(new ActionBar.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    parentView.addView(adView);
    
    • nativeAdView:您的 Android 布局来容纳广告视图。
    • nativeAd:您的原生广告实例由onNativeLoad() 回调提供。
    • parentView:你的 Android 布局保存nativeAdView

    【讨论】:

      【解决方案2】:

      actvity_main.xml 中创建了ad_holder

      nativead 视图被传递给 ad_holder

      如果没有在下面发表评论,这是一种正确的做法吗?

      RelativeLayout adParent = findViewById(R.id.ad_holder);
                  View adView = nativeAd.createAdView(getBaseContext(), adParent);
                  nativeAd.prepare(adView);
                  nativeAd.renderAdView(adView);
                  adParent.addView(adView);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多