Поделиться через


Межстраничные объявления

Предупреждение

По состоянию на 1 июня 2020 г., платформа Microsoft Ad для монетизации приложений Windows UWP будет прекращена. Дополнительные сведения

В этом пошаговом руководстве показано, как включить межстраничные объявления в приложения и игры универсальной платформы Windows (UWP) для Windows 10 и Windows 11. Полные примеры проектов, демонстрирующих добавление интерстициальных объявлений в приложения JavaScript/HTML и XAML на языке C# и C++, смотрите в рекламных примерах на GitHub.

Что такое межстраничные объявления?

В отличие от стандартных рекламных баннеров, которые ограничиваются частью пользовательского интерфейса в приложении или игре, промежуточные объявления отображаются на всем экране. В играх часто используются две основные формы.

  • С рекламами paywall пользователь должен смотреть объявления через регулярные интервалы. Например, между уровнями игры:

    whatisaninterstitial

  • При использовании Rewards Based рекламы пользователь явно ищет некоторое преимущество, например указание или дополнительное время для завершения уровня, инициализирует объявление через пользовательский интерфейс приложения.

Мы предоставляем два типа промежуточных объявлений для использования в приложениях и играх: межстраничные видеоролики и промежуточные баннеры.

Заметка

API для промежуточных объявлений не обрабатывает пользовательский интерфейс, кроме во время воспроизведения видео. Ознакомьтесь с лучшими практиками использования межстраничных объявлений , чтобы узнать, что рекомендуется делать и чего избегать, когда вы решаете, как интегрировать межстраничные объявления в приложение.

Необходимые условия

Интеграция межстраничного объявления в приложение

Чтобы отобразить межстраничные объявления в приложении, следуйте инструкциям по типу проекта:

XAML/.NET

В этом разделе приведены примеры C#, но Visual Basic и C++ также поддерживаются для проектов XAML/.NET. Полный пример кода C# см. в разделе Пример кода межстраничного объявления в C#.

  1. Откройте проект в Visual Studio.

    Заметка

    Если вы используете существующий проект, откройте файл Package.appxmanifest в проекте и удостоверьтесь, что выбрана возможность Интернет (клиент). Вашему приложению нужна эта возможность для получения тестовой рекламы и живой рекламы.

  2. Если проект предназначен для любойЦП, обновите проект, чтобы использовать выходные данные сборки для конкретной архитектуры (например, x86). Если проект предназначен для любой платформы, вы не сможете успешно добавить ссылку на рекламную библиотеку Microsoft на следующих этапах. Дополнительные сведения см. в разделе Справочные ошибки, вызванные использованием любого ЦП в проекте.

  3. Добавьте ссылку на пакет SDK Microsoft Advertising в проекте:

    1. В окне Обозреватель решений щелкните правой кнопкой мыши на элементе Referencesи выберите Добавить ссылку…
    2. В диспетчере ссылокразверните универсальные приложения Windows, щелкните расширения, а затем установите флажок рядом с пакетом SDK Microsoft Advertising для XAML (версия 10.0).
    3. В Диспетчере ссылокнажмите кнопку "ОК".
  4. В соответствующем файле кода в приложении (например, в MainPage.xaml.cs или файле кода для другой страницы) добавьте следующую ссылку на пространство имен.

    using Microsoft.Advertising.WinRT.UI;
    
  5. В соответствующем расположении приложения (например, на MainPage или другой странице) объявите объект InterstitialAd и несколько строковых полей, представляющих идентификатор приложения и идентификатор рекламного блока для промежуточного объявления. Следующий пример кода назначает тестовые значения полям myAppId и myAdUnitId для интерстициальных объявлений.

    Заметка

    Каждый InterstitialAd имеет соответствующий рекламный блок, который используется нашими службами для показа рекламы в системе, и каждый рекламный блок состоит из идентификатора рекламного блока и ID приложения. На этих этапах вы назначаете идентификатор тестового рекламного блока и значения идентификатора приложения вашему контролу. Эти значения теста можно использовать только в тестовой версии приложения. Перед публикацией приложения в магазине приложений необходимо заменить эти тестовые значения на актуальные значения из Центра партнеров.

    InterstitialAd myInterstitialAd = null;
    string myAppId = "d25517cb-12d4-4699-8bdc-52040c712cab";
    string myAdUnitId = "test";
    
  6. В коде, который выполняется при запуске (например, в конструкторе страницы), создайте экземпляр объекта InterstitialAd и подключите обработчики событий для событий объекта.

    myInterstitialAd = new InterstitialAd();
    myInterstitialAd.AdReady += MyInterstitialAd_AdReady;
    myInterstitialAd.ErrorOccurred += MyInterstitialAd_ErrorOccurred;
    myInterstitialAd.Completed += MyInterstitialAd_Completed;
    myInterstitialAd.Cancelled += MyInterstitialAd_Cancelled;
    
  7. Если вы хотите отобразить промежуточное видео объявление: за 30–60 секунд до того, как вам потребуется объявление, используйте метод RequestAd для предварительной загрузки объявления. Это позволяет достаточно времени запрашивать и подготавливать объявление перед его показом. Обязательно укажите AdType.Video для типа рекламы.

    myInterstitialAd.RequestAd(AdType.Video, myAppId, myAdUnitId);
    

    Если вы хотите отобразить промежуточное баннерное объявление: примерно за 5–8 секунд до того, как вам понадобится объявление, используйте метод RequestAd, чтобы предварительно загрузить объявление. Это позволяет достаточно времени запрашивать и подготавливать объявление перед его показом. Обязательно укажите AdType.Display для типа рекламы.

    myInterstitialAd.RequestAd(AdType.Display, myAppId, myAdUnitId);
    
  8. В коде, где вы хотите отобразить промежуточное видео или промежуточное баннерное объявление, убедитесь, что InterstitialAd готов к отображению, а затем показать его с помощью метода Show.

    if (InterstitialAdState.Ready == myInterstitialAd.State)
    {
        myInterstitialAd.Show();
    }
    
  9. Определите обработчики событий для объекта InterstitialAd.

    void MyInterstitialAd_AdReady(object sender, object e)
    {
        // Your code goes here.
    }
    
    void MyInterstitialAd_ErrorOccurred(object sender, AdErrorEventArgs e)
    {
        // Your code goes here.
    }
    
    void MyInterstitialAd_Completed(object sender, object e)
    {
        // Your code goes here.
    }
    
    void MyInterstitialAd_Cancelled(object sender, object e)
    {
        // Your code goes here.
    }
    
  10. Создайте и протестируйте приложение, чтобы подтвердить, что она отображает тестовые объявления.

