カスタム アプリ プロモーション キャンペーンの作成

Windows アプリで実行されるアプリの ad キャンペーン を作成するだけでなく、他のチャネルを使用してアプリを昇格することもできます。 たとえば、サードパーティのアプリ マーケティング プロバイダーを使用してアプリを宣伝したり、ソーシャル メディア サイトにアプリへのリンクを投稿したりできます。 これらのアクティビティは、 カスタム キャンペーンと呼ばれます。

アプリに対してカスタム キャンペーンを実行する場合は、各 URL に異なる campaign ID が含まれるカスタム キャンペーンごとに異なる URL を作成することで、各キャンペーンの相対的なパフォーマンスを追跡。 Windows 10 を実行しているユーザーがキャンペーン ID を含む URL をクリックすると、Microsoft により対応するカスタム キャンペーンに関連付けられ、そのデータがパートナー センターで使用できるようになります。

重要

このデータは、Windows 10 のお客様に対してのみ追跡されます。 他のオペレーティング システムを使用しているユーザーは、引き続きアプリの一覧へのリンクをフォローできますが、それらの顧客のアクティビティに関するデータは含まれません。

カスタム キャンペーンには、 ページ ビュー、アプリの Store 登録情報の変換の 2 種類のデータが関連付けられています。 コンバージョンとは、顧客がカスタム キャンペーン ID を含む URL からアプリのストア登録情報ページを表示した結果のアプリの取得です。 コンバージョンの詳細については、このトピックの「 アプリの取得がコンバージョンとしてどのように修飾されるかを理解する を参照してください。

アプリのカスタム キャンペーンのパフォーマンス データは、次の方法で取得できます。

  • アプリやアドオンのページ ビューとコンバージョンに関するデータは、[取得] レポートで、[キャンペーン ID ごとのアプリ ページ ビューとコンバージョン] グラフと [キャンペーンのコンバージョン合計] グラフから確認できます。
  • アプリが ユニバーサル Windows プラットフォーム (UWP) アプリの場合は、Windows SDK の API を使用して、コンバージョンの結果として得られたカスタム キャンペーン ID をプログラムで取得できます。

カスタム キャンペーン シナリオの例

新しいゲームの構築を完了し、既存のゲームのプレイヤーに昇格したいと考えているゲーム開発者を考えてみましょう。 彼女は、ゲームの Store 登録情報へのリンクを含め、Facebook ページに新しいゲーム リリースの発表を投稿します。 彼女のプレイヤーの多くは Twitter でもフォローしているため、ゲームの Store 登録情報へのリンクを含むお知らせもツイートしています。

これらの各プロモーション チャネルの成功を追跡するために、開発者はゲームの Store 登録情報への URL の 2 つのバリエーションを作成します。

  • Facebook のページに投稿する URL には、カスタム キャンペーン ID my-facebook-campaign を含めます。

  • Twitter に投稿する URL には、カスタム キャンペーン ID my-twitter-campaign を含めます。

Facebook と Twitter のフォロワーが URL をクリックすると、Microsoft は各クリックを追跡し、対応するカスタム キャンペーンに関連付けます。 その後の対象となるゲームの獲得とアドオン購入は、カスタム キャンペーンに関連付けられ、コンバージョンとして報告されます。

獲得がコンバージョンとしてどのように適格かを理解する

カスタム キャンペーン コンバージョン は、カスタム キャンペーンを介して昇格された URL を顧客がクリックした結果の取得です。 [取得] レポート[キャンペーン ID ごとのアプリ ページ ビューとコンバージョン][キャンペーンのコンバージョン合計] グラフでコンバージョンであると認められるシナリオと、プログラムによってキャンペーン ID を取得した場合にコンバージョンであると認められるシナリオは異なります。

取得レポートでの変換の修飾

