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

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

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

Важно!

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

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

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

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

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

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

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

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

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

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

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

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

Соответствующие преобразования в отчете о приобретениях

Следующие сценарии считаются конверсией на диаграммах Число просмотров и конверсий страницы приложения по идентификатору кампании и Общее количество конверсий в ходе кампании в Отчете о приобретениях .

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

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

Примечание

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

Правила подсчета конверсий при программном получении идентификатора кампании

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

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

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

Примечание

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

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

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

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

Примечание

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

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

    • Используйте URL-ссылку в формате HTML, если вы хотите, чтобы пользователи переходили на страницу с описанием вашего приложения в Магазине, используя браузер в любой операционной системе. На устройствах с Windows приложение Магазина также запустит и отобразит страницу вашего приложения. Этот URL-адрес имеет формат https://www.microsoft.com/store/apps/*your app ID*. Например, URL-адрес в формате HTML для Skype — https://www.microsoft.com/store/apps/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://www.microsoft.com/store/apps/skype/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 в пакете Windows SDK. Эти API позволяют использовать многие сценарии аналитики и монетизации. Например, вы можете узнать, получил ли текущий пользователь ваше приложение, найдя его через кампанию в Facebook, а затем настроить соответствующим образом взаимодействие с пользователем в своем приложении. Кроме того, если вы используете стороннего поставщика услуг маркетинга приложений, вы можете предоставить ему эти данные.

Эти API возвратят строку идентификатора кампании, только если пользователь щелкнул ваш URL-адрес со встроенным идентификатором кампании, просмотрел страницу Microsoft Store для вашего приложения, а затем приобрел ваше приложение, не закрывая страницу с описанием в 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 Anniversary Edition (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 недоступен, код возвращается к использованию метода GetAppPurchaseCampaignIdAsync в пространстве имен Windows.ApplicationModel.Store для получения пользовательского идентификатора кампании (это пространство имен доступно во всех версиях Windows 10 или Windows 11). Обратите внимание, что при использовании этого метода вы можете получить идентификаторы пользовательских кампаний для соответствующих приобретений только при наличии у пользователя актуальной учетной записи Майкрософт.

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

Пространство имен Windows.ApplicationModel.Store содержит CurrentAppSimulator, специальный класс, имитирующий операции Магазина для тестирования кода перед отправкой приложения в Магазин. Этот класс получает данные из локального файла с именем 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.