Android バナー広告

バナー広告は、アプリ画面の下部、上部に配置する広告です。
広告枠のサイズ設定より、アイコン型広告、インライン型広告として配置可能です。

実装準備

バナー広告の実装準備は、下記スタートガイドより、
Geniee SDK をプロジェクトにインストール必要です。
スタートガイド

クラスとインタフェース

Android バナー広告配信には、下記クラスを使用します。

  • GNAdView 非同期でバナー広告を取得、表示用クラス
  • GNAdEventListener バナー広告サイクルイベント処理用インタフェース

バナー広告の取得と表示

  1. GNAdViewをインポートします。

    import jp.co.geniee.gnadsdk.banner.GNAdView;
    import jp.co.geniee.gnadsdk.common.GNAdLogger;
    import jp.co.geniee.gnadsdk.banner.GNAdSize;
    import jp.co.geniee.gnadsdk.banner.GNTouchType;
    
    1
    2
    3
    4
  2. GNAdViewの変数を宣言します。

    GNAdView adView;
    
    1
  3. GNAdView のインスタンスを初期化します。

    • 初期化 API

      public GNAdView(Context context, GNAdSize adSize) throws IllegalArgumentException
      
      1

      または

      public GNAdView(Context context, GNAdSize adSize, GNTouchType touchType) throws IllegalArgumentException
      
      1
    • 初期化 API の使用例

      adView = new GNAdView(this, GNAdSize.W320H50);
      adView.setAppId("YOUR_ZONE_ID");
      
      1
      2
    パラメータ名 内容
    context アプリのContext
    adSize 広告のサイズタイプ
    touchType 広告のタブタイプ
    YOUR_ZONE_ID Geniee内での枠の管理ID
  4. 広告を画面に追加します。

    final LinearLayout layout = (LinearLayout)findViewById(R.id.layout);
    layout.addView(adView);
    
    1
    2
  5. アクティビティ画面を表示時に、広告をロード、表示します。

    adView.startAdLoop();
    
    1

startAdLoop() を呼び出すと、GNAdViewは広告のロードを開始し、
自動的に広告のローテーション表示を開始します。

  1. アクティビティ画面を終了時に、GNAdView のリソースを開放します。
    adView.clearAdView();
    
    1
  • GNAdSampleBanner の実装例:

    import jp.co.geniee.gnadsdk.common.GNAdLogger;
    import jp.co.geniee.gnadsdk.banner.GNAdView;
    import jp.co.geniee.gnadsdk.banner.GNAdSize;
    import jp.co.geniee.gnadsdk.banner.GNTouchType;
    
    public class GNAdSampleBanner extends ActionBarActivity {
        private GNAdView adView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_gnad_sample_banner);
    
            // Initializes a GNAdView
            adView = new GNAdView(this, GNAdSize.W320H50);
            adView.setAppId("YOUR_ZONE_ID");
            //adView.setLogPriority(GNAdLogger.INFO);
            //adView.setGeoLocationEnable(true);
            // Add AdView to view layer
            final LinearLayout layout = (LinearLayout)findViewById(R.id.AdviewLayout);
            layout.addView(adView);
            adView.startAdLoop();
        }
    
        @Override
        protected void onDestroy() {
            if (null != adView) {
                adView.clearAdView();
            }
            super.onDestroy();
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32

広告のサイズタイプの設定

広告枠のサイズタイプ設定より、アイコン型広告、インライン型広告として配置可能です。

  • バナー型広告 : GNAdSize.W320H50、GNAdSize.W300H250、GNAdSize.W320H100
  • アイコン型広告 : GNAdSize.W57H57、GNAdSize.W76H76
Definition GNAdSize The meaning of definition
GNAdSize.W320H50 320x50
GNAdSize.W300H250 300x250
GNAdSize.W320H100 320x100
GNAdSize.W57H57 57x57
GNAdSize.W76H76 76x76

バナーローテーション(リフレッシュ)

管理画面より、バナーローテーション(リフレッシュ)を設定できます。
設定した場合、広告が指定した間隔秒数(30 ~ 120)で自動的にリフレッシュします。
リフレッシュを停止する場合、下記のいずれか方法で可能です。

  • 管理画面より、「Enable banner rotation」を無効に設定します。

  • stopAdLoop関数を呼び出します。

        if(adView != null){
            adView.stopAdLoop();
        }
    
    1
    2
    3

GNAdEventListener インターフェース

  • GNAdEventListenerのインターフェース関数実装し、広告処理サイクルイベントを受け取ります。

    adView.setListener(this);
    
    1
    public interface GNAdEventListener {
    
    /**
     * Call when GNAdView loaded ad data and first banner is shown.
     * @param adView
     */
    void onReceiveAd(GNAdView adView);
    
    /**
     * Call when GNAdView failed to load the ads.
     * @param adView
     */
    void onFaildToReceiveAd(GNAdView adView);
    
    /**
     * Call when built-in browser is starting.
     * @param adView
     */
    void onStartExternalBrowser(GNAdView adView);
    
    /**
     * Call when in-app browser is starting.
     * @param adView
     */
    void onStartInternalBrowser(GNAdView adView);
    
    /**
     * Called when in-app browser is terminating.
     * @param adView
     */
    void onTerminateInternalBrowser(GNAdView adView);
    
    /**
     * Call before built-in browser starting.
     * @param landingURL
     */
    boolean onShouldStartInternalBrowserWithClick(String landingURL);
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38

ランディングページの画面遷移の制御

広告のランディングページは、デフォルトで外部ブラウザで起動します。
GNAdEventListenerのコールバック関数実装し、
ランディングページのURLを使ってアプリ内ブラウザで起動することが可能です。
また、関数の戻り値によって、外部ブラウザの起動を制御します。
true を返した場合、アプリ側landingURL をリクエストする必要があります。

  • false 外部ブラウザを起動します。

  • true 外部ブラウザを起動しません。

    @Override
    public boolean onShouldStartInternalBrowserWithClick(String landingURL) {
        return false;
    }
    
    1
    2
    3
    4

広告表示領域の変更とセンタリング

端末で広告の表示領域を変更、センタリングすることができます。

  • 例:320x50の広告をセンタリングします。(layout/activity_gnad_sample_banner.xml)
<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal"
    android:id="@+id/AdviewLayout"></LinearLayout>
1
2
3
4
5
6
Last Updated: 2019/5/8 14:30:24