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


Создание настраиваемой кампании по продвижению приложений

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

Если вы запускаете пользовательские кампании для приложения, вы можете отслеживать относительную производительность каждой кампании, создавая другой URL-адрес для каждой пользовательской кампании, где каждый URL-адрес содержит другой идентификатор кампании. Когда клиент под управлением Windows 10 щелкает URL-адрес, содержащий идентификатор кампании, корпорация Майкрософт связывает щелчк с соответствующей настраиваемой кампанией и делает эти данные доступными для вас в Центре партнеров.

Важный

Эти данные отслеживаются только для клиентов в Windows 10. Клиенты, использующие другие операционные системы, по-прежнему могут следовать ссылке на список вашего приложения, но данные о действиях этих клиентов не будут включены.

Существует два основных типа данных, связанных с пользовательскими кампаниями: просмотры страниц вашей страницы в Магазине, и конверсии. Преобразование — это приобретение приложения, которое является результатом того, что клиент просматривает страницу в Магазине приложений с URL-адреса, включающего пользовательский идентификатор кампании. Дополнительные сведения о преобразованиях см. в разделе Понимание того, как покупки приложений квалифицируются как преобразования в этом разделе.

Вы можете получить пользовательские данные о производительности кампании для приложения следующими способами:

  • Вы можете просматривать данные о просмотрах страниц и конверсиях для вашего приложения или надстройки, используя диаграммы просмотров страниц приложений и конверсий по идентификатору кампании и общих конверсий кампании в отчете о приобретениях.
  • Если ваше приложение является приложением универсальной платформы Windows (UWP), вы можете использовать API в пакете SDK для Windows программным способом для получения пользовательского идентификатора кампании, который привел к преобразованию.

Пример сценария пользовательской кампании

Рассмотрим разработчика игр, которая завершила создание новой игры и хотела бы продвигать её среди игроков своих существующих игр. Она публикует объявление о новом выпуске игры на своей странице Facebook, включая ссылку на список магазина игры. Многие из ее игроков также подписаны на нее в Twitter, поэтому она также публикует объявление со ссылкой на страницу игры в магазине.

Чтобы отслеживать успех каждого из этих каналов продвижения, разработчик создает два варианта URL-адреса в списке магазина игры:

  • URL-адрес, который она будет публиковать на своей странице Facebook, включает настраиваемый идентификатор кампании my-facebook-campaign

  • URL-адрес, который она будет публиковать в Twitter включает пользовательский идентификатор кампании my-twitter-campaign

По мере того как ее подписчики Facebook и Twitter щелкают URL-адреса, Корпорация Майкрософт отслеживает каждый щелчк и связывает его с соответствующей пользовательской кампанией. Последующие квалифицированные приобретения игры и любые покупки дополнений связаны с пользовательской кампанией и учитываются как конверсии.

Общие сведения о том, как приобретения считаются преобразованиями

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

Квалификация преобразований в отчете о приобретениях

Следующие сценарии рассматриваются как конверсии для просмотров страницы приложения и конверсий по ID кампании, а также для диаграммы общих конверсий кампании в отчете о приобретении :

  • Клиент с распознанной учетной записью Майкрософт или без нее щелкает URL-адрес приложения, содержащий пользовательский идентификатор кампании, и перенаправляется в список Магазина для приложения. Затем тот же клиент приобретает приложение в течение 24 часов после того, как впервые щелкнул URL-адрес Microsoft Store с пользовательским идентификатором кампании.

  • Если клиент получает приложение на устройстве, отличном от того, на котором он щелкнул URL-адрес с пользовательским идентификатором кампании, преобразование будет считаться только в том случае, если клиент вошел с той же учетной записью Майкрософт, что и при щелчке URL-адреса.

Заметка

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

Квалификация преобразований при программном получении идентификатора кампании

