Erstellen einer Werbekampagne für benutzerdefinierte Apps

Zusätzlich zum Erstellen einer Anzeigenkampagne für Ihre App , die in Windows-Apps ausgeführt wird, können Sie Ihre App auch mit anderen Kanälen bewerben. Sie können Ihre App beispielsweise mithilfe eines Drittanbieters für App-Marketing bewerben oder Links zu Ihrer App auf Social Media-Websites veröffentlichen. Diese Aktivitäten werden als benutzerdefinierte Kampagnen bezeichnet.

Wenn Sie benutzerdefinierte Kampagnen für Ihre App ausführen, können Sie die relative Leistung jeder Kampagne nachverfolgen, indem Sie eine andere URL für jede benutzerdefinierte Kampagne erstellen, wobei jede URL eine andere Kampagnen-ID enthält. Wenn ein Kunde mit Windows 10 auf eine URL klickt, die eine Kampagnen-ID enthält, ordnet Microsoft den Klick der entsprechenden benutzerdefinierten Kampagne zu und stellt Diese Daten Ihnen im Partner Center zur Verfügung.

Wichtig

Diese Daten werden nur für Kunden unter Windows 10 nachverfolgt. Kunden, die andere Betriebssysteme verwenden, können weiterhin dem Link zum Eintrag Ihrer App folgen, aber Daten zu den Aktivitäten dieser Kunden werden nicht einbezogen.

Es gibt zwei Haupttypen von Daten, die benutzerdefinierten Kampagnen zugeordnet sind: Seitenansichten für den Store-Eintrag Ihrer App und Konvertierungen. Bei einer Konvertierung handelt es sich um einen App-Kauf, der von einem Kunden resultiert, der die Store-Eintragsseite Ihrer App aus einer URL anzeigt, die eine benutzerdefinierte Kampagnen-ID enthält. Weitere Informationen zu Konvertierungen finden Sie unter Grundlegendes dazu, wie App-Käufe als Konvertierungen in diesem Thema gelten.

Sie können benutzerdefinierte Kampagnenleistungsdaten für Ihre App auf folgende Weise abrufen:

  • Sie können Daten zu Seitenansichten und Konvertierungen für Ihre App oder Ihr Add-On aus den Ansichten und Konvertierungen der App-Seite anzeigen, indem Sie Kampagnen-ID - und Gesamt-Kampagnenkonvertierungsdiagramme im Bericht "Käufe" anzeigen.
  • Wenn Es sich bei Ihrer App um eine Universelle Windows-Plattform (UWP)-App handelt, können Sie APIs im Windows SDK verwenden, um die benutzerdefinierte Kampagnen-ID programmgesteuert abzurufen, die zu einer Konvertierung führte.

Beispielszenario für eine benutzerdefinierte Kampagne

Betrachten Sie einen Spieleentwickler, der das Erstellen eines neuen Spiels abgeschlossen hat, und möchte es für Spieler ihrer vorhandenen Spiele bewerben. Sie veröffentlicht die Ankündigung des neuen Spiels auf ihrer Facebook-Seite, einschließlich eines Links zum Store-Eintrag des Spiels. Viele ihrer Spieler folgen ihr auch auf Twitter, also twittert sie auch eine Ankündigung mit dem Link zum Store-Eintrag des Spiels.

Um den Erfolg jeder dieser Werbekanäle nachzuverfolgen, erstellt der Entwickler zwei Varianten der URL zum Store-Eintrag des Spiels:

  • Die URL, die sie auf ihrer Facebook-Seite posten wird, enthält die benutzerdefinierte Kampagnen-ID. my-facebook-campaign

  • Die URL, die sie auf Twitter posten wird, enthält die benutzerdefinierte Kampagnen-ID. my-twitter-campaign

Wenn ihre Facebook- und Twitter-Follower auf die URLs klicken, verfolgt Microsoft jeden Klick und ordnet sie der entsprechenden benutzerdefinierten Kampagne zu. Nachfolgende qualifizierende Käufe des Spiels und alle Add-On-Käufe werden der benutzerdefinierten Kampagne zugeordnet und als Konvertierungen gemeldet.

