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

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

С 1 июня 2020 г. платформа монетизации Microsoft Ad для приложений UWP для Windows будет отключена. Подробнее

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

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

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

  • Рекламу Paywall пользователь обязан смотреть с определенной регулярной периодичностью, например между разными уровнями игры:

    whatisaninterstitial

  • Реклама за вознаграждения отображается тогда, когда пользователь намеренно ищет определенные преимущества, например подсказку или дополнительное время для прохождения уровня, и запускает рекламу из пользовательского интерфейса приложения.

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

Примечание

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

Предварительные требования

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

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

XAML/.NET

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

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

    Примечание

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

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

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

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

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

    Примечание

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

    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. Если вы хотите показать межстраничную видеорекламу, используйте метод RequestAd приблизительно за 30–60 секунд до того, как она должна отобразиться, чтобы предварительно получить рекламное объявление. Этого времени будет достаточно для того, чтобы запросить и подготовить рекламное объявление до его отображения. Не забудьте указать AdType.Video для этого типа рекламы.

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

    Если вы хотите показать межстраничный баннер, используйте метод RequestAd приблизительно за 5–8 секунд до того, как он должен отобразиться, чтобы предварительно получить рекламное объявление. Этого времени будет достаточно для того, чтобы запросить и подготовить рекламное объявление до его отображения. Обязательно укажите 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

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

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

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

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

    1. В Обозревателе решений щелкните правой кнопкой мыши элемент Ссылки и выберите Добавить ссылку....
    2. В Диспетчере ссылок разверните раздел Универсальная платформа Windows, нажмите Расширения и выберите флажок рядом с Microsoft Advertising SDK для 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. Если вы хотите показать межстраничную видеорекламу, используйте метод RequestAd приблизительно за 30–60 секунд до того, как она должна отобразиться, чтобы предварительно получить рекламное объявление. Этого времени будет достаточно для того, чтобы запросить и подготовить рекламное объявление до его отображения. Не забудьте указать InterstitialAdType.video для этого типа рекламы.

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

    Если вы хотите показать межстраничный баннер, используйте метод RequestAd приблизительно за 5–8 секунд до того, как он должен отобразиться, чтобы предварительно получить рекламное объявление. Этого времени будет достаточно для того, чтобы запросить и подготовить рекламное объявление до его отображения. Не забудьте указать 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)

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

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

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

    1. В Обозревателе решений щелкните правой кнопкой мыши элемент Ссылки и выберите Добавить ссылку....
    2. В Диспетчере ссылок разверните раздел Универсальная платформа Windows, нажмите Расширения и выберите флажок рядом с SDK Microsoft Advertising для 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. Если вы хотите показать межстраничную видеорекламу, используйте метод RequestAd приблизительно за 30–60 секунд до того, как она должна отобразиться, чтобы предварительно получить рекламное объявление. Этого времени будет достаточно для того, чтобы запросить и подготовить рекламное объявление до его отображения. Не забудьте указать AdType::Video для типа рекламы.

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

    Если вы хотите показать межстраничный баннер, используйте метод RequestAd приблизительно за 5–8 секунд до того, как он должен отобразиться, чтобы предварительно получить рекламное объявление. Этого времени будет достаточно для того, чтобы запросить и подготовить рекламное объявление до его отображения. Не забудьте указать 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, и рекламных объявлений для кампаний по продвижению приложения Microsoft.

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

  5. Отправьте приложение в Магазин с помощью Центра партнеров.

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

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

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

Важно!

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