Чтобы считаться преобразованием при автоматическом получении идентификатора кампании, связанного с приложением, необходимо выполнить следующие условия:

  • На устройстве под управлением Windows 10 версии 1607 или более поздней версии: клиент (независимо от того, вошел ли он в учетную запись Microsoft или нет) щелкает URL-адрес, содержащий пользовательский идентификатор кампании, и перенаправляется на страницу приложения в Магазине. Клиент получает приложение при просмотре списка в Магазине в результате нажатия URL-адреса.

  • На устройстве под управлением Windows 10 версии 1511 или более ранних: клиент (который должен войти с признанной учетной записью Microsoft) нажимает URL-адрес, содержащий пользовательский идентификатор кампании, и перенаправляется на страницу с описанием приложения в Магазине. Клиент получает приложение при просмотре списка в Магазине в результате нажатия URL-адреса. В этих версиях Windows 10 или Windows 11 пользователь должен быть авторизован с помощью учетной записи Майкрософт, чтобы приобретение засчитывалось как конверсия при программном извлечении идентификатора кампании.

Заметка

Если клиент покидает страницу описания Магазина, но возвращается на страницу с 24 часами (либо на одном устройстве, либо на другом устройстве при входе с той же учетной записью Майкрософт) и получает приложение, это будет считаться преобразованием в представлениях страниц приложения и преобразованиях по идентификатору кампании и всего преобразования кампаний диаграммы в отчете приобретения. Однако этот не будет квалифицироваться как преобразование, если вы программно извлекаете идентификатор кампании.

Добавьте пользовательский идентификатор кампании в URL-адрес страницы Microsoft Store вашего приложения

Чтобы создать URL-адрес страницы Microsoft Store для вашего приложения с пользовательским идентификатором кампании:

  1. Создайте строку идентификатора для пользовательской кампании. Эта строка может содержать до 100 символов, хотя мы рекомендуем определить идентификаторы коротких кампаний, которые легко идентифицируются.

Заметка

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

  1. Получите ссылку для страницы вашего приложения в магазине в формате HTML или протокола.

    • Используйте HTML-URL-адрес, если вы хотите, чтобы клиенты могли перейти к веб-списку Магазина на основе вашего приложения в браузере в любой операционной системе. На устройствах с Windows приложение Магазина также запустит и отобразит описание вашего приложения. Этот URL-адрес имеет формат https://apps.microsoft.com/detail/*your app ID*. Например, URL-адрес HTML для Skype https://apps.microsoft.com/detail/9wzdncrfj364. URL-адрес можно найти на странице удостоверения в приложении .

    • Используйте формат протокола, если вы продвигаете приложение из других приложений Windows, работающих на устройстве или компьютере с установленным приложением UWP, или когда вы знаете, что ваши клиенты находятся на устройстве, поддерживающем Microsoft Store. Эта ссылка перейдет непосредственно в список Магазина вашего приложения без открытия браузера. Этот URL-адрес имеет формат ms-windows-store://pdp/?PRODUCTID=*your app id*. Например, URL-адрес протокола для Skype ms-windows-store://pdp/?PRODUCTID=9wzdncrfj364.

  2. Добавьте следующую строку в конец URL-адреса приложения:

    • Для URL-адреса формата HTML добавьте ?cid=*my custom campaign ID*. Например, если Skype вводит идентификатор кампании со значением custom_campaign, новый URL-адрес, включая идентификатор кампании, будет следующим: https://apps.microsoft.com/detail/9wzdncrfj364?cid=custom_campaign.

    • Для URL-адреса формата протокола добавьте &cid=*my custom campaign ID*. Например, если Skype вводит идентификатор кампании со значением custom_campaign, новый URL-адрес протокола, включая идентификатор кампании, будет следующим: ms-windows-store://pdp/?PRODUCTID=9wzdncrfj364&cid=custom_campaign.

Программное получение пользовательского идентификатора кампании для приложения

