Как реализовать нативную рекламу через ручную интеграцию в Android с помощью MOPUB - PullRequest
0 голосов
/ 05 июня 2018

Попытка интегрировать нативную рекламу Mopub в приложение для Android.

Я успешно интегрировал баннерную и промежуточную рекламу из mopub, но борюсь с нативной рекламой.

Нативная реклама загружена в onNativeLoad(), но мне нужна помощь с присоединением нативной рекламы к представлению Mainactivity.

открытый класс MainActivity extends 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();
}

}

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

создал ad_holder в actvity_main.xml.

Представление 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);
0 голосов
/ 05 июня 2018

Когда 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.
...