Grundlegendes dazu, wie Käufe als Konvertierungen gelten

Bei einer benutzerdefinierten Kampagnenkonvertierung handelt es sich um einen Kauf, der von einem Kunden auf eine URL geklickt wird, die über eine benutzerdefinierte Kampagne heraufgestuft wird. Es gibt verschiedene Szenarien für die Qualifizierung als Konvertierung für die App-Seitenaufrufe und -konvertierungen nach Kampagnen-ID und Gesamt-Kampagnenkonvertierungsdiagrammen im Bericht "Käufe" und für die Qualifizierung als Konvertierung zum programmgesteuerten Abrufen der Kampagnen-ID.

Qualifizieren von Konvertierungen im Bericht "Käufe"

Die folgenden Szenarien gelten als Konvertierung für die Ansichten und Konvertierungen der App-Seite nach Kampagnen-ID und Gesamt-Kampagnenkonvertierungen im Bericht "Käufe":

  • Ein Kunde mit oder ohne ein erkanntes Microsoft-Konto klickt auf eine App-URL, die eine benutzerdefinierte Kampagnen-ID enthält und an den Store-Eintrag für die App umgeleitet wird. Anschließend erwirbt derselbe Kunde die App innerhalb von 24 Stunden, nachdem er zuerst auf die Microsoft Store-URL mit der benutzerdefinierten Kampagnen-ID geklickt hat.

  • Wenn der Kunde die App auf einem anderen Gerät erwirbt als auf das Gerät, auf das er mit der benutzerdefinierten Kampagnen-ID geklickt hat, wird die Konvertierung nur gezählt, wenn der Kunde mit demselben Microsoft-Konto angemeldet ist wie beim Klicken auf die URL.

Hinweis

Bei App-Käufen, die als Konvertierungen für eine benutzerdefinierte Kampagne gezählt werden, werden alle Add-On-Käufe in dieser App auch als Konvertierungen für dieselbe benutzerdefinierte Kampagne gezählt.

Qualifizieren von Konvertierungen beim programmgesteuerten Abrufen der Kampagnen-ID

Um beim programmgesteuerten Abrufen der Kampagnen-ID, die der App zugeordnet ist, als Konvertierung zu qualifizieren, müssen die folgenden Bedingungen erfüllt sein:

  • Auf einem Gerät mit Windows 10, Version 1607 oder höher: Ein Kunde (ob bei einem erkannten Microsoft-Konto angemeldet oder nicht) klickt auf eine URL, die eine benutzerdefinierte Kampagnen-ID enthält und zur Store-Eintragsseite für die App umgeleitet wird. Der Kunde erwirbt die App beim Anzeigen des Store-Eintrags als Ergebnis des Klickens auf die URL.

  • Auf einem Gerät mit Windows 10, Version 1511 oder einer früheren Version: Ein Kunde (der mit einem erkannten Microsoft-Konto angemeldet sein muss) klickt auf eine URL, die eine benutzerdefinierte Kampagnen-ID enthält und zur Store-Eintragsseite für die App umgeleitet wird. Der Kunde erwirbt die App beim Anzeigen des Store-Eintrags als Ergebnis des Klickens auf die URL. Bei diesen Versionen von Windows 10 oder Windows 11 muss der Benutzer mit einem anerkannten Microsoft-Konto angemeldet sein, damit der Erwerb als Konvertierung qualifiziert wird, wenn die Kampagnen-ID programmgesteuert abgerufen wird.

Hinweis

Wenn der Kunde die Store-Eintragsseite verlässt, aber mit 24 Stunden zur Seite zurückkehrt (entweder auf demselben Gerät oder auf einem anderen Gerät, wenn er mit demselben Microsoft-Konto angemeldet ist) und die App erwirbt, gilt dies als Konvertierung in den App-Seitenansichten und -konvertierungen nach Kampagnen-ID und Gesamt-Kampagnenkonvertierungsdiagrammen im Bericht "Käufe". Dies gilt jedoch nicht als Konvertierung, wenn Sie die Kampagnen-ID programmgesteuert abrufen.

