Creare una campagna promozionale personalizzata per le app
Oltre a creare una campagna pubblicitaria per l'app che verrà eseguita nelle app di Windows, è possibile promuovere l'app usando altri canali. Ad esempio, si può promuovere l'app usando un provider di marketing di app di terze parti oppure pubblicare collegamenti all'app nei siti di social media. Queste attività sono denominate campagne personalizzate.
Se si eseguono campagne personalizzate per l'app, è possibile tenere traccia delle prestazioni relative di ogni campagna creando un URL diverso per ogni campagna personalizzata, in cui ogni URL contiene un ID campagna diverso. Quando un cliente che esegue Windows 10 fa clic su un URL contenente un ID campagna, Microsoft associa il clic alla campagna personalizzata corrispondente e rende disponibili questi dati nel Centro per i partner.
Importante
Questi dati vengono rilevati solo per i clienti in Windows 10. I clienti che usano altri sistemi operativi possono comunque seguire il collegamento alla presentazione dell'app, ma i dati sulle attività di tali clienti non verranno inclusi.
Esistono due tipi principali di dati associati alle campagne personalizzate: visualizzazioni di pagina per la presentazione nello Store dell'app e conversioni. Una conversione è un'acquisizione di app risultante da un cliente che visualizza la pagina di presentazione nello Store dell'app da un URL che include un ID campagna personalizzato. Per altre informazioni sulle conversioni, vedere Informazioni su come le acquisizioni di app sono qualificate come conversioni in questo argomento.
È possibile recuperare i dati sulle prestazioni delle campagne personalizzate per l'app nei modi seguenti:
- È possibile visualizzare i dati sulle visualizzazioni pagina e sulle conversioni per l'app o il componente aggiuntivo dalle Visualizzazioni e conversioni delle pagine dell'app in base all'ID campagna e i grafici delle Conversioni totali delle campagne nel Report acquisizioni.
- Se l'app è un'app UWP (piattaforma UWP (Universal Windows Platform)), è possibile usare le API in Windows SDK per recuperare a livello di codice l'ID campagna personalizzata che ha generato una conversione.
Scenario di campagna personalizzata di esempio
Considerare una sviluppatrice di giochi che abbia completato la creazione di un nuovo gioco e voglia promuoverlo ai giocatori dei suoi giochi esistenti. Pubblica l'annuncio della nuova versione del gioco nella sua pagina Facebook, incluso un collegamento alla presentazione nello Store del gioco. Molti dei suoi giocatori la seguono anche su Twitter, quindi pubblica anche un annuncio con il link alla presentazione nello Store del gioco.
Per tenere traccia del successo di ognuno di questi canali promozionali, lo sviluppatore crea due varianti dell'URL per la presentazione nello Store del gioco:
L'URL che pubblicherà nella sua pagina Facebook include l'ID campagna personalizzata
my-facebook-campaign
L'URL che pubblicherà su Twitter include l'ID campagna personalizzato
my-twitter-campaign
Mentre i suoi follower di Facebook e Twitter cliccano sugli URL, Microsoft tiene traccia di ogni clic e lo associa alla campagna personalizzata corrispondente. Le successive acquisizioni qualificanti del gioco e gli eventuali acquisti di componenti aggiuntivi sono associati alla campagna personalizzata e segnalate come conversioni.
Informazioni su come le acquisizioni sono qualificate come conversioni
Una conversione di campagna personalizzata è un'acquisizione derivante da un cliente che fa clic su un URL promosso di livello tramite una campagna personalizzata. Esistono diversi scenari per la qualificazione come conversione per le Visualizzazioni di pagina e conversioni app per ID campagna e i grafici Conversioni totali campagna nel Report acquisizioni e per la qualificazione come conversione per recuperare a livello di codice l'ID campagna.
Conversioni idonee nel Report acquisizioni
Gli scenari seguenti sono qualificati come conversione per le Visualizzazioni e le conversioni della pagina dell'app per ID campagna e i grafici Conversioni totali delle campagne nel Report acquisizioni:
Un cliente con o senza un account Microsoft riconosciuto fa clic su un URL dell'app che contiene un ID campagna personalizzato e viene reindirizzato alla presentazione nello Store per l'app. Quindi, lo stesso cliente acquisisce l'app entro 24 ore dal primo clic sull'URL di Microsoft Store con l'ID campagna personalizzato.
Se il cliente acquisisce l'app su un dispositivo diverso da quello su cui ha fatto clic sull'URL con l'ID campagna personalizzata, la conversione verrà conteggiata solo se il cliente ha eseguito l'accesso con lo stesso account Microsoft di quando ha fatto clic sull'URL.
Nota
Per le acquisizioni di app conteggiate come conversioni per una campagna personalizzata, tutti gli acquisti di componenti aggiuntivi in tale app vengono conteggiati anche come conversioni per la stessa campagna personalizzata.
Conversioni idonee quando si recupera l'ID campagna a livello di programmazione (codice)
Per la qualificazione come conversione quando si recupera a livello di codice l'ID campagna associato all'app, è necessario soddisfare le condizioni seguenti:
Su un dispositivo che esegue Windows 10 versione 1607 o successiva: un cliente (che abbia eseguito l'accesso a un account Microsoft riconosciuto o meno) fa clic su un URL che contiene un ID campagna personalizzato e viene reindirizzato alla pagina presentazione nello Store per l'app. Il cliente acquisisce l'app durante la visualizzazione della presentazione nello Store in seguito a un clic sull'URL.
Su un dispositivo che esegue Windows 10 versione 1511 o precedente: un cliente (che deve aver eseguito l'accesso a un account Microsoft riconosciuto) fa clic su un URL che contiene un ID campagna personalizzato e viene reindirizzato alla pagina presentazione nello Store per l'app. Il cliente acquisisce l'app durante la visualizzazione della presentazione nello Store in seguito a un clic sull'URL. In queste versioni di Windows 10 o Windows 11, l'utente deve accedere con un account Microsoft riconosciuto per consentire all'acquisizione di qualificarsi come conversione quando recupera l'ID campagna a livello di codice.
Nota
Se il cliente lascia la pagina della presentazione nello Store, ma torna alla pagina con 24 ore (nello stesso dispositivo o su un dispositivo diverso quando è connesso con lo stesso account Microsoft) e acquisisce l'app, ciò verrà qualificato come conversione nelle Visualizzazioni di pagina e conversioni app per ID campagna e nei grafici Conversioni totali campagna nel Report acquisizioni. Tuttavia, questa operazione non verrà qualificata come conversione se si recupera l'ID campagna a livello di codice.
Incorporare un ID campagna personalizzato nell'URL della pagina di Microsoft Store dell'app
Per creare un URL di pagina di Microsoft Store per l'app con un ID campagna personalizzato:
- Creare una stringa ID per la campagna personalizzata. Questa stringa può contenere fino a 100 caratteri, anche se ti consigliamo di definire ID campagna brevi facilmente identificabili.
Nota
La stringa ID campagna può essere visibile ad altri sviluppatori quando visualizza il Report acquisizioni per le app. Ciò può verificarsi quando un cliente fa clic sull'ID campagna personalizzato da immettere nello Store e acquista un'altra app dello sviluppatore all'interno della stessa sessione, assegnando così tale conversione all'ID campagna. Questo sviluppatore vedrà quante conversioni della propria app sono scaturite da un clic iniziale sull'ID campagna, incluso il nome dell'ID campagna, ma non vengono visualizzati dati sul numero di utenti che hanno acquistato app personalizzate (o app di altri sviluppatori) dopo aver fatto clic sull'ID campagna.
Ottieni il collegamento per la presentazione nello Store dell'app in formato HTML o protocollo.
Utilizzare l'URL HTML se si desidera che i clienti passino alla presentazione nello Store basata sul Web dell'app in un browser in qualsiasi sistema operativo. Nei dispositivi Windows, l'App Store avvia e visualizza anche la presentazione dell'app. Tale URL ha questo formato:
https://www.microsoft.com/store/apps/*your app ID*
Ad esempio, l'URL HTML per Skype èhttps://www.microsoft.com/store/apps/9wzdncrfj364
. È possibile trovare questo URL nella pagina Identità dell'app.Utilizzare il formato del protocollo se si promuove l'app da altre app di Windows in esecuzione su un dispositivo o su un computer con l'app UWP installata o quando si sa che i clienti utilizzano un dispositivo che supporta Microsoft Store. Questo collegamento passerà direttamente alla presentazione nello Store dell'app senza aprire un browser. Tale URL ha questo formato:
ms-windows-store://pdp/?PRODUCTID=*your app id*
Ad esempio, l'URL del protocollo per Skype èms-windows-store://pdp/?PRODUCTID=9wzdncrfj364
.
Aggiungere la stringa seguente alla fine dell'URL relativo all'app:
Per un URL in formato HTML, aggiungere
?cid=*my custom campaign ID*
. Ad esempio, se Skype introduce un ID campagna con il valore custom_campaign, il nuovo URL che include l'ID campagna sarà:https://www.microsoft.com/store/apps/skype/9wzdncrfj364?cid=custom\_campaign
.Per un URL in formato protocollo, aggiungere
&cid=*my custom campaign ID*
. Ad esempio, se Skype introduce un ID campagna con il valore custom_campaign, il nuovo URL protocollo che include l'ID campagna sarà:ms-windows-store://pdp/?PRODUCTID=9wzdncrfj364&cid=custom\_campaign
.
Recuperare a livello di codice l'ID campagna personalizzato per un'app
Se l'app è un'app UWP, è possibile recuperare a livello di codice l'ID campagna personalizzato associato all'acquisizione di un'app usando le API in Windows SDK. Queste API rendono possibili molti scenari di analisi e monetizzazione. Ad esempio, è possibile scoprire se l'utente corrente abbia acquisito l'app dopo averla individuato tramite la campagna Facebook e quindi personalizzare l'esperienza dell'app di conseguenza. In alternativa, se si usa un provider di marketing di app di terze parti, è possibile inviare i dati al provider.
Tali API restituiranno una stringa ID campagna solo se il cliente ha fatto clic sull'URL con l'ID campagna incorporato, ha visualizzato la pagina di Microsoft Store per l'app e quindi acquisisce l'app senza uscire dalla pagina di presentazione dello Store. Se l'utente lascia la pagina e successivamente restituisce e acquisisce l'app, questa operazione non verrà considerata una conversione quando si usano queste API.
Esistono API diverse da usare a seconda della versione di Windows di destinazione dell'app:
Windows 10, versione 1607 o successiva: utilizzare la classe StoreContext nello spazio dei nomi Windows.Services.Store. Quando si usa questa API, è possibile recuperare gli ID campagna personalizzati per eventuali acquisizioni qualificate, indipendentemente dal fatto che l'utente abbia eseguito l'accesso con un account Microsoft riconosciuto.
Windows 10, versione 1511 o precedenti: usare la classe CurrentApp nello spazio dei nomi Windows.ApplicationModel.Store. Quando si usa questa API, è possibile recuperare solo gli ID campagna personalizzati per eventuali acquisizioni qualificate, laddove l'utente abbia eseguito l'accesso con un account Microsoft riconosciuto.
Nota
Anche se lo spazio dei nomi Windows.ApplicationModel.Store è disponibile in tutte le versioni di Windows 10 o Windows 11, consigliamo di utilizzare le API nello spazio dei nomi Windows.Services.Store se l'app è destinata a Windows 10, versione 1607 o successiva. Per ulteriori informazioni sulle differenze tra questi spazi dei nomi, vedere Acquisti in-app e versioni di valutazione. L'esempio di codice seguente illustra come strutturare il codice per usare entrambe le API nello stesso progetto.
Esempio di codice
L'esempio di codice seguente illustra come recuperare l'ID campagna personalizzato. Questo esempio utilizza entrambi i set di API negli spazi dei nomi Windows.Services.Store e Windows.ApplicationModel.Store utilizzando il codice adattivo della versione. Seguendo questo processo, il codice può essere eseguito in qualsiasi versione di Windows 10 o Windows 11. Per usare questo codice, la versione del sistema operativo di destinazione del progetto deve essere Windows 10 Anniversary Edition (10.0; Build 14394) o versioni successive, anche se la versione minima del sistema operativo può essere una versione precedente.
// 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
}
}
Il codice effettua quanto segue:
In primo luogo, verifica se la classe StoreContext nello spazio dei nomi Windows.Services.Store è disponibile sul dispositivo corrente (questo significa che il dispositivo esegue Windows 10, versione 1607 o successiva). In tal caso, il codice procede all'uso di questa classe.
Successivamente, tenta di ottenere l'ID campagna personalizzato per il caso in cui l'utente corrente abbia un account Microsoft riconosciuto. A tale scopo, il codice ottiene un oggetto StoreSku che rappresenta lo SKU dell'app corrente e quindi accede alla proprietà CampaignId per recuperare l'ID campagna, se disponibile.
Il codice tenta quindi di recuperare l'ID campagna per il caso in cui l'utente corrente non dispone di un account Microsoft riconosciuto. In questo caso, l'ID campagna viene incorporato nella licenza dell'app. Il codice recupera la licenza usando il metodo GetAppLicenseAsync e quindi analizza il contenuto JSON della licenza per il valore di una chiave denominata customPolicyField1. Questo valore contiene l'ID campagna.
Se la classe StoreContext nello spazio dei nomi Windows.Services.Store non è disponibile, il codice esegue il fallback all'uso del metodo GetAppPurchaseCampaignIdAsync nello spazio dei nomi Windows.ApplicationModel.Store per recuperare l'ID campagna personalizzato (questo spazio dei nomi è disponibile in tutte le versioni di Windows 10 o Windows 11). Si noti che quando si usa questo metodo, è possibile recuperare solo gli ID campagna personalizzati per le acquisizioni qualificate laddove l'utente abbia un account Microsoft riconosciuto.
Specificare l'ID campagna nel file proxy per lo spazio dei nomi Windows.ApplicationModel.Store
Lo spazio dei nomi Windows.ApplicationModel.Store include CurrentAppSimulator, una classe speciale che simula le operazioni dello Store per testare il codice prima di inviare l'app allo Store. Questa classe recupera i dati da un file locale denominato Windows.StoreProxy.xml. Nell'esempio di codice precedente viene illustrato come includere l'uso di CurrentApp e CurrentAppSimulator nel codice di debug e non di debug nel progetto. Per testare questo codice in un ambiente di debug, aggiungere un elemento AppPurchaseCampaignId al file WindowsStoreProxy.xml nel computer di sviluppo, come illustrato nell'esempio seguente. Quando si esegue l'app, il metodo GetAppPurchaseCampaignIdAsync restituirà sempre questo valore.
<CurrentApp>
...
<AppPurchaseCampaignId>your custom campaign ID</AppPurchaseCampaignId>
</CurrentApp>
Lo spazio dei nomi Windows.Services.Store non fornisce una classe che è possibile usare per simulare le informazioni sulla licenza durante i test. È necessario invece pubblicare un'app nello Store e scaricare l'app nel dispositivo di sviluppo per usare la relativa licenza per i test. Per maggiori informazioni, vedere acquisti e prove in-app.
Testare la campagna personalizzata
Prima di promuovere di livello un URL di campagna personalizzato, consigliamo di testare la campagna personalizzata eseguendo le operazioni seguenti:
Accedere a un account Microsoft nel dispositivo in uso per i test.
Fare clic sull'URL della campagna personalizzata. Assicurarsi di passare alla pagina dell'app e quindi di chiudere l'app UWP o la pagina del browser.
Fare clic sull'URL più volte, chiudendo l'app UWP o la pagina del browser dopo ogni visita alla pagina dell'app. Durante una delle visite alla pagina dell'app, acquisire l'app per generare una conversione. Contare il numero totale di volte in cui si è fatto clic sull'URL.
Verificare se le visualizzazioni e le conversioni di pagina previste vengono visualizzate nelle Visualizzazioni e le conversioni della pagina dell'app per ID campagna e nei grafici Conversioni totali delle campagne nel Report acquisizioni e testare il codice dell'app per verificare se è possibile recuperare correttamente l'ID campagna usando le API descritte in precedenza.