Banner Integration For Android - kazTera/GYSDK_Android GitHub Wiki
Android バナー広告の実装
バナー広告は、アプリ画面の下部、上部に配置する広告です。
広告枠のサイズ設定より、アイコン型広告、インライン型広告として配置可能です。
実装準備
バナー広告の実装準備は、下記スタートガイドより、
Geniee SDK をプロジェクトにインストール必要です。
スタートガイド
クラスとインタフェース
Android バナー広告配信には、下記クラスを使用します。
- GNAdView 非同期でバナー広告を取得、表示用クラス
- GNAdEventListener バナー広告サイクルイベント処理用インタフェース
バナー広告の取得と表示
-
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;
-
GNAdView
の変数を宣言します。GNAdView adView;
-
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を設定します。
-
広告を画面に追加します。
final LinearLayout layout = (LinearLayout)findViewById(R.id.layout); layout.addView(adView, LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
-
アクティビティ画面を表示時に、広告をロード、表示します。
adView.startAdLoop();
startAdLoop() を呼び出すと、GNAdViewは広告のロードを開始し、
自動的に広告のローテーション表示を開始します。
-
アクティビティ画面を非表示時に、広告のローテーション表示を停止します。
adView.stopAdLoop();
-
アクティビティ画面を終了時に、
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>