広告の UI とユーザー エクスペリエンスのガイドライン
警告
2020 年 6 月 1 日以降、Windows UWP アプリ用の Microsoft の広告の収益化プラットフォームはシャットダウンされます。 詳細情報
この記事では、アプリ内のバナー広告、スポット広告、ネイティブ広告を使って優れたエクスペリエンスを提供するためのガイドラインを示します。 アプリの外観を設計する方法については、「設計および UI」をご覧ください。
重要
アプリ内での広告の使用は、Microsoft Store ポリシーに準拠している必要があります。準拠するポリシーには、ポリシー 10.10 (広告行為と広告コンテンツ) などがありますが、これに限定されるわけではありません。 特に、バナー広告またはスポット広告のアプリの実装は、Microsoft Store policy 10.10.1 の要件を満たしている必要があります。 この記事では、このポリシーに違反する実装の例を示します。 これらの例は、このポリシーの適切な理解を助ける手段として、情報提供のみを目的として提供されています。 これらの例は、すべてを網羅しているわけではありません。ここに記載されていなくても、Microsoft Store ポリシーに違反する例は多数存在する可能性があります。
全般的なベスト プラクティス
この記事のさまざまな種類の広告のガイドラインを確認する前に、まずこれらの一般的なベスト プラクティスを確認し、広告収益を向上させてください。
- 広告の配置を慎重に計画します。 広告ユニットのビューアビリティの最適化に関する関連するガイダンスを参照してください。
- スポット ビデオ広告のフォールバックとしてスポット バナー広告を使用します。
- ユーザーを把握して、より良いターゲット広告を提供します。
- 最新の Advertising ライブラリを使用します。
- アプリの適切な COPPA 設定を設定します。
バナー広告のガイドライン
以下のセクションでは、AdControl を使ってアプリ内でバナー広告を実装する場合の推奨事項と、Microsoft Store ポリシーのポリシー 10.10.1 に違反する実装の例を紹介します。
ベスト プラクティス
アプリにバナー広告を実装するときは、以下のベスト プラクティスに従うことをお勧めします。
デバイスのレイアウトに適合する Interactive Advertising Bureau のサイズを使用します。
アプリの UI のほとんどを機能するコントロールとコンテンツに充てます。
広告をエクスペリエンスに組み込んで設計します。 広告がどのように表示されるかを計画するための広告のサンプルをデザイナーに提供します。 適切に計画されたアプリ内広告の 2 つの例は、コンテンツとしての広告のレイアウトと分割レイアウトです。
さまざまなサイズの広告が、開発およびテスト段階でアプリ内でどのように表示され、どのように機能するかを確認するには、テスト広告ユニット を利用できます。 テストが完了したら、認定を受けるためにアプリを提出する前に、ライブ広告ユニットでアプリを更新することを忘れないでください。
広告が利用できない場合の対応を計画します。 広告がアプリに送信されないタイミングがあります。 ページに広告が表示される場合も、表示されない場合も、適切に表示されるようにページをレイアウトします。 詳しくは、「広告のエラー処理」をご覧ください。
オーバーレイを使って最も効果的に対応できるユーザーへの通知シナリオがある場合、オーバーレイを表示しながら AdControl.Suspend を呼び出し、通知シナリオが完了したら AdControl.Resume を呼び出します。
避けるプラクティス
アプリ内にバナー広告を実装する際は、以下のプラクティスを避けることをお勧めします。
空いている領域に広告を固定しないでください。 広告スペースは、画面上で最初に見つかる空き領域に配置しないでください。 広告スペースはアプリの全体的な設計に組み込む必要があります。
多くの広告を表示してアプリを飽和状態にしないでください。 アプリに表示する広告が多すぎると、アプリの外観と操作性を損ねます。 広告を使って収入を得ることは望んでも、アプリ自体を犠牲にしないでください。
ユーザーが中心的なタスクに集中するのを妨げないでください。 主要な項目は常にアプリに表示されている必要があります。 広告スペースは 2 次的な項目として組み込まれている必要があります。
ポリシー違反の例
このセクションでは、Microsoft Store ポリシーのポリシー 10.10.1 に違反するバナー広告シナリオの例を示します。 これらの例は、このポリシーの適切な理解を助ける手段として、説明目的にのみ提供されています。 これらの例は、すべてを網羅しているわけではありません。ここに記載されていなくても、ポリシー 10.10.1 に違反する例は多数存在する可能性があります。
AdControl の不透明度を変更したり、(最初に AdControl.Suspend を呼び出さずに) AdControlの上に他のコントロールを配置するなど、バナー広告をユーザーが表示する能力を妨げる操作を行う。
ユーザーがアプリでタスクを実行するにはバナーをクリックする必要がある。またはアプリの設計結果として、ユーザーにバナー広告を強制的にクリックさせる。
AdControl オブジェクトのスワップ、またはユーザー操作を伴わない強制的なページ更新など、任意の手段でバナー広告の組み込み最短更新タイマーを回避する。
開発およびテスト時に、またはエミュレーターでライブ広告ユニット (つまり、パートナー センターから取得した広告ユニット) を使用する。
アプリのコンテキストで実行している Microsoft Advertising ライブラリ以外の手段で広告サービスを呼び出すコードを記述または配布する。
ドキュメントに記載されていないインターフェイスや、Microsoft Advertising ライブラリで作成された、WebView や MediaElement などの子オブジェクトを操作する。
広告のサイズを小さくしてビューボックスに配置することにより、通常より多くの広告をページに表示する。
スポット広告のガイドライン
洗練された方法でスポット広告を使うと、ユーザー満足度を損なうことなく、アプリの収益を飛躍的に向上させることができます。 使い方が不適切である場合、ビデオ スポット広告が逆効果になる可能性があります。
以下のセクションでは、InterstitialAd を使ってアプリにビデオ スポット広告やバナー スポット広告を実装する場合の推奨事項と、Microsoft Store ポリシーのポリシー 10.10.1 に違反する実装の例を紹介します。 ポリシーに関連する問題を除き、アプリについて最もよく理解しているのは開発者の皆様であるため、ベスト プラクティスに関する最終的な判断は開発者の皆様に委ねています。 留意する最も重要な点は、アプリの評価と収益が密接に結びついていることです。
ベスト プラクティス
アプリにスポット広告を実装するときは、以下のベスト プラクティスに従うことをお勧めします。
ゲームのレベルの合間など、アプリの自然な流れの中にスポット広告を配置します。
次のように、広告を具体的なメリットに関連付けます。
レベル完了のためのヒント。
レベルを再試行するための追加の時間。
タトゥーや帽子などのカスタム アバター機能。
アプリでビデオ スポット広告を最後まで視聴することを要求する場合は、ユーザーが閉じるボタンを押したときにエラー メッセージに驚かないように、事前にルールを説明しておきます。
可能であれば広告の表示が必要になる 30 ~ 60 秒前に (InterstitialAd.RequestAd を呼び出して) 広告を事前に取得しておきます。
InterstitialAd クラスで公開されている 4 つのイベント (Canceled、Completed、AdReady、ErrorOccurred) をすべてサブスクライブし、それらを使用して、アプリに適切な意思決定を行います。
サーバーが提供する広告の代わりに使用する機能をあらかじめ用意しておきます。 これは次のようなシナリオで役に立ちます。
オフライン モード。広告サーバーにアクセスできない場合。
ErrorOccurred イベントが発生した場合。
ConnectionProfile に基づいてユーザーの帯域幅を節約することを選択する場合、ConnectionProfile クラスに便利な API があります。
他の値に設定する妥当な理由がない限り、既定のタイムアウト (30 秒) を使います。他の値に設定する場合、10 秒未満には設定しないでください。 特に高速接続を利用できない市場では、スポット広告は標準のバナー広告よりもダウンロードにかかる時間が大幅に長くなります。
ユーザーのデータ通信プランに留意してください。 たとえば、データ通信量上限に近づいているモバイル デバイスや上限を超えているモバイル デバイスで、ビデオ スポット広告を表示する前に、何も表示しないか、ユーザーに警告するかを決定します。 ConnectionProfile クラスには、これに役立つ API があります。
最初の申請後に、アプリを継続的に改善します。 広告レポートを確認し、フィル レートとビデオ スポット広告の完了率が向上するように設計を変更します。
避けるプラクティス
アプリ内にスポット広告を実装する際は、以下のプラクティスを避けることをお勧めします。
過剰に表示しないでください。 ユーザーがゲームをプレイするだけでなく、広告についてオプションの具体的なメリットを明確に感じている場合を除き、5 分ごとよりも頻繁に広告を強制的に表示しないでください。
アプリの起動時にスポット広告を表示しないでください。ユーザーは、誤ったタイルをクリックしたと考える可能性があります。
終了時にスポット広告を表示しないでください。 完了率がほぼゼロになるため、これは不適切なインベントリです。
2 つ以上のスポット広告を連続して表示しないでください。 ユーザーは広告の進行状況バーが開始点にリセットされるのを見ると苛立ちを感じます。 多くのユーザーは、これがコーディングまたは広告提供のバグであると考えます。
InterstitialAd.Show を呼び出す 5 分以上前にビデオ スポット広告を取得しないでください。 適切なインベントリでは、事前に取得された広告から請求可能なインプレッションへのコンバージョンが最大化されます。
利用可能な広告がないなど、広告を提供できなかった場合に、ユーザーに不利益をもたらさないようにしてください。 たとえば、[広告を視聴して xxx を取得する] という UI オプションを表示する場合、ユーザーが責任を果たしたら、xxx を提供する必要があります。 2 つのオプションを検討してください。
InterstitialAd.AdReady イベントが発生するまでこのオプションを表示しない。
実際の広告と同じ利点が得られるように、あらかじめ用意された機能をアプリに含める。
マルチプレーヤー ゲームでユーザーが優位性を確保できるようなスポット広告を使用しないでください。 たとえば、スポット広告が表示されると、ファーストパーソン シューティング ゲームで高性能な銃が手に入るような方法でユーザーを惹きつけてはいけません。 プレーヤーのアバターのシャツをカスタマイズ可能にすることは、カモフラージュ機能がなければ問題ありません。
ポリシー違反の例
このセクションでは、Microsoft Store ポリシーのポリシー 10.10.1 に違反するスポット広告シナリオの例を示します。 これらの例は、このポリシーの適切な理解を助ける手段として、説明目的にのみ提供されています。 これらの例は、すべてを網羅しているわけではありません。ここに記載されていなくても、ポリシー 10.10.1 に違反する例は多数存在する可能性があります。
スポット広告コンテナー上に UI 要素を配置する。
ユーザーがアプリを使用している間に InterstitialAd.Show を呼び出す。
スポット広告を使って、通貨として消費できるものや、他のユーザーと取引できるものを取得できるようにする。
InterstitialAd.ErrorOccurred イベントのイベント ハンドラーのコンテキストで新しいスポット広告を要求する。 これにより、無限ループが発生して、広告サービスの操作上の問題の原因となります。
連鎖的な広告の単なるバックアップとして、スポット広告を要求する。 スポット広告を要求し、InterstitialAd.AdReady イベントを受信した場合、アプリに表示できる次のスポット広告は、InterstitialAd.Show メソッド経由で表示できる必要があります。
開発およびテスト時に、またはエミュレーターでライブ広告ユニット (つまり、パートナー センターから取得した広告ユニット) を使用する。
アプリのコンテキストで実行している Microsoft Advertising ライブラリ以外の手段で広告サービスを呼び出すコードを記述または配布する。
ドキュメントに記載されていないインターフェイスや、Microsoft Advertising ライブラリで作成された、WebView や MediaElement などの子オブジェクトを操作する。
ネイティブ広告のガイドライン
ネイティブ広告では、ユーザーに広告コンテンツを表示する方法を非常に細かく制御できます。 次の要件とガイドラインに従って、広告主のメッセージがユーザーに届くようにし、さらにネイティブ広告の混乱するエクスペリエンスがユーザーに提供されないようにします。
ネイティブ広告のコンテナーを登録する
コードで、NativeAdV2 オブジェクトの RegisterAdContainer メソッドを呼び出して、ネイティブ広告のコンテナーとして機能する UI 要素と、必要に応じて広告のクリック可能なターゲットとして登録する特定のコントロールを登録する必要があります。 これは、広告インプレッションと広告クリックを適切に追跡するために必要です。
RegisterAdContainer メソッドには、次の 2 つのオーバーロードを使用できます。
コンテナー全体で個別のネイティブ広告要素をすべてクリック可能にする必要がある場合、RegisterAdContainer(FrameworkElement) メソッドを呼び出して、そのメソッドにコンテナー コントロールを渡します。 たとえば、StackPanel ですべてホストされている個別のコントロールにすべてのネイティブ広告要素を表示し、StackPanel 全体をクリック可能にする必要がある場合、このメソッドに StackPanel を渡します。
特定のネイティブ広告要素のみをクリック可能にする必要がある場合は、RegisterAdContainer(FrameworkElement, IVector(FrameworkElement)) メソッドを呼び出します。 2 つ目のパラメーターに渡すコントロールだけがクリック可能になります。
必須のネイティブ広告要素
少なくとも、ネイティブ広告デザインで、ユーザーに NativeAdV2 オブジェクトのプロパティで提供される次のネイティブ広告要素を常に表示する必要があります。 これらの要素を含めておかないと、広告ユニットのパフォーマンスが低下し収益が少なくなることがあります。
- ネイティブ広告のタイトルを常に表示します (Title プロパティで使用できます)。 25 文字以上表示できる十分な領域を用意します。 タイトルがそれ以上長い場合は、その分のテキストを省略記号で置き換えます。
- 次の要素のうち少なくとも 1 つを常に表示して、ネイティブ広告のエクスペリエンスをアプリの残りの部分と区別し、コンテンツが広告主によって提供されていることを明確に示します。
- 識別できる広告アイコン (AdIcon プロパティで使用できます)。 このアイコンは Microsoft によって提供されます。
- スポンサー テキスト (SponsoredBy プロパティで使用できます)。 このテキストは広告主によって提供されます。
- スポンサー テキストの代わりに、ネイティブ広告エクスペリエンスをアプリの残りの部分と区別する他のテキストとして "スポンサー付きコンテンツ"、"プロモーション コンテンツ"、"おすすめのコンテンツ" などを表示することもできます。
ユーザー側の表示と操作
ネイティブ広告をアプリの残りの部分から明確に線引きして、その周囲に領域を確保することで誤ってクリックされないようにする必要があります。 境界線やさまざまな背景、その他の UI を使って、広告コンテンツをアプリの残りの部分と区別します。 誤って広告がクリックされることは、長い目で見ると広告ベースの収益やエンド ユーザー エクスペリエンスに有益ではないことに注意してください。
説明
広告の説明 (NativeAdV2 オブジェクトの Description プロパティで使用できます) を表示する場合、75 文字以上表示できる十分な領域を用意します。 アニメーションを使って広告の説明の全コンテンツを表示することをお勧めします。
行動喚起
行動喚起テキスト (NativeAdV2 オブジェクトの CallToAction プロパティで使用できます) は、広告の重要なコンポーネントです。 このテキストを表示する場合、次のガイドラインに従います。
- ボタンやハイパーリンクなどのクリック可能なコントロールにユーザーへの行動喚起テキストを常に表示する。
- 行動喚起テキスト全体を常に表示する。
- 行動喚起テキストが、広告主が提供する残りのプロモーション テキストと区別されるようにする。