Androidの無料アプリで収益をあげるためには大体広告を入れるわけだけど、色んなアドネットワークが存在する。
そして時期や状況によって1クリックあたりの単価が上がったり下がったり。
そんな時、いちいちアップデートで広告を切り替えていたら面倒だし、
何よりアップデートしない人もいるので広告がバラつき、結局思ったように収益があげられなくなる。
そこでAdMobのサービスであるAdWhirl。
これを利用することで、広告の切替が管理画面から簡単にできるようになる。
この記事ではAdWhirlへの登録から、AdWhirlSDKの実装方法までを記してみようと思う。
まずはAdWhirlのサイトにアクセスして、右下の「Not Registered? Sign Up Now」へ。
このようなメールが届くので、http://www.adwhirl.com/home/register/confirm…のリンクからアクセスし、登録完了。
トップページからメールアドレスとパスワードを入力し、管理画面にログインする。
「+Add Application」からアプリを登録する。
アプリ名とGoogle PlayのアプリURLを入力し、「AddApp」。
「Ad Serving Settings (Optional) 」の項目は、後からでも変更できるので未入力。
「App List」に登録したアプリ名が表示されるので、クリックして「Ad Network Settings」ページへ。
初期状態ではAdMobなどが表示されている。
ここに表示されているものは、パブリッシャーIDを入力するだけで使用できるようだ。
(※パッケージへのアドネットワークSDK導入は必要かも)
アプリ名の右に表示される「SDK Key:」を控えておく。
他のアドネットワークを表示させたいので「Add Custom Event」から、登録。
Nameにアドネットワークの名前を、Function Nameには任意のメソッド名を入力し、「Add Event」。
登録したアドネットワークが表示されたので、ONにして「Save Changed」。
なお、% of Trafficでは表示率の設定ができる。
これでひとまずAdWhirl管理画面での設定は終了。
右上の「Dev Resources」→「Download the latest version」から、AdWhirlのSDKをダウンロードする。
ダウンロードしたAdWhirlSDKを解凍し、jarファイルを確認。
Eclipseを開き、パッケージの上で右クリック→「ビルド・パス」→「ビルド・パスの構成」
→「ライブラリー」タブ→「外部jar追加」からAdWhirlSDKを追加する。
「順序およびエクスポート」タブでSDKにチェックが無ければチェック。
今回は実装方法の説明なので、予めアドネットワークのSDKは追加してあるものとして進めていく。
AndroidManifest.xmlの<application…></application>内に下記を追加する。
<meta-data android:value=”xxxxxxxxxxxxxxxxxxxxxxx” android:name=”ADWHIRL_KEY” />
(xxx部分は、AdWhirl管理画面のSDK Key:)
以下、クラス内のコード
private AdWhirlLayout adWhirlLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout parentLayout = new LinearLayout(this);
setContentView(parentLayout);
AdWhirlManager.setConfigExpireTimeout(1000 * 60 * 5);
//タイムアウトの設定
adWhirlLayout = new AdWhirlLayout(this, “12face78be8742cda70ba064bdc2dc96”);
//AdWhirl管理画面のSDK Key:を入力する
adWhirlLayout.setAdWhirlInterface(this);
parentLayout.addView(adWhirlLayout);
//adWhirlLayoutを表示する
}
@Override
public void adWhirlGeneric() {
}
public void addTestAdnetwork(){ //AdWhirlの管理画面で決めたメソッド名
adWhirlLayout.adWhirlManager.resetRollover();
adWhirlLayout.removeAllViews();
//広告がリフレッシュされた時に二重になってしまうような気がしたので、
//念のためadWhirlLayoutの中身を消去
TestAd testAd= new TestAd(this);
//各アドネットワークごとに必要な処理をする
adWhirlLayout.addView(testAd);
//adWhirlLayoutに追加する。
adWhirlLayout.rotateThreadedDelayed();
}
}
アドネットワークを増やしたい場合は、AdWhirlの管理画面でカスタムイベントを追加し、
クラス内に上記のようなメソッドを増やすだけですむ。
他、管理画面のHouse Adsでは自社広告の設定ができる。
(必要な項目を入力し、作成したあとでAd Network SettingsのHouse Adsで表示率を設定する。)
Ad Serving Settings (optional) では、
Refresh Rate: 広告のリフレッシュ秒数
(※アドネットワークによっては30秒や1分など制限を設けているところもあるため、
1つの広告を15秒でリフレッシュするのはやめておいた方がよさそう。)
Transition Animation: 表示する際のアニメーションだが、機能してない気がする。
Allow Location Access: 恐らく位置情報、使用するアドネットワーク次第では必要になる?
などが設定できる。
ちなみに設定保存後、5~10分程度で反映されている感じだった。