例外をキャッチする方法を見つけて、実際に問題が何であるかを確認しました (これは、マニフェスト ファイルに大量の機能がありませんでした)。AdControl から例外をキャッチして必要なデータを取得するために、次のコードをページに追加しました。
広告制御エラーをキャッチ
public MainPage()
{
InitializeComponent();
AdUnit.ErrorOccurred += AdUnit_ErrorOccurred;
}
void AdUnit_ErrorOccurred(object sender, Microsoft.Advertising.AdErrorEventArgs e)
{
throw new NotImplementedException();
}
MEDIALIB 権限と PHONDIALER 権限がないことがわかりました。いくつかのテストを行った結果、広告を実行するアプリには次の権限が必要であることがわかりました。
必要な権限
ID_CAP_IDENTIFY_USER
ID_CAP_MEDIALIB_PHOTO
ID_CAP_NETWORKING
ID_CAP_PHONEDIALER
ID_CAP_WEBBROWSERCOMPONENT
パラメータの設定
私が読んだ他の投稿から、広告ユニットの幅/高さを適切に 480/80 に設定することも重要です。自動で最小寸法がない場合、広告は表示されません。
エミュレーターで表示するには、 test ApplicationId と AdUnitIdのみを使用できることを確認してください。PubCenter の資格情報は、公開されたアプリケーションでのみ機能します。
<UI:AdControl x:Name="AdUnit" Height="80" Width="480"
AdUnitId="Image480_80" ApplicationId="test_client" />
失敗した/空の広告コントロールを非表示または交換
AdControl が失敗すると、広告に大きな空白が残ります。非表示にするか、別のネットワークの広告と入れ替えることができます。これを行うには、上記 ( AdUnit_ErrorOccurred
) に示すように例外をキャッチし、以下を追加します。
隠れる:
AdUnit.Height = 0;
AdUnit.Visibility = System.Windows.Visibility.Collapsed;
可視性の設定はそれ自体では機能しませんでした。高さも 0 に設定する必要があります。
スワップ広告:
AdControl を非表示にする代わりに、http://www.adduplex.comなどのサービスから別の広告バーを表示できます。