Android
広告
adMob
マテリアルデザイン
NOTEBOSS

【Android】「ネイティブ エクスプレス広告フォーマットのサポート終了のお知らせ」に、バナー広告ユニットでなんとか対応する案

ネイティブ広告のサポート終了

AdMobのネイティブ広告はレイアウト設計に自由度があり、私が作成した全てのアプリでネイティブ広告以外を一切使っていないくらいだったのだが、「来年2018年3月1日」でネイティブ広告を廃止するとのアナウンスが流れてきた。

マジでか。。。

ネイティブ エクスプレス広告フォーマットのサポート終了のお知らせ

AdMob ではネイティブ エクスプレス広告ユニットを作成できなくなりました。既存のネイティブ エクスプレス広告ユニットへの広告配信は、2018 年 3 月 1 日をもって終了いたします。

まあ、新しい、より利便性のある広告が登場するならいいやーと思ったのだが、

これに代わって、今後 AdMob では限定のベータ版としてご利用いただけるネイティブ アドバンス広告フォーマットに力を入れていく予定です。

現在ネイティブ エクスプレス広告を使用されている場合は、2018 年 3 月 1 日より前に、ネイティブ エクスプレス広告ユニットおよびキャンペーンを別の広告フォーマットに切り替えていただきますようお願いいたします。

限定のベータ版としてご利用いただけるネイティブ アドバンス広告フォーマット

AdMob内に見当たらない……どうやら、選ばれし開発者にだけ限定的に公開されている模様。

ということは、私のような名もない開発者は、来年2018年3月1日までに全アプリをネイティブ広告から別の広告フォーマットへ変更しなければならないということか……鬼かよ……「バナー広告」の一択しかないのだが。

バナー広告ユニットでなんとか対応する

しか手がないので、、、色々と考えてみた。

今までバナー広告を使わなかった理由は何においても、実装後の「見た目の悪さ」だ。

例えば、こう。

Screenshot_2017-11-07-12-38-44.png

SMART_BANNER」を使うと折角のプライマリカラーをベッタリと壊されるし、、、

Screenshot_2017-11-07-12-45-14.png

BANNER」を使うと配信されるバナーのサイズがスポンサーに依ってマチマチ。

これホントに、サイズ統一なんでしないかね?

これのせいで、ホントにバナー広告は使いたくないんだよな。。。

「デベロッパーのためのマテリアル デザイン」からヒントを得る

デベロッパーのためのマテリアル デザイン

Googleは、アプリをピックアップする基準として、「マテリアルデザインに準拠しているかどうか」という厳しい審査がある。

その勉強の為、一時、よくこのページを読んでいたのだが、

システム ウィジェットを使って、一貫した外観や使用感のリストやカードを作成する方法について学習します。

マテリアル デザインのスタイルを適用した複雑なリストやカードをアプリで作成するには、 RecyclerView ウィジェットや CardView ウィジェットを使用します。

とあり、要するに、「RecyclerView」と「CardView」を使ってりゃあ、間違いはないよと認識した。

お。

そうか。

これは、勿論、広告も例外ではないのではないか。

「CardView」で実現するバナー広告ユニット

早速、試してみた。

Screenshot_2017-11-07-18-25-09.png

CardView」を使う前よりはずっといいと思う。

けど、、、やっぱりこの配信サイズがマチマチ問題のせいで、下部に余計な余白が出てしまうのが本当に腹立つな。

では、ちょっと広告の領域が大きくなってしまって気になるが、こうしたらどうか。

Screenshot_2017-11-07-18-25-55.png

広告」という文字を入れてみた。

ブラウザの広告だとこういう文字とか入っているので、真似してみた。

お、これいいんじゃないの?

下部の余計な余白が気にならなくなった。

サンプルコード

単純に、「CardView」で囲うだけだ。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ads"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="4dp"
    android:layout_marginBottom="4dp"
    android:layout_marginStart="8dp"
    android:layout_marginEnd="8dp">

    <LinearLayout
        android:id="@+id/ads_view"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="4dp"
        android:paddingBottom="4dp"
        android:paddingStart="12dp"
        android:paddingEnd="12dp">

        <TextView
            android:text="広告"
            android:textSize="12dp"
            android:textColor="@color/colorPrimary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp" />

    </LinearLayout>

</android.support.v7.widget.CardView>

「@+id/ads_view(LinearLayout)」に対して「addView」する。

そうすれば、「広告」という文字(TextView)の下に配置されることになる。

    AdView adView = new AdView(mContext);
    adView.setAdSize(AdSize.BANNER);
    adView.setAdUnitId(adUnitId);
    adView.loadAd(new AdRequest.Builder().build());
    ((LinearLayout) findViewById(R.id.ads_view)).addView(adView);

見栄えも悪くないし、ちょっと広告領域が大きいのは気になるけど、これなら簡単にできる。

とはいっても、これを全アプリに置き換えてやらないといけないとなると、気が重いなあ。。。

(※「minSdkVersion 21:Lollipop」を前提としたサンプルコード)

サンプルアプリ

以下、参考までに、上記バナー広告で置き換えた私のメモ帳アプリ

このメモ帳アプリ内では他のバナー広告サイズにも対応しているので、見栄えを事前に確認してみたいという方は、参考にどうぞ。

広告が大き過ぎると評判が悪い面もあるが、スクロール時に広告は隠すようにしてあるので、そんなに気にならないと思っているんだけど。

どうでしょう?

ic_launcher.png
シンプルなメモ帳は文字数もカウントする-様々なカスタマイズ機能を搭載した無料ノート-NOTEBOSS

【動作環境】
Android OS 5.0以上

Made in Japan.
© CUTBOSS
Producer & Director, Boss of the Barber.
Lead Programmer & Designer, Boss of the Barber.

header_2_ja.png

関連記事

参考記事