Sunday, 28 October 2018

Can't get AdMob ad choices icon to show up on native ads

Been fighting this for a while and I have no idea what I'm doing wrong. Finally I made a sample project pretty much from their example and still can't see the ad choices icon.

This is the code to show the ad:

 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());

This is my test native layout:

<?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>

I'm adding it into a LinearLayout that looks like this:

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

And this is what it ends up looking like (I know it says mopub test that is because this was for mopub but after not being able to get it to show the icon there I went ahead and tried it without mopub).

enter image description here

Edit: Does the test ad unit maybe not show that icon?

Edit: Just in case it isn't clear, I am talking about the icon that usually shows up on the top right that mentions it is an ad. This is an example. enter image description here



from Can't get AdMob ad choices icon to show up on native ads

No comments:

Post a Comment