UWP で広告配信仲介機能のある AdMediatorControl を使いたい
Xamarin アプリ用のアプリロゴを生成するツール開発も佳境に差し掛かり、ついにアプリ内に広告を埋め込む段階に来ました
少し前までは Microsoft Advertising SDK では AdControl というコントロールを使ってストアアプリに広告を表示していたと思いますが、新しく AdMediatorControl が増えていました
以前の AdControl では下記のようにアプリケーション ID と広告ユニット ID を直接プロパティに指定していました
<ad:AdControl xmlns:ad="using:Microsoft.Advertising.WinRT.UI" ApplicationId="d25517cb-12d4-4699-8bdc-52040c712cab" AdUnitId="10043121" Width="300" Height="250"/>
テスト中とリリース後の広告表示を切り替えたり(テスト中にバンバン本番広告表示すると怒られる;)、リリース後に配信広告の設定を切り替えるということがやりにくいです
これが AdMediatorControl の場合は、アプリケーション ID や広告ユニット ID は外部から設定し、上記の設定は間接的に注入するため、代わりに ID や Name を指定して各コントロールの区別するようになっています
<adm:AdMediatorControl xmlns:adm="using:Microsoft.AdMediator.Universal" x:Name="Ad1" Id="Ad1" Width="300" Height="250"/>
設定自体はプロジェクト内に含める AdMediator.config に記述するようですが、ストアにリリース後にアプリパッケージの更新なしにこの設定を変更することができるようです
また、現在は UWP 用の広告提供は Microsoft Advertising だけですが、将来的に AdDuplex など他の広告ネットワークからの配信を選択できるらしく、この仕組みを称して広告仲介と呼んでいるようですね
というわけで、デバック実行で UWP に AdMediatorControl のテスト広告を表示するまでを試してみました
まずは SDK のインストール
上記からインストーラをダウンロードしてインストールします
インストールが終わったら Visual Studio 2015 を開いて対象の UWP プロジェクトを読み込み、Microsoft Advetising の2つのライブラリ参照を追加
ライブラリを追加したら広告を表示したい場所に下記のように XAML で AdMediatorControl を追加します
<adm:AdMediatorControl x:Name="Ad_BackgroundSettings" Id="Ad_BackgroundSettings" Grid.Column="4" Grid.Row="3" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="320" Height="50"/>
x:Name と Id は必須みたいですが任意の一意な名称ならなんでもよさそうです
次にソリューションエクスプローラーで「接続済みサービス」を選んでダイアログを開きます
「Ad Mediator」を選択して「構成」ボタンで次へ
AdDuplex も表示されていますが、2015/10/12 現在公式では UWP サポートせずと記載があったので、今回は Microsoft Advertising を選択し、右の「構成」リンクを押下
デスクトップ用、モバイル用に設定がわかれており、アプリケーション ID はすべての AdMediatorControl で共通、広告ユニット ID は先ほど AdMediatorControl に指定した x:Name の値を目安に何を指定するかここで設定できます
今回はテストなので下記サイトを参考にテスト用の収益の発生しないアプリケーション ID と広告ユニット ID を指定しました
Windows 10 Advertising SDK Walkthrough
ここまで設定したら UWP を起動!
テスト用の MSN 広告が右下に表示されました!