Я боролся с этим некоторое время, и я понятия не имею, что я делаю неправильно.Наконец, я сделал пример проекта в значительной степени на их примере и до сих пор не вижу значок выбора рекламы.
Это код для показа объявления:
AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
@Override
public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
// Assumes you have a placeholder FrameLayout in your View layout
// (with id fl_adplaceholder) where the ad is to be placed.
// FrameLayout frameLayout =
// findViewById(R.id.fl_adplaceholder);
// Assumes that your ad layout is in a file call ad_unified.xml
// in the res/layout folder
UnifiedNativeAdView adView = (UnifiedNativeAdView) getLayoutInflater()
.inflate(R.layout.native_ad_layout_generic_lineartest_unified, null);
// This method sets the text, images and the native ad, etc into the ad
// view.
TextView title = adView.findViewById(R.id.native_ad_title);
title.setText(unifiedNativeAd.getHeadline());
adView.setHeadlineView(title);
TextView text = adView.findViewById(R.id.native_ad_text);
text.setText(unifiedNativeAd.getBody());
adView.setBodyView(text);
ImageView image = adView.findViewById(R.id.native_ad_icon_image);
image.setImageDrawable(unifiedNativeAd.getIcon().getDrawable());
adView.setIconView(image);
Button button = adView.findViewById(R.id.native_call_to_action);
button.setText(unifiedNativeAd.getCallToAction());
adView.setCallToActionView(button);
adView.setNativeAd(unifiedNativeAd);
main.addView(adView);
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(int errorCode) {
Log.w(TAG, "" + errorCode);
}
})
.withNativeAdOptions(new NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build();
adLoader.loadAd(new AdRequest.Builder().build());
Это мой собственный тестовый макет:
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.ads.formats.UnifiedNativeAdView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark">
<LinearLayout
android:id="@+id/relativeLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/colorPrimary"
android:gravity="center"
android:minWidth="300dp"
android:padding="8dp">
<!--<ImageView
android:id="@+id/native_ad_main_image"
android:layout_width="@dimen/banner_height_large"
android:layout_height="@dimen/banner_height_large"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
/>-->
<android.support.v7.widget.AppCompatImageView
android:id="@+id/native_ad_icon_image"
android:layout_width="64dp"
android:layout_height="64dp"
android:background="@null"
android:scaleType="fitXY"
/>
<TextView
android:id="@+id/native_ad_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="4dp"
android:alpha="0.87"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="12sp"
/>
<TextView
android:id="@+id/native_ad_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginTop="4dp"
android:alpha="0.54"
android:ellipsize="end"
android:maxLines="4"
android:textColor="@color/white"
android:textSize="10sp"
/>
<Button
android:id="@+id/native_call_to_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/colorAccent"
android:textSize="10sp"
/>
</LinearLayout>
</com.google.android.gms.ads.formats.UnifiedNativeAdView>
Я добавляю его в LinearLayout, который выглядиткак это:
<LinearLayout
android:id="@+id/main_view"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".MainActivity"
tools:showIn="@layout/activity_main"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
/>
</LinearLayout>
И вот как это выглядит в итоге (я знаю, что это говорит о тесте mopub, потому что это было для mopub, но после того, как я не смог заставить его показать иконку там, я пошелвперед и попробовал это без мопуба).
Редактировать: Возможно, на тестовом рекламном блоке не отображается этот значок?
Редактировать: на случай, если неясноЯ говорю о значке, который обычно появляется в правом верхнем углу, где упоминается, что это реклама.Это пример.