次のシナリオは、Acquisitions レポートの App ページ ビューとキャンペーン ID 別のコンバージョンおよび Total キャンペーンコンバージョン グラフのコンバージョンとして適用されます

  • 顧客 認識された Microsoft アカウントの有無にかかわらず カスタム キャンペーン ID を含むアプリの URL をクリックし、アプリの Store 登録情報にリダイレクトされます。 その後、同じ顧客がカスタム キャンペーン ID を持つ Microsoft Store URL を最初にクリックしてから 24 時間以内にアプリを取得します。

  • ユーザーがカスタム キャンペーン ID で URL をクリックしたデバイスとは別のデバイスでアプリを取得した場合、顧客が URL をクリックしたときと同じ Microsoft アカウントでサインインしている場合にのみ、コンバージョンがカウントされます。

Note

カスタム キャンペーンのコンバージョンとしてカウントされるアプリの取得の場合、そのアプリ内のすべてのアドオン購入も、同じカスタム キャンペーンのコンバージョンとしてカウントされます。

プログラムでキャンペーン ID を取得するときのコンバージョンの条件を満たす

アプリに関連付けられているキャンペーン ID をプログラムで取得するときにコンバージョンとして認定するには、次の条件を満たす必要があります。

  • Windows 10 バージョン 1607 以降を実行しているデバイスで: 顧客 (認識された Microsoft アカウントにサインインしているかどうかに関係なく) は、カスタム キャンペーン ID を含む URL をクリックし、アプリのストア登録情報ページにリダイレクトされます。 顧客は、URL をクリックした結果としてストア登録情報を表示しているときにアプリを取得します。

  • Windows 10 バージョン 1511 以前を実行しているデバイスで: ユーザー (認識された Microsoft アカウントでサインインする必要があります) は、カスタム キャンペーン ID を含む URL をクリックし、アプリのストア登録情報ページにリダイレクトされます。 顧客は、URL をクリックした結果としてストア登録情報を表示しているときにアプリを取得します。 これらのバージョンの Windows 10 または Windows 11 では、プログラムによってキャンペーン ID を取得するときに、取得がコンバージョンとして認定されるためには、認識された Microsoft アカウントでユーザーがサインインしている必要があります。

Note

顧客が Store 登録情報ページを離れる場合、 ただし、24 時間 (同じデバイス上または同じ Microsoft アカウントでサインインしている場合は別のデバイス) でページに戻り、アプリを取得すると、このキャンペーン ID による App ページ ビューとコンバージョンおよび Total キャンペーンコンバージョンAcquisitions レポートのグラフでのコンバージョンとして修飾されます。 ただし、プログラムでキャンペーン ID を取得する場合このはコンバージョンとして修飾されません。

アプリの Microsoft Store ページ URL にカスタム キャンペーン ID を埋め込む

カスタム キャンペーン ID を使用してアプリの Microsoft Store ページ URL を作成するには:

  1. カスタム キャンペーンの ID 文字列を作成します。 この文字列には最大 100 文字を含めることができますが、簡単に識別できる短いキャンペーン ID を定義することをお勧めします。

Note