HTML/JavaScript

В следующих инструкциях предполагается, что вы создали универсальный проект Windows для JavaScript в Visual Studio и нацелены на определенный ЦП. Полный пример кода см. в разделе Пример кода межстраничного объявления в JavaScript.

  1. Откройте проект в Visual Studio.

  2. Если ваш проект предназначен для любого процессора, обновите его, чтобы использовать результаты сборки, специфичные для архитектуры (например, x86). Если ваш проект нацелен на Any CPU, вы не сможете успешно добавить ссылку на библиотеку Microsoft Advertising на следующих этапах. Дополнительные сведения см. в разделе Справочные ошибки, вызванные использованием любого ЦП в проекте.

  3. Добавьте ссылку на пакет SDK Microsoft Advertising в проекте:

    1. В окне Обозреватель решений щелкните правой кнопкой мыши "Ссылки"и выберите "Добавить ссылку..."
    2. В Reference Managerразверните Universal Windows, щелкните Extensions, а затем установите флажок рядом с Microsoft Advertising SDK for JavaScript (версия 10.0).
    3. В Диспетчере ссылокнажмите "ОК".
  4. В разделе <head> HTML-файла проекта, после ссылок на JavaScript, default.css и default.jsдобавьте ссылку на ad.js.

    <script src="//Microsoft.Advertising.JavaScript/ad.js"></script>
    
  5. В файле .js вашего проекта создайте объект InterstitialAd и несколько полей, содержащих идентификатор приложения и идентификатор рекламного блока для межстраничного объявления. Следующий пример кода назначает поля applicationId и adUnitId значениям теста для промежуточных объявлений.

    Заметка

    Каждый InterstitialAd имеет соответствующий рекламный блок, который используется нашими сервисами для показов рекламы в контроллере. Каждый рекламный блок состоит из идентификатора рекламного блока и идентификатора приложения. На этих шагах вы назначаете значения тестового идентификатора рекламного блока и идентификатора приложения для вашей настройки. Эти значения теста можно использовать только в тестовой версии приложения. Перед публикацией приложения в Магазине необходимо заменить эти тестовые значения динамическими значениями из Центра партнеров.

    var interstitialAd = null;
    var applicationId = "d25517cb-12d4-4699-8bdc-52040c712cab";
    var adUnitId = "test";
    
  6. В коде, который выполняется при запуске (например, в конструкторе страницы), создайте экземпляр объекта InterstitialAd и подключите обработчики событий для этого объекта.

    interstitialAd = new MicrosoftNSJS.Advertising.InterstitialAd();
    interstitialAd.onErrorOccurred = errorOccurredHandler;
    interstitialAd.onAdReady = adReadyHandler;
    interstitialAd.onCancelled = cancelledHandler;
    interstitialAd.onCompleted = completedHandler;
    
  7. Если вы хотите показать межстраничную видео рекламу: за 30-60 секунд до того, как вам понадобится реклама, используйте метод RequestAd, чтобы предварительно её запросить. Это позволяет достаточно времени запрашивать и подготавливать объявление перед его показом. Не забудьте указать InterstitialAdType.video для типа рекламы.

    if (interstitialAd) {
        interstitialAd.requestAd(MicrosoftNSJS.Advertising.InterstitialAdType.video, applicationId, adUnitId);
    }
    

    Если вы хотите отобразить межстраничное баннерное объявление: за 5–8 секунд до того, как вам понадобится объявление, используйте метод RequestAd, чтобы предварительно загрузить объявление. Это позволяет достаточно времени запрашивать и подготавливать объявление перед его показом. Обязательно укажите InterstitialAdType.display для типа рекламы.

    if (interstitialAd) {
        interstitialAd.requestAd(MicrosoftNSJS.Advertising.InterstitialAdType.display, applicationId, adUnitId);
    }
    
  8. В коде, где вы хотите отобразить объявление, убедитесь, что InterstitialAd готов к отображению, а затем покажите его с помощью метода Show.

    if (interstitialAd && interstitialAd.state === MicrosoftNSJS.Advertising.InterstitialAdState.ready) {
        interstitialAd.show();
    }
    
  9. Определите обработчики событий для объекта InterstitialAd.

    function adReadyHandler(sender) {
      // Your code goes here.
    }
    
    function errorOccurredHandler(sender, args) {
      // Your code goes here.
    }
    
    function completedHandler(sender) {
      // Your code goes here.
    }
    
    function cancelledHandler(sender) {
      // Your code goes here.
    }
    
  10. Создайте и протестируйте приложение, чтобы подтвердить, что она отображает тестовые объявления.

