Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Visual Studio App Center è stato ritirato il 31 marzo 2025, ad eccezione delle funzionalità di Analisi e diagnostica, che continueranno a essere supportate fino al 30 giugno 2026. Ulteriori informazioni.
Analisi di App Center consente di comprendere il comportamento degli utenti e il coinvolgimento dei clienti per migliorare l'app. L'SDK acquisisce automaticamente il numero di sessioni e le proprietà del dispositivo, ad esempio modello, versione del sistema operativo e così via. È possibile definire eventi personalizzati per misurare le cose importanti. Tutte le informazioni acquisite sono disponibili nel portale di App Center per analizzare i dati.
Se non è ancora stato configurato l'SDK nell'applicazione, seguire la sezione Introduzione all'SDK .
Informazioni sulla sessione e sul dispositivo
Dopo aver aggiunto App Center Analytics all'app e aver avviato l'SDK, verranno registrate automaticamente le sessioni e le proprietà del dispositivo, ad esempio Versione del sistema operativo, modello e così via, senza scrivere codice aggiuntivo.
Codice paese
L'SDK segnala automaticamente il codice paese di un utente se il dispositivo dispone di un modem dati mobile e di una scheda SIM installata. Per impostazione predefinita, i dispositivi solo Wi-Fi non segnalano un codice paese. Per impostare il codice paese di tali utenti, è necessario recuperare manualmente la posizione dell'utente e usare il setCountryCode:
metodo nell'SDK:
AppCenter.setCountryCode("en");
AppCenter.setCountryCode("en")
Annotazioni
Per visualizzare il codice paese nelle sessioni di Analisi, è necessario chiamare AppCenter.setCountryCode
prima di chiamare AppCenter.start
.
Eventi personalizzati
È possibile tenere traccia dei propri eventi personalizzati con un massimo di 20 proprietà per comprendere l'interazione tra gli utenti e l'app.
Dopo aver avviato l'SDK, usare il trackEvent()
metodo per tenere traccia degli eventi con le proprietà. È possibile inviare fino a 200 nomi di eventi distinti. Sono inoltre previsti limiti massimi per i caratteri:
- 256 caratteri per
event name
. - 125 caratteri per
event property name
eevent property value
.
Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");
Analytics.trackEvent("Video clicked", properties);
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties)
Le proprietà per gli eventi sono completamente facoltative: se si vuole tenere traccia di un evento, usare invece questo esempio:
Analytics.trackEvent("Video clicked");
Analytics.trackEvent("Video clicked")
Priorità e persistenza degli eventi
È possibile tenere traccia degli eventi critici aziendali che hanno un'importanza maggiore rispetto ad altri eventi.
- Gli sviluppatori possono impostare la priorità degli eventi come Normale (
Flags.NORMAL
nell'API) o Critico (Flags.CRITICAL
nell'API). - Gli eventi con priorità impostata come Critico verranno recuperati prima di tutto dall'archiviazione e inviati prima degli eventi Normali .
- Quando l'archiviazione locale è piena e devono essere archiviati nuovi eventi, gli eventi meno recenti con priorità più bassa vengono eliminati per primi.
- Se lo spazio di archiviazione è pieno di log con priorità critica , il rilevamento di un evento con priorità Normale avrà esito negativo perché l'SDK non può fare spazio in questo caso.
- Se si usa anche il servizio Arresti anomali , i log degli arresti anomali vengono impostati come critici e condividono la stessa risorsa di archiviazione degli eventi.
- L'intervallo di trasmissione viene applicato solo agli eventi normali , gli eventi critici verranno inviati dopo 3 secondi.
È possibile usare l'API seguente per tenere traccia di un evento come critico:
Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");
Analytics.trackEvent("eventName", properties, Flags.CRITICAL);
// If you're using name only, you can pass null as properties.
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties, Flags.CRITICAL)
// If you're using name only, you can pass null as properties.
Sospendere e riprendere l'invio dei log
La sospensione della trasmissione degli eventi può essere utile negli scenari in cui l'app deve controllare la larghezza di banda di rete per esigenze aziendali più critiche. È possibile sospendere l'invio dei log al back-end di App Center. Quando vengono sospesi, gli eventi possono comunque essere rilevati e salvati, ma non vengono inviati immediatamente. Tutti gli eventi tracciati dall'app durante la sospensione verranno inviati solo dopo aver chiamato resume
.
Analytics.pause();
Analytics.resume();
Analytics.pause()
Analytics.resume()
Abilitare o disabilitare Analisi di App Center in fase di esecuzione
È possibile abilitare e disabilitare Analisi di App Center in fase di esecuzione. Se la si disabilita, l'SDK non raccoglierà altre informazioni di analisi per l'app.
Analytics.setEnabled(false);
Analytics.setEnabled(false)
Per abilitare di nuovo App Center Analytics, usare la stessa API ma passare true
come parametro.
Analytics.setEnabled(true);
Analytics.setEnabled(true)
Lo stato viene salvato in modo permanente nella risorsa di archiviazione del dispositivo all'avvio dell'applicazione.
Questa API è asincrona. Per altre informazioni, vedere la guida alle API asincrone di App Center .
Annotazioni
Questo metodo deve essere utilizzato solo dopo l'avvio di Analytics
.
Controllare se App Center Analytics è abilitato
È anche possibile verificare se App Center Analytics è abilitato o meno.
Analytics.isEnabled();
Analytics.isEnabled()
Questa API è asincrona. Per altre informazioni, vedere la guida alle API asincrone di App Center .
Annotazioni
Questo metodo deve essere usato solo dopo che Analytics
è stato avviato; restituirà sempre false
prima dell'avvio.
Gestire la sessione di avvio
Per impostazione predefinita, l'ID sessione dipende dal ciclo di vita dell'applicazione. Se si vuole controllare manualmente l'avvio di una nuova sessione, seguire i passaggi successivi:
Annotazioni
Prestare attenzione che ogni chiamata dell'API Analytics.StartSession() genererà una nuova sessione. Se in modalità di rilevamento sessione manuale questa API non verrà chiamata, tutti i log di invio avranno un valore di sessione Null.
Annotazioni
Prestare attenzione che dopo l'avvio di una nuova applicazione l'ID sessione verrà rigenerato.
- Chiamare il metodo seguente prima dell'avvio dell'SDK:
Analytics.enableManualSessionTracker();
Analytics.enableManualSessionTracker()
- È quindi possibile usare l'API
startSession
dopoAppCenter.start
:
Analytics.startSession();
Analytics.startSession()
Dimensioni di archiviazione locale
Per impostazione predefinita, l'SDK archivia tutti i registri eventi fino a 10 MB. Gli sviluppatori possono usare un'API per aumentare le dimensioni di archiviazione e l'SDK continuerà ad archiviare i log fino a quando lo spazio di archiviazione non è pieno.
Nessun accesso a Internet
Quando non è disponibile alcuna connettività di rete, l'SDK salva fino a 10 MB di log nella risorsa di archiviazione locale. Quando l'archiviazione è piena, l'SDK inizia a rimuovere i log precedenti per liberare spazio per i nuovi log. Una volta ripristinata la connettività di rete, l'SDK invia i log in pacchetti da 50 o ogni 6 secondi (per impostazione predefinita).
Annotazioni
I log precedenti a 25 giorni non verranno accettati dal back-end.
Registrazione dei log degli eventi in batch
App Center SDK carica i log in un batch di 50 e se l'SDK non dispone di 50 log da inviare, i log verranno comunque inviati dopo 6 secondi (per impostazione predefinita). È possibile inviare un massimo di tre batch in parallelo. L'intervallo di trasmissione può essere modificato:
// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000);
// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000)
Il valore dell'intervallo di trasmissione deve essere compreso tra 6 secondi e 86400 secondi (un giorno) e questo metodo deve essere chiamato prima dell'avvio del servizio.
Logica di ripetizione e back-off
L'SDK di App Center supporta i tentativi di riprovare con intervalli di tempo in caso di errori di rete recuperabili. Di seguito è riportata la logica di ripetizione dei tentativi:
- Massimo 3 tentativi per ogni richiesta.
- Ogni richiesta ha una propria macchina a stati di ripetizione dei tentativi.
- Tutti i canali di trasmissione sono disabilitati (fino al processo successivo dell'app) dopo che una richiesta esaurisce tutti i tentativi.
Logica di riduzione graduale
- 50% casualizzazione, primo tentativo tra 5 e 10 secondi, tentativo successivo tra 2,5 e 5 minuti, ultimo tentativo compreso tra 10 e 20 minuti.
- Se la rete passa da off a on (o da wi-fi a dispositivi mobili), gli stati di ripetizione dei tentativi vengono reimpostati e le richieste vengono ritentate immediatamente.