Google AdMobでの収益っていつの間にかGoogle AdSenseに統合されていたんですね。気付きませんでした。Google AdSenseの商品別集計欄にGoogle AdMobの情報が載っていて驚きました。
さて、Google AdMobの広告をアプリ内に掲載するためには「Google Mobile Ads SDK」を使用します。iOS、Android(Gogole Play)、Windows Phone 8向けにそれぞれSDKが用意されています。
Windows Phone 8で広告を掲載するには、上記のURLから「googlemobileadssdkwindowsphone8.zip」をダウンロードして、zipを解凍してGoogleAds.dllを参照するだけなのですが、表題の通り僕の環境では何故かエラーが発生してしまっていました。
プロジェクトに追加できないエラーを発生させる
参照マネージャーで「GoogleAds.dll」を参照して、OKボタンを押します。
どーん。下図のようにエラーが発生します。
ダイアログには以下のように表示されていました*1。
Microsoft Visual Studio
より新しいバージョンのアセンブリまたは互換性のないアセンブリへの参照は、プロジェクトに追加できません。
英語の場合は、下図のように表示されます。
ダイアログには以下のように表示されています。
Microsoft Visual Studio
A reference to a higher version or incompatible assembly cannot be added to the project.
これのダイアログを見て、「GoogleはVisual Studio 2012でビルドしたdllを作っているので、Visual Studio 2013では使えないんだな」と勝手に判断して、数ヶ月この問題を放置することとなりました……
疑問編
Twitterでたまたまアプリ内広告について話をしている時に、前述したエラー内容の旨をツイートすると、「Visual Studio 2013でGoogle AdMobの広告の表示問題なくできているよ」とリプライを頂きました。
再度、「Visual Studio 2013 Update」と「Google Mobile Ads SDK for Windows Phone 8 v6.5.11」 の組み合わせで試してみるとやはりエラーが発生しました。
エラーダイアログの内容を改めて吟味すると、一昨日リリースされたばかりのVisual Studio 2013 Updateを使っているのに、それよりも新しいバージョンのアセンブリへの参照は、プロジェクトに追加できません。とエラーが発生するのはおかしいのではないかと疑問が湧いてきました。
解決編
原因は、セキュリティブロックが有効になっているのが原因でした。ブロックを解除することでVisual StudioからGoogleAds.dllを参照することができるようになります。
ネイティブのエクスプローラで、GoogleAds.dllを右クリックしてコンテキストメニューを表示させて、プロパティを単託します。
プロパティダイアログの一番下にセキュリティの項目があります。「ブロックを解除」をクリックすれば、GoogleAds.dll を参照することができるようになります。
おわり。
*1:あまり見かけないエラーダイアログのせいなのか和訳がちょっとおかしい気がする