Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事にトラックバックする(FC2ブログユーザー)
http://garlicg.blog92.fc2.com/tb.php/59-12d8b569

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Admobメディエーションを実装してみた

Admobメディエーションを導入したのでメモ。
ちなみにメディエーションとは乱立してカオスってる広告サービスの配信割合を変えたりできる機能です。AdmobとかAdStirのSDKには主機能である広告表示以外にメディエーション機能がついていて、アプリに組み込んである他の広告SDKを制御できます。そんな世の中。



選定

・AdStir・・・大体の国内系広告SDKをメディることができる。SDK自体の更新が多い。ついてけない。
・アドフリくん・・・ここでかなり紹介されてるけど知りたい情報が見えない。(「複数のアドネットワーク」ってどのアドネットワーク?)。登録めんどくさい。
・Admob・・・巨匠。どこの広告サービスでも表示できるっぽい。

_人人人人人人人_
> Admobに決めた <
 ̄Y^Y^Y^Y^Y^Y^Y^ ̄



導入

Ad Network Mediation - Publisher Instructions - Google Mobile Ads SDK — Google Developers
メディエーション - Google デベロッパー アカデミー — Google Developer
Google先生のお手本

テクノード鎌田社長に聞いた!ゼロから分かるAdMobメディエーションツール導入方法 | APPREVIEW
Admob導入からメディエーションまでさーっと載ってます。

基本的な導入方法は省略します。
実装して気づいた全体像はこんな感じでした。
※ここではAdmobコンソール上でカスタムイベントに指定するクラスをAdAdapterと呼ぶことにします。

mediation.png

最初は?マークが出ていたのですが、面白い仕組みだなと思いました。実質、アプリコンテンツから呼び出す広告ロジックはAdmobSDKからの数行で済みます。
各広告SDKに依存するコードはカスタムイベントをハンドリングするリスナーを実装したAdAdapterのみになるのでかなりすっきりだし、AdAdapter部分を内包した広告SDKを提供しているi-mobileやAdStirは、コードの記載が一切なくなります。



いったんまとめ

Admobメディエーションを使ってi-mobile、Adstir、mediba、Adlantis、AmoAd、Nend、アスタの実装をしてみたところ、現段階では若干めんどくさかったので最後にずらーっとメモします。
ともあれカオスってる広告サービスがAdmobメディエーションの存在で扱いやすくなりそうなよーかーんー。配信比率で収益を~とかもですけど、その前にバグを生み出すような広告を制限できるのもメリットだと思います。あとは各社がAdAdapter込みのSDKを提供すれば、地味めんどくさい広告の挙動みて~テストして~も少なくなりそう。

実装とは関係ないですけど、(開発者向けじゃなくて)ユーザー向けのプライバシーポリシーを準備してないところがけっこうあります。怪しいパーミッションを使うところはほぼなくなってきたと思いますが、ユーザー向けプライバシーポリシーないと開発者でも何やってるわからないです。広告切替が楽になると、ユーザーにポリシー提示する際に数ある分カオスってくるのでこっちもうまいこと足並み揃いませんかね。


楽なやつの導入

・i-mobile
Inside Adsense - 日本語: AdMob メディエーションで 「i-mobile for SP」 と連携しました
2013年1月にAdmobメディエーションと連携したので実装いらずですがAdapterSDKだけぶち込んどく必要があります。
アイモバイルMediationAdapter 利用手順 アイモバイル
SDKとかコンソール上の設定とかここ見ればOK!

・AdStir
Android用 AdStir AdMob Mediation - Adstir For Developer
AdStirは正式には連携してないようですが、Admobコンソール上のカスタムイベントに指定されたクラス名とパラメーターを設定すればOK!(のはずだけど表示率悪くてまだ確認できてない・・・
あとBypass Performance Clickが説明ページから抹殺されてたのが気になる



めんどくさいやつらのメモ

Google先生によると共通事項としてカスタムイベントは次の3つのコールバックをCutomEventBannerListenerで呼び出す必要があります。

onReceivedAd() メディエーションは、渡された広告を表示できます。このコールバックの呼び出しに失敗するとタイムアウトになり、メディエーションは次のネットワークに移動してしまいます。
onFailedToReceiveAd() メディエーションはタイムアウトを待たずにメディエーション フローの次のネットワークから広告をリクエストすることができます。
onClick() メディエーションにカスタム イベントのクリック数を記録して報告させます。

・リスナーを準備している広告SDKには状態に応じてonRecievedAdとonFailedToRecieveAdを呼び出していく。
・基本はonRecievedAd(View)のViewが実際に表示される。
・広告SDKのViewにsetOnClickListenerなんて実装するわけにもいかないのでonClickは実際に使えなそう。
・CustomEventBanner#destroyで広告SDKの解放処理を行う。これはレイアウトに配置されるcom.google.ads.AdViewのdestroyで呼び出される。
・実装の方法としては1Adapterに対して1広告SDKを管理するか、1Adapterに対して複数の広告SDKを管理するかのパターン。お好み。
・広告ローテーションはAdmobメディエーションで設定するか、もしくは各広告の仕様に任せるかどっちかにする。

・MedibaとAmoad
それぞれ広告の状態通知を受けるリスナーを実装できるので、そのなかでonRecievedAdとonFailedToReceivedを呼び出します。
また、AmoadのSDK付属のリファレンスにAmoAdViewのインスタンスはシングルトンで実装するように書いてあります。

・Nend
Nendの地雷は広告の通知を受けるリスナーはあるんだけどaddViewされてないと通知を受け取らないところです。(そもそも広告リクエストしてるかも不明。)なのでonRecievedAd(NendAdView)と呼び出すだけで実質addViewされるのでそれだけでOK。リスナーはあるけど使えないです。

※追記
2013年6月にAdMobメディエーションと正式に連携したので、めんどくさいやつらではなくなりました。
http://adsense-ja.blogspot.jp/2013/06/admob-nend_14.html

公式の設定方法はこちら。
http://nend.net/mediation

・AdLantis
リスナーはないので、onRecievedAd(AdLantisView)と呼び出すだけ。

・アスタ
アイコン型広告のアスタですが、LayoutにIconCellを並べてIconLoaderを追加、読み込み、onRecievedAd(Layout)すれば他のバナーと同じようなサイズでメディれる。

おしまい。


追記
サンプルソース追記しようと思いましたが、@kimukou2628さんの資料とテスト込みサンプルがいい感じでした。
http://www.slideshare.net/kimukou/try-to-writecodepracticaltest
この記事にトラックバックする(FC2ブログユーザー)
http://garlicg.blog92.fc2.com/tb.php/59-12d8b569

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。