アプリの Acquisitions レポート を表示すると、キャンペーン ID 文字列が他の開発者に表示される場合があります。 これは、顧客がカスタム キャンペーン ID をクリックしてストアに入り、同じセッション内で別の開発者のアプリを購入した場合に発生する可能性があるため、そのコンバージョンをキャンペーン ID に結び付けます。 その開発者は、キャンペーン ID の最初のクリックによって発生した独自のアプリのコンバージョン数 (キャンペーン ID の名前を含む) を確認できますが、キャンペーン ID をクリックした後に、自分のアプリ (または他の開発者のアプリ) を購入したユーザーの数に関するデータは表示されません。

  1. アプリの Store 登録情報のリンクを HTML またはプロトコル形式で取得します。

    • ユーザーが任意のオペレーティング システム上のブラウザーでアプリの Web ベースのストア登録情報に移動する場合は、HTML URL を使用します。 Windows デバイスでは、ストア アプリも起動して、アプリの登録情報を表示します。 この URL の形式は https://www.microsoft.com/store/apps/*your app ID*。 たとえば、Skype の HTML URL は https://www.microsoft.com/store/apps/9wzdncrfj364。 この URL は、 App ID ページで確認できます。

    • UWP アプリがインストールされているデバイスまたはコンピューターで実行されている他の Windows アプリ内からアプリを昇格させる場合、または顧客が Microsoft Store をサポートするデバイス上にあることがわかっている場合は、プロトコル形式を使用します。 このリンクは、ブラウザーを開かずにアプリの Store 登録情報に直接移動します。 この URL の形式は ms-windows-store://pdp/?PRODUCTID=*your app id*。 たとえば、Skype のプロトコル URL は ms-windows-store://pdp/?PRODUCTID=9wzdncrfj364

  2. アプリの URL の末尾に次の文字列を追加します。

    • HTML 形式の URL の場合は、 ?cid=*my custom campaign ID*追加します。 たとえば、Skype でキャンペーン ID の値が custom_campaign であるキャンペーンを紹介する場合、このキャンペーン ID を含む新しい URL は https://www.microsoft.com/store/apps/skype/9wzdncrfj364?cid=custom\_campaign になります。

    • プロトコル形式の URL の場合は、 &cid=*my custom campaign ID*を追加します。 たとえば、Skype でキャンペーン ID の値が custom_campaign であるキャンペーンを紹介する場合、このキャンペーン ID を含む新しいプロトコル URL は ms-windows-store://pdp/?PRODUCTID=9wzdncrfj364&cid=custom\_campaign になります。

プログラムによってアプリのカスタム キャンペーン ID を取得する

アプリが UWP アプリの場合は、Windows SDK の API を使用して、アプリの取得に関連付けられているカスタム キャンペーン ID をプログラムで取得できます。 これらの API を使用すると、多くの分析と収益化のシナリオが可能になります。 たとえば、現在のユーザーが Facebook キャンペーンを通じてアプリを検出した後にアプリを取得したかどうかを確認し、それに応じてアプリのエクスペリエンスをカスタマイズできます。 または、サードパーティのアプリ マーケティング プロバイダーを使用している場合は、プロバイダーにデータを返送できます。

これらの API は、顧客がキャンペーン ID が埋め込まれた URL をクリックし、アプリの Microsoft Store ページを表示した後、ストア登録情報ページを離れずにアプリを取得した場合にのみ、キャンペーン ID 文字列を返します。 ユーザーがページを離れ、後でアプリを返して取得した場合、これらの API を使用する場合変換としてされません。

アプリが対象とする Windows のバージョンに応じて、使用する API は異なります。

  • Windows 10 バージョン 1607 以降: Windows.Services.Store名前空間の StoreContext クラスを使用します。 この API を使用する場合、ユーザーが認識された Microsoft アカウントでサインインしているかどうかに関係なく修飾された取得のカスタム キャンペーン ID を取得できます。

  • Windows 10 バージョン 1511 以前: Windows.ApplicationModel.Store名前空間で CurrentApp クラスを使用します。 この API を使用する場合は、ユーザーが認識された Microsoft アカウントでサインインしている 限定された取得 のカスタム キャンペーン ID のみを取得できます。

Note

Windows.ApplicationModel.Store名前空間は Windows 10 または Windows 11 のすべてのバージョンで使用できますが、アプリが Windows 10 バージョン 1607 以降を対象とする場合は、Windows.Services.Store名前空間で API を使用することをお勧めします。 これらの名前空間の違いについて詳しくは、「アプリ内購入と試用版」をご覧ください。 次のコード例は、同じプロジェクトで両方の API を使用するようにコードを構造化する方法を示しています。

コードの例

次のコード例は、カスタム キャンペーン ID を取得する方法を示しています。 この例では、version アダプティブ コードを使用して、Windows.Services.StoreWindows.ApplicationModel.Storeの両方の API セットを使用します。 このプロセスに従うことで、任意のバージョンの Windows 10 または Windows 11 でコードを実行できます。 このコードを使用するには、プロジェクトのターゲット OS バージョンが Windows 10 Anniversary Edition (10.0;ビルド 14394) 以降。ただし、最小 OS バージョンは以前のバージョンにすることができます。