Einbetten einer benutzerdefinierten Kampagnen-ID in die Microsoft Store-Seiten-URL Ihrer App

So erstellen Sie eine Microsoft Store-Seiten-URL für Ihre App mit einer benutzerdefinierten Kampagnen-ID:

  1. Erstellen Sie eine ID-Zeichenfolge für Ihre benutzerdefinierte Kampagne. Diese Zeichenfolge kann bis zu 100 Zeichen enthalten, es wird jedoch empfohlen, kurze Kampagnen-IDs zu definieren, die leicht identifizierbar sind.

Hinweis

Die Kampagnen-ID-Zeichenfolge kann für andere Entwickler sichtbar sein, wenn sie den Bericht "Käufe" für ihre Apps anzeigen. Dies kann auftreten, wenn ein Kunde auf Ihre benutzerdefinierte Kampagnen-ID klickt, um den Store einzugeben und die App eines anderen Entwicklers innerhalb derselben Sitzung zu erwerben, wodurch diese Konvertierung ihrer Kampagnen-ID zugewiesen wird. Dieser Entwickler wird sehen, wie viele Konvertierungen ihrer eigenen App aus einem anfänglichen Klick auf Ihre Kampagnen-ID resultierten, einschließlich des Namens der Kampagnen-ID, aber sie sehen keine Daten darüber, wie viele Benutzer Ihre eigenen Apps (oder Apps von anderen Entwicklern erworben haben), nachdem Sie auf Ihre Kampagnen-ID geklickt haben.

  1. Rufen Sie den Link für den Store-Eintrag Ihrer App im HTML- oder Protokollformat ab.

    • Verwenden Sie die HTML-URL, wenn Kunden in einem Browser auf jedem Betriebssystem zum webbasierten Store-Eintrag Ihrer App navigieren sollen. Auf Windows-Geräten wird die Store-App auch den Eintrag Ihrer App starten und anzeigen. Diese URL weist das Format https://www.microsoft.com/store/apps/*your app ID*auf. Die HTML-URL für Skype lautet https://www.microsoft.com/store/apps/9wzdncrfj364z. B. . Sie finden diese URL auf Ihrer App-Identitätsseite .

    • Verwenden Sie das Protokollformat, wenn Sie Ihre App aus anderen Windows-Apps bewerben, die auf einem Gerät oder Computer mit der installierten UWP-App ausgeführt werden, oder wenn Sie wissen, dass Ihre Kunden auf einem Gerät sind, das den Microsoft Store unterstützt. Dieser Link wechselt direkt zum Store-Eintrag Ihrer App, ohne einen Browser zu öffnen. Diese URL weist das Format ms-windows-store://pdp/?PRODUCTID=*your app id*auf. Die Protokoll-URL für Skype lautet ms-windows-store://pdp/?PRODUCTID=9wzdncrfj364z. B. .

  2. Fügen Sie die folgende Zeichenfolge am Ende der URL für Ihre App an:

    • Fügen Sie für eine HTML-Format-URL an ?cid=*my custom campaign ID*. Wenn z. B. Skype eine Kampagnen-ID mit dem Wert custom_campaign einführt, lautet die neue URL einschließlich der Kampagnen-ID: https://www.microsoft.com/store/apps/skype/9wzdncrfj364?cid=custom\_campaign.

    • Fügen Sie für eine Protokollformat-URL an &cid=*my custom campaign ID*. Wenn z. B. Skype eine Kampagnen-ID mit dem Wert custom_campaign einführt, lautet die neue Protokoll-URL einschließlich der Kampagnen-ID: ms-windows-store://pdp/?PRODUCTID=9wzdncrfj364&cid=custom\_campaign.

Programmgesteuertes Abrufen der benutzerdefinierten Kampagnen-ID für eine App