C++ (Интероп с DirectX)

В этом примере предполагается, что вы создали в Visual Studio проект приложения C++ DirectX и XAML App (Универсальная платформа Windows) и нацелили его на конкретную архитектуру процессора.  

  1. Откройте проект в Visual Studio.

  2. Добавьте ссылку на пакет SDK Microsoft Advertising в проекте:

    1. В окне "Обозреватель решений" щелкните правой кнопкой мыши по разделу "Справки"и выберите "Добавить справку..."
    2. В Reference Managerразверните Universal Windows, щелкните расширения, а затем установите флажок рядом с Microsoft Advertising SDK для XAML (версия 10.0).
    3. В диспетчера ссылокнажмите кнопку "ОК".
  3. В соответствующем файле заголовка для приложения (например, DirectXPage.xaml.h) объявите объект InterstitialAd и связанные методы обработчика событий.

    Microsoft::Advertising::WinRT::UI::InterstitialAd^ m_interstitialAd;
    void OnAdReady(Object^ sender, Object^ args);
    void OnAdCompleted(Object^ sender, Object^ args);
    void OnAdCancelled(Object^ sender, Object^ args);
    void OnAdError(Object^ sender, Microsoft::Advertising::WinRT::UI::AdErrorEventArgs^ args);
    
  4. В одном файле заголовка объявите несколько строковых полей, представляющих идентификатор приложения и идентификатор рекламного блока для промежуточного объявления. Следующий пример кода присваивает полям myAppId и myAdUnitId тестовые значения для промежуточных объявлений.

    Заметка

    Каждое InterstitialAd имеет соответствующий рекламный блок, который используется нашими службами для показа рекламы для элемента управления, и каждый рекламный блок состоит из идентификатора рекламного блока и идентификатора приложения. На этих этапах вы назначаете значения тестового идентификатора рекламного блока и идентификатора приложения для вашего элемента управления. Эти значения теста можно использовать только в тестовой версии приложения. Перед публикацией приложения в Магазине необходимо заменить эти тестовые значения динамическими значениями из Центра партнеров.

    Platform::String^ myAppId = L"d25517cb-12d4-4699-8bdc-52040c712cab";
    Platform::String^ myAdUnitId = L"test";
    
  5. В файле .cpp, где вы хотите добавить код для показа промежуточной рекламы, укажите следующую ссылку на пространство имен. В следующих примерах предполагается, что код добавляется в файл DirectXPage.xaml.cpp в приложении.

    using namespace Microsoft::Advertising::WinRT::UI;
    
  6. В коде, который выполняется при запуске (например, в конструкторе страницы), создайте экземпляр объекта InterstitialAd и подключите обработчики для событий объекта. В следующем примере InterstitialAdSamplesCpp — это пространство имен для проекта; измените это имя при необходимости в коде.

    m_interstitialAd = ref new InterstitialAd();         
    m_interstitialAd->AdReady += ref new Windows::Foundation::EventHandler<Platform::Object ^>
        (this, &InterstitialAdSamplesCpp::DirectXPage::OnAdReady);
    m_interstitialAd->Completed += ref new Windows::Foundation::EventHandler<Platform::Object ^>
        (this, &InterstitialAdSamplesCpp::DirectXPage::OnAdCompleted);
    m_interstitialAd->Cancelled += ref new Windows::Foundation::EventHandler<Platform::Object ^>
        (this, &InterstitialAdSamplesCpp::DirectXPage::OnAdCancelled);
    m_interstitialAd->ErrorOccurred += ref new
        Windows::Foundation::EventHandler<Microsoft::Advertising::WinRT::UI::AdErrorEventArgs ^>
        (this, &InterstitialAdSamplesCpp::DirectXPage::OnAdError);
    
  7. Если вы хотите отобразить промежуточное видео объявление: приблизительно 30–60 секунд, прежде чем вам потребуется межстраничного объявления, используйте метод RequestAd, чтобы предварительно получить объявление. Это позволяет достаточно времени запрашивать и подготавливать объявление перед его показом. Обязательно укажите AdType::Video для типа рекламы.

    m_interstitialAd->RequestAd(AdType::Video, myAppId, myAdUnitId);
    

    Если вы хотите отобразить промежуточное баннер объявление: примерно 5–8 секунд, прежде чем вам потребуется объявление, используйте метод RequestAd, чтобы предварительно получить объявление. Это позволяет достаточно времени запрашивать и подготавливать объявление перед его показом. Обязательно укажите AdType::Display для типа рекламы.

    m_interstitialAd->RequestAd(AdType::Display, myAppId, myAdUnitId);
    
  8. В том месте вашего кода, где вы хотите отобразить объявление, убедитесь, что InterstitialAd готов к показу, а затем используйте метод Show, чтобы его отобразить.

    if ((InterstitialAdState::Ready == m_interstitialAd->State))
    {
        m_interstitialAd->Show();
    }
    
  9. Определите обработчики событий для объекта InterstitialAd.

    void DirectXPage::OnAdReady(Object^ sender, Object^ args)
    {
        // Your code goes here.
    }
    
    
    void DirectXPage::OnAdCompleted(Object^ sender, Object^ args)
    {
        // Your code goes here.
    }
    
    void DirectXPage::OnAdCancelled(Object^ sender, Object^ args)
    {
        // Your code goes here.
    }
    
    void DirectXPage::OnAdError(Object^ sender, Microsoft::Advertising::WinRT::UI::AdErrorEventArgs^ args)
    {
        // Your code goes here.
    }
    
  10. Создайте и протестируйте приложение, чтобы подтвердить, что она отображает тестовые объявления.