// 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. 最初に、Windows.Services.Store名前空間の StoreContext クラスが現在のデバイスで使用できるかどうかを確認します (つまり、デバイスは Windows 10 バージョン 1607 以降を実行しています)。 その場合、コードはこのクラスの使用に進みます。

  2. 次に、現在のユーザーが認識された Microsoft アカウントを持っている場合のカスタム キャンペーン ID の取得を試みます。 これを行うために、コードは現在のアプリ SKU を表す StoreSku オブジェクトを取得し、 CampaignId プロパティにアクセスしてキャンペーン ID (使用可能な場合) を取得します。

  3. その後、コードは、現在のユーザーが認識された Microsoft アカウントを持っていない場合のキャンペーン ID の取得を試みます。 この場合、キャンペーン ID はアプリ ライセンスに埋め込まれます。 このコードでは、 GetAppLicenseAsync メソッドを使用してライセンスを取得し、ライセンスの JSON コンテンツを解析して、 customPolicyField1 という名前のキーの値を取得します。 この値にはキャンペーン ID が含まれます。

  4. Windows.Services.Store名前空間の StoreContext クラスを使用できない場合、コードは Windows.ApplicationModel.Store 名前空間の GetAppPurchaseCampaignIdAsync メソッドを使用してカスタム キャンペーン ID を取得します (この名前空間は、Windows 10 または Windows 11 のすべてのバージョンで使用できます)。 この方法を使用する場合は、ユーザーが認識された Microsoft アカウントを持っている限定取得のカスタム キャンペーン ID のみを取得できることに注意してください。

Windows.ApplicationModel.Store 名前空間のプロキシ ファイルでキャンペーン ID を指定する

Windows.ApplicationModel.Store名前空間には、CurrentAppSimulator、ストアにアプリを送信する前にコードをテストするためのストア操作をシミュレートする特別なクラスが含まれています。 このクラスは、Windows.StoreProxy.xml ファイルという名前ローカル ファイルからデータを取得します。 前のコード例では、 CurrentAppCurrentAppSimulator の両方をプロジェクトのデバッグ コードと非デバッグ コードに含める方法を示します。 デバッグ環境でこのコードをテストするには、次の例に示すように、 AppPurchaseCampaignId 要素を開発用コンピューター上のWindowsStoreProxy.xml ファイルに追加します。 アプリを実行すると、 GetAppPurchaseCampaignIdAsync メソッドは常にこの値を返します。

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

Windows.Services.Store 名前空間には、テスト中にライセンス情報をシミュレートするために使用できるクラスは用意されていません。 代わりに、アプリをストアに発行し、そのアプリを開発デバイスにダウンロードして、そのライセンスをテストに使用する必要があります。 詳しくは、「アプリ内購入と試用版」をご覧ください。

カスタム キャンペーンをテストする

カスタム キャンペーン URL を宣伝する前に、次の手順を実行してカスタム キャンペーンをテストすることをお勧めします。

  1. テストに使用しているデバイス上の Microsoft アカウントにサインインします。

  2. カスタム キャンペーン URL をクリックします。 アプリ ページが表示されていることを確認し、UWP アプリまたはブラウザー ページを閉じます。

  3. URL をもう数回クリックし、アプリのページにアクセスするたびに UWP アプリまたはブラウザー ページを閉じます。 アプリのページへのアクセスの 1 つ、アプリを取得して変換を生成します。 URL をクリックした回数の合計をカウントします。

  4. [取得] レポート[キャンペーン ID ごとのアプリ ページ ビューとコンバージョン] グラフと [キャンペーンのコンバージョン合計] グラフで、予想されるページ ビュー数とコンバージョン数が示されるかどうかを確認します。また、アプリのコードをテストして、上記の API を使ってキャンペーン ID が正しく取得されるかどうかを確認します。