Wenn Es sich bei Ihrer App um eine UWP-App handelt, können Sie die benutzerdefinierte Kampagnen-ID programmgesteuert abrufen, die dem Erwerb einer App zugeordnet ist, indem Sie APIs im Windows SDK verwenden. Diese APIs ermöglichen viele Analyse- und Monetarisierungsszenarien. Sie können z. B. herausfinden, ob der aktuelle Benutzer Ihre App erworben hat, nachdem sie über Ihre Facebook-Kampagne entdeckt wurde, und dann die App-Erfahrung entsprechend anpassen. Alternativ können Sie, wenn Sie einen Drittanbieter für App-Marketing verwenden, Daten an den Anbieter zurücksenden.

Diese APIs geben nur dann eine Kampagnen-ID-Zeichenfolge zurück, wenn der Kunde mit der eingebetteten Kampagnen-ID auf Ihre URL geklickt hat, die Microsoft Store-Seite für Ihre App angezeigt und dann Ihre App erwirbt, ohne die Store-Eintragsseite zu verlassen. Wenn der Benutzer die Seite verlässt und dann später die App zurückgibt und erwirbt, gilt dies bei verwendung dieser APIs nicht als Konvertierung .

Es gibt unterschiedliche APIs, die Sie je nach Der Version von Windows verwenden können, auf die Ihre App ausgerichtet ist:

  • Windows 10, Version 1607 oder höher: Verwenden Sie die StoreContext-Klasse im Windows.Services.Store-Namespace . Wenn Sie diese API verwenden, können Sie benutzerdefinierte Kampagnen-IDs für qualifizierte Käufe abrufen, unabhängig davon, ob der Benutzer mit einem erkannten Microsoft-Konto angemeldet ist.

  • Windows 10, Version 1511 oder früher: Verwenden Sie die CurrentApp-Klasse im Windows.ApplicationModel.Store-Namespace . Bei Verwendung dieser API können Sie nur benutzerdefinierte Kampagnen-IDs für qualifizierte Käufe abrufen, bei denen der Benutzer mit einem erkannten Microsoft-Konto angemeldet ist.

Hinweis

Obwohl der Windows.ApplicationModel.Store-Namespace in allen Versionen von Windows 10 oder Windows 11 verfügbar ist, empfehlen wir, die APIs im Windows.Services.Store Namespace zu verwenden, wenn Ihre App auf Windows 10, Version 1607 oder höher ausgerichtet ist. Weitere Informationen zu den Unterschieden zwischen diesen Namespaces finden Sie unter In-App-Käufe und Testversionen. Das folgende Codebeispiel zeigt, wie Sie Ihren Code so strukturieren, dass beide APIs im selben Projekt verwendet werden.

Codebeispiel

Das folgende Codebeispiel zeigt, wie die benutzerdefinierte Kampagnen-ID abgerufen wird. In diesem Beispiel werden sowohl APIs im Windows.Services.Store als auch Windows.ApplicationModel.Store Namespaces mithilfe von versionsadaptiven Code verwendet. Wenn Sie diesem Prozess folgen, kann Ihr Code auf einer beliebigen Version von Windows 10 oder Windows 11 ausgeführt werden. Um diesen Code zu verwenden, muss die Zielbetriebssystemversion Ihres Projekts Windows 10 Anniversary Edition (10.0) sein . Build 14394) oder höher, obwohl die Mindestversion des Betriebssystems eine frühere Version sein kann.

// 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
    }
}