Выпуск приложения с помощью динамических объявлений

  1. Убедитесь, что использование межстраничных объявлений в приложении следует нашим рекомендациям по межстраничным объявлениям.

  2. В Центре партнеров перейдите на страницу рекламы в приложении и создайтерекламного блока. Для типа рекламного блока выберите видео промежуточная реклама или баннерная промежуточная рекламав зависимости от типа отображаемой промежуточной рекламы. Запишите идентификатор рекламного блока и идентификатор приложения.

    Заметка

    Значения идентификатора приложения для тестовых рекламных единиц и динамических рекламных единиц UWP имеют разные форматы. Тестовые значения идентификаторов приложения — это идентификаторы GUID. При создании динамического рекламного блока UWP в Центре партнеров значение идентификатора приложения для рекламного блока всегда совпадает с идентификатором Магазина для вашего приложения (например, значение идентификатора магазина выглядит как 9NBLGGH4R315).

  3. Вы можете дополнительно включить рекламную медиацию для InterstitialAd, настроив параметры в разделе настроек медиации на странице встроенной рекламы. Рекламный посредник позволяет максимально увеличить доход от рекламы и возможности продвижения приложений, отображая рекламу из нескольких рекламных сетей, включая рекламу из других платных рекламных сетей, таких как Taboola и Smaato, а также объявления для рекламных кампаний по продвижению приложений Майкрософт.

  4. В коде замените тестовые значения единиц рекламы динамическими значениями, созданными в Центре партнеров.

  5. Отправьте ваше приложение в магазин, используя Центр партнеров.

  6. Просмотрите отчеты о производительности рекламы в Центре партнеров.

Управление рекламными блоками для нескольких межстраничных рекламных блоков в приложении

Вы можете использовать несколько элементов управления InterstitialAd в одном приложении. В этом сценарии рекомендуется назначить каждому элементу управления разные рекламные блоки. Использование разных единиц рекламы для каждого элемента управления позволяет отдельно настроить параметры посредника и получить дискретные данные отчетов для каждого элемента управления. Это также позволяет нашим службам лучше оптимизировать рекламу, которую мы показываем вашему приложению.

Важный

Каждый рекламный блок можно использовать только в одном приложении. Если вы используете рекламный блок в нескольких приложениях, объявления не будут показываться для этого рекламного блока.