最初のアプリ作ったとき途中から広告入れようとした際にあちこち書き換えたりとやたら苦労したんで、作り始めから一応入れておいて非表示にして開発したいと思い、色々調べました。
ただcocos2dx+AdMobの記事は結構見つかったけど、Adlantisのは殆どない(´・ω・`)
色々といじってたら実装に成功したんで(多分)、忘れないうちにメモしときます。
なお、多分やり方はAdMobとそんなにかわらないだろうってことで、がおまるさんの以下のブログをだいぶ参考にしました。
がおまる開発ブログ「cocos2d-xにAdmobメディエーションのカスタムイベントを導入する(Android編)」
最初の準備
- AndroidManifest.xmlへの記入
- adlantis.jarを中にぶっこむ
このあたりはAdlantisのマニュアルの通りにやるだけなんで、割愛します。
ただ、adlantis.jarはlibsフォルダにぶっこむ方がいいみたい。
ちなみに今回のはxmlとかは使わない方法となります(xmlではどうやればいいかよくわかんない…)。
メインとなるアクティビティのオーバーライド
cocos2dxでたとえば「Momotaro」ってプロジェクトを作った場合、Momotaro.javaってActivityクラスができてると思うんで(回りくどい言い方だけど要はメインのアクティビティですね)、そこに以下のようにメソッドをオーバーライドする。
(ここではMainActivityとしますね)
public class MainActivity extends Cocos2dxActivity{ /** AdlantisのパブリッシャーID */ private final String adlantisPID = "(パブリッシャーID)"; /** メンバにする必要ないかもだけど、後で表示/非表示とかすると思うんで */ private LinearLayout adlantisView; //ここは別にいじらない protected void onCreate(Bandle savedInstance){ super.onCreate(savedInstance); } //ここも別にいじりません public Cocos2dxGLSurfaceView onCreateView() { ...(省略)... } //ここから追加 @Override public void init(){ super.init(); setAdlantisView(); } /** * Adlantisの広告を表示する * */ private void setAdlantisView(){ //レイアウトの作成 RelativeLayout mainView = new RelativeLayout(this); adlantisView = new LinearLayout(this); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, (int)(50 * getResources().getDisplayMetrics().density)); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); adlantisView.setGravity(Gravity.CENTER_HORIZONTAL); adlantisView.setLayoutParams(layoutParams); //AdlantisViewのインスタンス作成 final AdlantisView adView = new AdlantisView(this); adView.setPublisherID(adlantisPID); //レイアウトに追加 adlantisView.addView(adView , new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, AdlantisUtils.adHeightPixels(this) )); mainView.addView(adlantisView); //viewを追加 this.addContentView(mainView , new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); } //ここまで追加 ...(以下略) }
ちょっと長くなったけど、他の部分はいじらなくてもここだけで問題なさげです。案外簡単。
これでいいのかどうかはわからないけど(どこかに罠がありそう…)、まあとりあえずちゃんと表示されたからまた非表示にして開発すすめよ。
ピンバック: 【iOS版】cocos2d-xでAdlantisのバナー広告を入れる | たそがれブランチ