Dieser Code bewirkt Folgendes:

  1. Zunächst wird überprüft, ob die StoreContext-Klasse im Windows.Services.Store-Namespace auf dem aktuellen Gerät verfügbar ist (dies bedeutet, dass das Gerät Windows 10, Version 1607 oder höher ausführt). Wenn dies der Fall ist, verwendet der Code diese Klasse.

  2. Als Nächstes wird versucht, die benutzerdefinierte Kampagnen-ID für den Fall abzurufen, dass der aktuelle Benutzer über ein erkanntes Microsoft-Konto verfügt. Dazu ruft der Code ein StoreSku-Objekt ab, das die aktuelle App-SKU darstellt, und greift dann auf die CampaignId-Eigenschaft zu, um die Kampagnen-ID abzurufen, sofern vorhanden.

  3. Der Code versucht dann, die Kampagnen-ID für den Fall abzurufen, in dem der aktuelle Benutzer nicht über ein erkanntes Microsoft-Konto verfügt. In diesem Fall ist die Kampagnen-ID in die App-Lizenz eingebettet. Der Code ruft die Lizenz mithilfe der GetAppLicenseAsync-Methode ab und analysiert dann den JSON-Inhalt der Lizenz für den Wert eines Schlüssels namens customPolicyField1. Dieser Wert enthält die Kampagnen-ID.

  4. Wenn die StoreContext-Klasse im Windows.Services.Store-Namespace nicht verfügbar ist, greift der Code dann auf die Verwendung der GetAppPurchaseCampaignIdAsync-Methode im Windows.ApplicationModel.Store Namespace zurück, um die benutzerdefinierte Kampagnen-ID abzurufen (dieser Namespace ist in allen Versionen von Windows 10 oder Windows 11 verfügbar). Beachten Sie, dass Sie bei Verwendung dieser Methode nur benutzerdefinierte Kampagnen-IDs für qualifizierte Käufe abrufen können, bei denen der Benutzer über ein erkanntes Microsoft-Konto verfügt.

Angeben der Kampagnen-ID in der Proxydatei für den Windows.ApplicationModel.Store Namespace

Der Windows.ApplicationModel.Store-Namespace enthält CurrentAppSimulator, eine spezielle Klasse, die Store-Vorgänge zum Testen Des Codes simuliert, bevor Sie Ihre App an den Store übermitteln. Diese Klasse ruft Daten aus einer lokalen Datei mit dem Namen Windows.StoreProxy.xml Datei ab. Im vorherigen Codebeispiel wird gezeigt, wie Sie sowohl CurrentApp als auch CurrentAppSimulator in Debug- und Nicht-Debug-Code in Ihr Projekt einbeziehen. Um diesen Code in einer Debugumgebung zu testen, fügen Sie der WindowsStoreProxy.xml Datei auf Ihrem Entwicklungscomputer ein AppPurchaseCampaignId-Element hinzu, wie im folgenden Beispiel gezeigt. Wenn Sie die App ausführen, gibt die GetAppPurchaseCampaignIdAsync-Methode immer diesen Wert zurück.

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

Der Namespace Windows.Services.Store stellt keine Klasse zum Simulieren von Lizenzinformationen während der Testphase bereit. Stattdessen müssen Sie eine App im Store veröffentlichen und diese App auf Ihr Entwicklungsgerät herunterladen, um die Lizenz zum Testen zu verwenden. Weitere Informationen finden Sie unter In-App-Käufe und Testversionen.

Testen Ihrer benutzerdefinierten Kampagne

Bevor Sie eine benutzerdefinierte Kampagnen-URL bewerben, sollten Sie Ihre benutzerdefinierte Kampagne wie folgt testen:

  1. Melden Sie sich bei einem Microsoft-Konto auf dem Gerät an, das Sie zum Testen verwenden.

  2. Klicken Sie auf Ihre benutzerdefinierte Kampagnen-URL. Stellen Sie sicher, dass Sie zu Ihrer App-Seite weitergeleitet werden, und schließen Sie dann die UWP-App oder die Browserseite.

  3. Klicken Sie mehrmals auf die URL, indem Sie die UWP-App oder die Browserseite nach jedem Besuch der App-Seite schließen. Erwerben Sie während eines der Besuche auf der Seite Ihrer App Ihre App, um eine Konvertierung zu generieren. Zählen Sie die Gesamtzahl der Male, mit denen Sie auf die URL geklickt haben.

  4. Vergewissern Sie sich, ob die erwarteten Seitenaufrufe und -konvertierungen in den Ansichten und Konvertierungen der App-Seite nach Kampagnen-ID und Gesamt-Kampagnenkonvertierungen im Bericht "Käufe" angezeigt werden, und testen Sie den Code Ihrer App, um zu überprüfen, ob sie die Kampagnen-ID mithilfe der oben beschriebenen APIs erfolgreich abrufen kann.