hyoromoのブログ

iOS/AndroidもしくはCocos2dxネタを書いています

Cocos2d-xにAdColony(動画広告)を表示してみる

f:id:hyoromo:20150501224023j:plain
去年からTapjoyやUnityAdsで動画広告が注目を浴びて、今年に入ってから国内だとAppliPromotionとAdColony(Glossom)が参入してきて今後増えていきそう!って事で、AdColonyの方をCocos2dxプロジェクトへ導入してみました。今回は導入コスト感がなんとなく分かるように書きたいと思います。

ざっくり比較

アドネットワークサービス 報酬タイミング 報酬単価 Cocos2dx対応
AdColony 動画再生完了 平均1-2円*1
AppliPromotion 動画再生完了後に表示されるアプリダウンロードボタン押下 ???

AppliPromotionの動画広告の内情がググってもよく分からなったんで知ってる人がいたら教えてほしいなぁ。

2社を比較した時にAdColonyの方が報酬機会が多いので選びました。AdColonyは海外のアドネットワークサービスで、日本側の窓口としてGlossom社が居る状態だから海外向け広告の在庫も多いのが良いポイントでしょうか。
Cocos2dxプロジェクトへUnityAdsを導入出来るらしいので、もしかしたらそちらの方が良いのかも...

AdColony SDK導入

まだbeta版ですがGitHubにあがってるので導入コストはreadmeを読めば測れます。
https://github.com/glossom-dev/AdColony_plugin_for_cocos2dx

在庫の有る無しは事前にAPIでチェック出来て、動画再生後はコールバック関数が呼ばれるんで、そこで動画再生報酬の処理を書けばいいだけです。
ただネックなのはPlugin-xを使って作られているので、Plugin-x自体の知識が少しでも無いと設定周りで詰まるかもしれません。

Android.mkの書き方

Cocos2dx v3系の中でもバージョンによって書き方が変わってたりするので、自身のプロジェクト内のAndroid.mkとreadmeに書かれている内容が一致しなくてハマるかもしれないです。ググるか問い合わせれば解決しそうです。

コールバック関数の呼ばれるタイミングがプラットフォーム毎に異なる

個人的にハマったのがコレ。
iOSは動画画面を閉じたタイミングで onAdColonyV4VCReward 関数が呼ばれるのに対し、Androidは動画再生終了後に呼ばれます。
解決するにはAndroid側が動画画面を閉じるタイミングで呼ばれる onAdColonyAdAttemptFinished 関数でハンドリングするようにします(onAdColonyV4VCRewardでの結果は保持しておいて)*2

最後にアプリの宣伝

動画広告を入れたアプリ、タップ時間をコントロールして進んでいくドット絵ゲーム「Dot Hopping」を先日リリースしました。全然DLされていないので誰かDLしてください...
https://itunes.apple.com/jp/app/id972827939
https://play.google.com/store/apps/details?id=jp.hyoromo.dothopping

*1:Glossom社曰く

*2:iOS側の処理をAndroidに合わせようとすると、iOS側では onAdColonyAdAttemptFinished が呼ばれた後に onAdColonyV4VCReward が呼ばれるため共通化出来ませんでした