はじめに
2017年2月1日よりはじまっているnendの収益2倍キャンペーン。フルボード広告というのも初めて聞きましたが、おもしろそうな広告だったので入れてみることにしました。1時間もあれば実装できるんですが、つまらないことでハマって半日かかってしまったので、ここに記録しておきます。
実装方法
めちゃくちゃ簡単です。というか公式にあるサンプルがまんま使えます。(SpotIdとApiKeyは変える必要があります)
https://github.com/fan-ADN/nendSDK-Unity/blob/master/NendUnitySample/Assets/Scripts/FullBoardController.cs
やはりハマったその1
サンプルを流用していればよいのですが、SDKのドキュメントそのままで実装するとハマるポイントがあります(ハマってからサンプルの存在に気づいたorz)
こちらのSDKマニュアルを参考に実装すると、UNITY_EDITORのケースが考慮されていません。
https://github.com/fan-ADN/nendSDK-Unity/wiki/%E3%83%95%E3%83%AB%E3%83%9C%E3%83%BC%E3%83%89%E5%BA%83%E5%91%8A
m_fullBoardAd = NendAdFullBoard.NewFullBoardAd ("your spot id", "your api key");
ここの処理は、UNITY_EDITORだとnullが返ってきます。nendはUNITY_EDITOR上で動かす試すことができません。サンプルと同様にnullチェックを入れる必要があります。
やはりハマったその2
実機で動かすと、AdFailedToLoadがコールバックされていました。エラーのタイプはFailedAdRequest
でした。
FullBoardAdErrorType.FailedAdRequest
ApiKeyが間違っているのかなーと何度も確認しましたが、怪しいところはないし、ググってもヒットしないし困りましたが、こういうときはやっぱり公式ドキュメント。ちゃんと書いてありました。
端末の言語設定が日本語以外になっていないか
言語設定(日本語以外)によっては配信可能な広告の在庫がないために受信エラーになる場合があります
英語でデバッグするために言語設定を英語にしていました。日本語に変更したところ無事表示できました。
実行する端末の言語設定によって広告が表示できない場合があるので、Loadに失敗したケースを考慮して実装しておく必要があります。
今回のアプリは絶賛配信中です(nendの実装は近日公開予定)
配信:
iOS: https://itunes.apple.com/jp/app/id1189800250
Android: https://play.google.com/store/apps/details?id=com.keepgamesimple.rollingsphere