Aggiungere un codice all'applicazione - Amazon CloudWatch

Aggiungere un codice all'applicazione

Importante

Avviso di fine del supporto: il 16 ottobre 2025, AWS interromperà il supporto per CloudWatch Evidently. Dopo il 16 ottobre 2025, non sarà più possibile accedere alla console Evidently o alle risorse Evidently.

Per lavorare con CloudWatch Evidently, aggiungi codice alla tua applicazione per assegnare una variante a ogni sessione utente e inviare parametri a Evidently. Usa l'operazione EvaluateFeature di CloudWatch Evidently per assegnare variazioni alle sessioni utente e l'operazione PutProjectEvents per inviare eventi a Evidently da utilizzare per calcolare i parametri per avvii o esperimenti.

Quando crei variazioni o parametri personalizzati, la console CloudWatch Evidently fornisce esempi del codice che devi aggiungere.

Per un esempio end-to-end, consulta Esercitazione: test A/B con l'applicazione Evidently di esempio.

Utilizzo di EvaluateFeature

Quando le varianti di funzionalità vengono utilizzate in un avvio o in un esperimento, l'applicazione utilizza l'operazione EvaluateFeature per assegnare a ogni sessione utente una variante. L'assegnazione di una variazione a un utente è un evento di valutazione. Quando si chiama questa operazione, si passa a quanto segue:

  • Nome delle funzionalità: obbligatorio. Evidently elabora la valutazione in base alle regole di valutazione delle caratteristiche dell'avvio o dell'esperimento e seleziona una variante per l'entità.

  • entityId: obbligatorio. Rappresenta un utente univoco.

  • Contesto di valutazione— Opzionale. Un oggetto JSON che rappresenta informazioni aggiuntive su un utente. Evidentemente utilizzerà questo valore per abbinare l'utente a un segmento del tuo pubblico durante le valutazioni delle funzionalità, se hai creato segmenti. Per ulteriori informazioni, consulta Usa i segmenti per focalizzare il tuo pubblico.

    Segue un esempio di un valore evaluationContext che puoi inviare a Evidently.

    { "Browser": "Chrome", "Location": { "Country": "United States", "Zipcode": 98007 } }

Valutazioni permanenti

CloudWatch Evidentemente utilizza valutazioni “permanenti”. Un'unica configurazione di entityId, funzionalità, configurazione delle funzionalità e evaluationContext riceve sempre la stessa assegnazione di variante. L'unica modifica delle assegnazioni delle variazioni temporali è quando un'entità viene aggiunta a un override o viene composto il traffico sperimentale.

Una configurazione delle funzionalità include:

  • Le varianti delle funzionalità

  • La configurazione delle varianti (percentuali assegnate a ciascuna variante) per un esperimento attualmente in corso per questa funzionalità, se presente.

  • La configurazione della variante per un lancio attualmente in esecuzione per questa funzionalità, se presente. La configurazione della variante include le eventuali sostituzioni dei segmenti definite.

Se l'allocazione del traffico di un esperimento viene aumentata, qualsiasi entityId che era stato precedentemente assegnato a un gruppo di trattamento sperimentale continuerà a ricevere lo stesso trattamento. Qualsiasi entityId precedentemente assegnato al gruppo di controllo, potrebbe essere assegnato a un gruppo di trattamento sperimentale, in base alla configurazione della variazione specificata per l'esperimento.

Se l'allocazione del traffico di un esperimento è ridotta, un entityId potrebbe passare da un gruppo di trattamento a un gruppo di controllo, ma non a un gruppo di trattamento diverso.

Utilizzo di PutProjectEvent

Per codificare un parametro personalizzato per Evidently, si utilizza l'operazione PutProjectEvents. Di seguito è riportato un semplice esempio di payload.

{ "events": [ { "timestamp": {{$timestamp}}, "type": "aws.evidently.custom", "data": "{\"details\": {\"pageLoadTime\": 800.0}, \"userDetails\": {\"userId\": \"test-user\"}}" } ] }

La entityIdKey può essere solo un entityId oppure è possibile rinominarlo in qualsiasi altro modo, ad esempio userId. Nell'evento reale, entityId può essere un nome utente, un ID sessione e così via.

"metricDefinition":{ "name": "noFilter", "entityIdKey": "userDetails.userId", //should be consistent with jsonValue in events "data" fields "valueKey": "details.pageLoadTime" },

Per garantire che gli eventi siano associati all'avvio o all'esperimento corretto, devi passare lo stessoentityId quando chiami sia EvaluateFeature che PutProjectEvents. Assicurati di chiamare PutProjectEvents dopo la chiamata EvaluateFeature, altrimenti i dati vengono eliminati e non verranno utilizzati da CloudWatch Evidentently.

L'operazione PutProjectEvents non richiede il nome della caratteristica come parametro di input. In questo modo, puoi utilizzare un unico evento in diversi esperimenti. Ad esempio, supponiamo che chiami EvaluateFeature con il entityId impostato su userDetails.userId. Se hai due o più esperimenti in esecuzione, puoi fare in modo che un singolo evento della sessione di quell'utente emetta parametri per ciascuno di questi esperimenti. Per fare questo, chiami PutProjectEvents una volta per ogni esperimento, usando lo stesso entityId.

Timing (Tempo)

Dopo che l'applicazione chiama EvaluateFeature, c'è un periodo di tempo di un'ora in cui gli eventi dei parametri da PutProjectEvents sono attribuiti basati su tale valutazione. Se si verificano altri eventi dopo il periodo di un'ora, non vengono attribuiti.

Tuttavia, se lo stesso entityId è usato per una nuova chiamata EvaluateFeature durante la finestra di un'ora di quella chiamata iniziale, viene utilizzato il risultato della successiva EvaluateFeature e il timer di un'ora viene riavviato. Ciò può accadere solo in determinate circostanze, ad esempio quando il traffico sperimentale viene composto tra i due incarichi, come spiegato nella sezione precedente Valutazioni permanenti.

Per un esempio end-to-end, consulta Esercitazione: test A/B con l'applicazione Evidently di esempio.