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


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

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

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

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

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

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

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

    whatisaninterstitial

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

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

Примечание.

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

Необходимые компоненты

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

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

XAML/.NET

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

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

    Примечание.

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

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

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

    1. В окне Обозреватель решений щелкните правой кнопкой мыши ссылки и выберите "Добавить ссылку...
    2. В диспетчере ссылок разверните универсальные окна, щелкните расширения и установите флажок рядом с пакетом 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. Если вы хотите отобразить промежуточное видео рекламное объявление: примерно 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). Если проект предназначен для любого ЦП, вы не сможете успешно добавить ссылку на библиотеку Microsoft Advertising в следующих шагах. Дополнительные сведения см. в статье Об ошибках ссылок, вызванных назначением любого ЦП в проекте.

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

    1. В окне Обозреватель решений щелкните правой кнопкой мыши ссылки и выберите "Добавить ссылку...
    2. В диспетчере ссылок разверните универсальные окна, щелкните расширения и установите флажок рядом с пакетом SDK Microsoft Advertising для JavaScript (версия 10.0).
    3. В диспетчере ссылок нажмите кнопку "ОК".
  4. <В головном> разделе 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)

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

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

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

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

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

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

    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 . В этом сценарии рекомендуется назначить каждому элементу управления разные рекламные блоки. Использование разных рекламных блоков для каждого элемента управления позволяет отдельно настроить параметры посредника и получить дискретные данные отчетов для каждого элемента управления. Это также позволяет нашим службам лучше оптимизировать рекламу, которая мы обслуживаем вашему приложению.

Внимание

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