「ブラックバスを釣ろう」で、以前からやろうやろうと思っていたAdmobのメディエーションを導入してみました。
下記リンクがわかりやすいです。
テクノード鎌田社長に聞いた!ゼロから分かるAdMobメディエーションツール導入方法 http://android.dtmm.co.jp/development/32475
が、落とし穴が3つありました。
その1 クラスが見つからないと怒られる。
結論から言うと、Admob側のClass Nameの設定ではパッケージ名を頭に付けないとダメなようです。さもないと、
Error during processing of custom event with label: ‘ラベル名’.
Skipping custom event. Make sure you created a visible class named: クラス名
というエラーを吐き、カスタムイベントを拾うことができませんでした。これは上記の記事を参考にした人のほとんどがはまることろではないでしょうか。
その2 リリースモードでビルド時、Proguardで難読化するとエラーが出る。
その1の修正を入れて無事カスタムイベントを拾って広告が表示されることを確認し、リリースビルドでも一応確認してみると、下記のようなログを吐いて見事にこけていました。
Unexpected Server Option: parameter = ‘サーバーパラメータ’
これは、下記をproguard.cfgに一行追加するだけで解決しました。
-keepattributes *Annotation*
その3 リリースモードでビルド時、Proguardで難読化すると、また、その1と同様のエラーを吐く。
これが一番はまりました。最初はadmobのjarファイルに含まれているクラスを一生懸命難読化除外していたのですが、一向に変わらず。
しばらく悩んでいたところ、自分が作ったカスタムイベント用のクラスが難読化されていることに気づき、下記をproguard.cfgに追記。
-keep class パッケージ名.MyAd {
<init>(…);
*;
}
これで、ようやく正常に動きました。
Hi, i come frome Taiwan.
This is help me very much.