Banner Integration For Android - kazTera/GYSDK_Android GitHub Wiki

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;
    
  2. GNAdViewの変数を宣言します。

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

    • 初期化 API
    public GNAdView(Context context, GNAdSize adSize, GNTouchType touchType) throws IllegalArgumentException
    
    • 初期化 API の使用例
    adView = new GNAdView(
            this,
            GNAdSize.W320H50,
            GNTouchType.TAP_AND_FLICK
    );
    adView.setAppId("YOUR_SSP_APP_ID");
    

contextパラメータは、アプリのContextを設定します。
adSizeパラメータは、広告のサイズタイプを設定します。
touchTypeパラメータは、広告のタブタイプを設定します。
YOUR_SSP_APP_IDは、Geniee内での枠の管理IDを設定します。

  1. 広告を画面に追加します。

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

    adView.startAdLoop();
    

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

  1. アクティビティ画面を非表示時に、広告のローテーション表示を停止します。

    adView.stopAdLoop();
    
  2. アクティビティ画面を終了時に、GNAdView のリソースを開放します。

    adView.clearAdView();
    
  • 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,
            GNTouchType.TAP_AND_FLICK
    );
    adView.setAppId("YOUR_SSP_APP_ID");
    //adView.setLogPriority(GNAdLogger.INFO);
    //adView.setGeoLocationEnable(true);
    // Add AdView to view layer
    final LinearLayout layout = (LinearLayout)findViewById(R.id.AdviewLayout);
    layout.addView(adView, LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
}

@Override
protected void onResume() {
    super.onResume();
    if(adView != null){
        adView.startAdLoop();
    }
}

@Override
protected void onPause() {
    super.onPause();
    if(adView != null){
        adView.stopAdLoop();
    }
}

@Override
protected void onDestroy() {
    if (null != adView) {
        adView.clearAdView();
    }
    super.onDestroy();
}

} ```

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

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

  • バナー型広告 : GNAdSize.W320H50、GNAdSize.W300H250、GNAdSize.W320H100

  • アイコン型広告 : GNAdSize.W57H57、GNAdSize.W76H76

    GNAdSizeの定義 定義の意味
    GNAdSize.W320H50 320x50
    GNAdSize.W300H250 300x250
    GNAdSize.W320H100 320x100
    GNAdSize.W57H57 57x57
    GNAdSize.W76H76 76x76

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

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

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

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

    @Override
    protected void onPause() {
        super.onPause();
        if(adView != null){
            adView.stopAdLoop();
        }
    }
    

GNAdEventListener インターフェース

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

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

} ```

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

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

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

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

    @Override
    public boolean onShouldStartInternalBrowserWithClick(String landingURL) {
        return false;
    }
    

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

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

  • 例:320x50の広告をセンタリングします。(layout/activity_gnad_sample_banner.xml)

    <LinearLayout
        android:id="@+id/AdviewLayout"
        android:layout_width="320dp"
        android:layout_height="50dp"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical">
    </LinearLayout>