Если приложение является приложением UWP, вы можете программно получить пользовательский идентификатор кампании, связанный с приобретением приложения, с помощью API в пакете SDK для Windows. Эти API позволяют реализовать множество сценариев аналитики и монетизации. Например, вы можете узнать, приобрел ли текущий пользователь приложение после обнаружения его через кампанию Facebook, а затем настроить интерфейс приложения соответствующим образом. Кроме того, если вы используете стороннего поставщика маркетинга приложений, вы можете отправить данные обратно поставщику.

Эти API возвращают строку идентификатора кампании только в том случае, если клиент щелкнул URL-адрес с внедренным идентификатором кампании, просмотрил страницу Microsoft Store для вашего приложения, а затем получает приложение, не покидая страницу списка в Магазине. Если пользователь покидает страницу, а затем возвращается и получает приложение, это не квалифицироваться как преобразование при использовании этих API.

Существуют различные API для использования в зависимости от версии Windows, на которую предназначено ваше приложение:

  • Windows 10 версии 1607 или более поздней версии: используйте класс StoreContext в пространстве имен Windows.Services.Store. При использовании этого API можно получить пользовательские идентификаторы кампании для любых квалифицированных приобретений, независимо от того, входит ли пользователь с распознанной учетной записью Майкрософт.

  • Windows 10 версии 1511 или более ранней версии: используйте класс CurrentApp в пространстве имен Windows.ApplicationModel.Store. При использовании этого API можно получить только идентификаторы пользовательских кампаний для квалифицированных приобретений, где пользователь вошел в систему с использованием распознанной учетной записи Майкрософт.

Заметка

Хотя пространство имен Windows.ApplicationModel.Store доступно во всех версиях Windows 10 или Windows 11, рекомендуется использовать API в пространстве имен Windows.Services.Store, если приложение предназначено для Windows 10 версии 1607 или более поздней версии. Дополнительные сведения о различиях между этими пространствами имен см. в разделе покупки в приложении и пробные версии. В следующем примере кода показано, как структурировать код для использования обоих API в одном проекте.

Пример кода

В следующем примере кода показано, как получить пользовательский идентификатор кампании. В этом примере используются оба набора API в пространствах имен Windows.Services.Store и Windows.ApplicationModel.Store с помощью адаптивногокода версии. Следуя этому процессу, код может выполняться в любой версии Windows 10 или Windows 11. Чтобы использовать этот код, целевая версия ОС проекта должна быть Юбилейный выпуск Windows 10 (10.0; Сборка 14394) или более поздней версии, хотя минимальная версия ОС может быть более ранней.

// This example assumes the code file has using statements for
// System.Linq, System.Threading.Tasks, Windows.Data.Json,
// and Windows.Services.Store.
public async Task<string> GetCampaignId()
{
    // Use APIs in the Windows.Services.Store namespace if they are available
    // (the app is running on a device with Windows 10, version 1607, or later).
    if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(
         "Windows.Services.Store.StoreContext"))
    {
        StoreContext context = StoreContext.GetDefault();

        // Try to get the campaign ID for users with a recognized Microsoft account.
        StoreProductResult result = await context.GetStoreProductForCurrentAppAsync();
        if (result.Product != null)
        {
            StoreSku sku = result.Product.Skus.FirstOrDefault(s => s.IsInUserCollection);

            if (sku != null)
            {
                return sku.CollectionData.CampaignId;
            }
        }

        // Try to get the campaign ID from the license data for users without a
        // recognized Microsoft account.
        StoreAppLicense license = await context.GetAppLicenseAsync();
        JsonObject json = JsonObject.Parse(license.ExtendedJsonData);
        if (json.ContainsKey("customPolicyField1"))
        {
            return json["customPolicyField1"].GetString();
        }

        // No campaign ID was found.
        return String.Empty;
    }
    // Fall back to using APIs in the Windows.ApplicationModel.Store namespace instead
    // (the app is running on a device with Windows 10, version 1577, or earlier).
    else
    {
#if DEBUG
        return await Windows.ApplicationModel.Store.CurrentAppSimulator.GetAppPurchaseCampaignIdAsync();
#else
        return await Windows.ApplicationModel.Store.CurrentApp.GetAppPurchaseCampaignIdAsync() ;
#endif
    }
}

Этот код выполняет следующие действия:

  1. Сначала он проверяет, доступен ли класс StoreContext в пространстве имен Windows.Services.Store на текущем устройстве (это означает, что устройство работает под управлением Windows 10, версии 1607 или более поздней). Если да, код переходит к использованию этого класса.

  2. Затем он пытается получить пользовательский идентификатор кампании для случая, когда текущий пользователь имеет распознаваемую учетную запись Майкрософт. Для этого код получает объект StoreSku, представляющий текущий номер SKU приложения, а затем получает доступ к свойству CampaignId, чтобы получить идентификатор кампании, если он доступен.

  3. Затем код пытается получить идентификатор кампании для случая, когда текущий пользователь не имеет распознанной учетной записи Майкрософт. В этом случае идентификатор кампании внедряется в лицензию приложения. Код извлекает лицензию с помощью метода GetAppLicenseAsync, а затем анализирует содержимое json лицензии для значения ключа с именем customPolicyField1. Это значение содержит идентификатор кампании.

  4. Если класс StoreContext в пространстве имен Windows.Services.Store недоступна, код возвращается к использованию метода GetAppPurchaseCampaignIdA sync в пространстве имен Windows.ApplicationModel.Store для получения пользовательского идентификатора кампании (это пространство имен доступно во всех версиях Windows 10 или Windows 11). Обратите внимание, что при использовании этого метода можно получить только индивидуальные идентификаторы кампании для квалифицированных приобретений, где у пользователя есть признанная учетная запись Microsoft.

Укажите идентификатор кампании в прокси-файле для пространства имен Windows.ApplicationModel.Store

Пространство имен Windows.ApplicationModel.Store включает в себя CurrentAppSimulator, специальный класс, который имитирует операции Store для тестирования кода перед отправкой приложения в Магазин. Этот класс извлекает данные из локального файла с именем Windows.StoreProxy.xml. В предыдущем примере кода показано, как использовать как CurrentApp, так и CurrentAppSimulator в отладке и коде, отличном от отладки в проекте. Чтобы протестировать этот код в среде отладки, добавьте элемент AppPurchaseCampaignId в файл WindowsStoreProxy.xml на компьютере разработки, как показано в следующем примере. При запуске приложения метод GetAppPurchaseCampaignIdAsync всегда будет возвращать это значение.

<CurrentApp>
    ...
    <AppPurchaseCampaignId>your custom campaign ID</AppPurchaseCampaignId>
</CurrentApp>

Пространство имен Windows.Services.Store не предоставляет класс, который можно использовать для имитации сведений о лицензии во время тестирования. Вместо этого необходимо опубликовать приложение в Магазине и скачать это приложение на устройство разработки, чтобы использовать ее лицензию для тестирования. Для получения дополнительной информации см. раздел встроенные покупки и пробные версии.

Тестирование настраиваемой кампании

Перед продвижением пользовательского URL-адреса кампании рекомендуется протестировать настраиваемую кампанию, выполнив следующие действия.

  1. Войдите в учетную запись Майкрософт на устройстве, которое вы используете для тестирования.

  2. Щелкните URL-адрес пользовательской кампании. Убедитесь, что вы перейдете на страницу приложения, а затем закройте приложение UWP или страницу браузера.

  3. Щелкните URL-адрес еще несколько раз, закрывая приложение UWP или страницу браузера после каждого посещения страницы приложения. Во время один посещений страницы вашего приложения, получите приложение для создания преобразования. Подсчитывайте общее количество раз, когда вы щелкали URL-адрес.

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