Un valutatore è un codice JavaScript personalizzato che viene eseguito sulla pagina e restituisce un valore basato sui dati presenti nella pagina. Puoi creare valutatori da utilizzare per:
- Condizioni di targeting personalizzate: ad esempio, se l'età dell'utente esiste già nel tuo livello di dati, un valutatore può restituire questa informazione in modo da poter indirizzare le esperienze in base all'età dell'utente.
- Valori variabili nei modelli: ad esempio, se il nome di un utente esiste già nella pagina, un valutatore può restituire il nome e utilizzarlo in un modello. Ciò ti consente di eseguire il rendering del nome in una variante e di creare un'esperienza utente più personalizzata.
- Valori in tempo reale nelle regole di filtraggio personalizzate: ad esempio, un valutatore può restituire la differenza tra il valore corrente del carrello e la soglia di spedizione gratuita, e richiedere prodotti con un prezzo superiore al valore del valutatore.
Il codice viene eseguito solo quando un'esperienza che utilizza il valutatore viene caricata su una pagina. Di solito, ciò avviene durante il caricamento della pagina, a meno che non si applichi un ritardo nell'azione utilizzando degli elementi di attivazione. I valutatori hanno un timeout di 4 secondi e restituiscono false se il timeout viene raggiunto prima che venga restituito un risultato.
Creazione di valutatori per i siti Web
- Vai a Risorse › Valutatori e fai clic su Aggiungi nuovo.
- Inserisci un nome e delle note (facoltativo).
- Definisci il tipo di valore e i valori attesi. Questi dati influiranno sul comportamento delle condizioni create nel valutatore:
- Tipo di valore: specifica se Stringa o Numero. Se selezioni Numero, le condizioni di targeting ti consentiranno di specificare valori maggiori di o minori di. Se selezioni Stringa, puoi eseguire il targeting solo in base ai valori che contengono la stringa.
- Valori attesi (facoltativo): imita i valori disponibili quando usi il valutatore come condizione di targeting. I valori specificati vengono aggiunti a un menu a discesa. Ad esempio, se il tuo valutatore controlla se l'utente è connesso o meno, puoi impostare i valori attesi su True o False.
- Usa l'anteprima per verificare l'aspetto e il comportamento della condizione di targeting.
- Fai clic su Avanti e scrivi il tuo codice JavaScript nell'editor. Per maggiori informazioni, consulta la sezione Scrittura del codice del valutatore .
- Fai clic su Salva. La creazione, la modifica e l'eliminazione dei valutatori possono richiedere fino a 5 minuti per avere effetto.
Note:
- Nei siti mobili che utilizzano l'SDK, utilizza il Riferimento API per iOS oppure il Riferimento API per Android per aggiungere i valutatori direttamente nella tua applicazione.
- È stata annunciata la fine del ciclo di vita dell'SDK per dispositivi mobili, prevista per la fine del 2023, a favore di una personalizzazione delle app aggiornata e più snella tramite API lato server.
Scrittura del codice del valutatore
Il codice valutatore è un codice JavaScript che restituisce un valore. Può essere un semplice codice che recupera un testo da un elemento della pagina, oppure può essere un codice che prende in qualsiasi elemento della pagina, lo manipola e restituisce un risultato.
Esistono due tipi di valutatori:
- Valutatore regolare: viene eseguito immediatamente sulla pagina; si usa quando non c'è nulla di asincrono nel processo per ottenere un risultato.
- Valutatore asincrono: dipende da un altro processo che deve essere eseguito sulla pagina per fornire un risultato, ad esempio un elemento DOM che appare dopo il caricamento della pagina.
Per evitare i casi in cui un valutatore non riesce a restituire un valore o restituisce null perché un elemento non esiste ancora nella pagina, si consiglia di utilizzare una Promise in JavaScript. Ciò assicura che la valutazione delle condizioni di targeting attenda finché il valutatore non restituisce un valore adeguato. Dynamic Yield ti consente di farlo con la tua versione della libreria q nell'oggetto DYO (DYO.Q).
Note:
- Se sono supportate le Promise native di JavaScript, DYO.Q le utilizza ed estende le loro funzionalità per garantire che le prestazioni corrispondano all'implementazione nativa. Ciò significa che se hai già implementato DYO.Q, non è necessario modificarlo. Tuttavia, se devi ancora prendere una decisione riguardo alla tua implementazione, ti consigliamo di utilizzare le Promise native di JavaScript.
- Anche se decidi di non usare la libreria q, il codice deve includere un riferimento alla libreria per l'esecuzione asincrona del valutatore. Il riferimento può essere commentato nel codice, ad esempio: //DYO.Q
- Non assegnare a variabili diverse nomi simili, perché ciò può causare interferenze nella sessione in corso.
Esempi di codice per il valutatore
DYO.Q(DYO.waitForElementAsync("", 1, 10, 100)).then(function(elements) {
return parseInt(elements[0].textContent);
});
DYO.Q(DYO.waitForElementAsync("",1, 10, 100))
.then(function() {
return "True";
}
);
DYO.Q(DYO.waitForElementAsync("",1, 10, 100))
.then(function(elements) {
return parseFloat(elements[0].textContent.replace(/[^0-9\.]+/g,""));
}, function() {
return 0;
});
Torna al valore totale del carrello recuperato dall'attributo dataLayer, per i siti integrati con Google Analytics. Ciò presume che dataLayer sia in posizione 0. Puoi anche aggiungere un loop per scoprire la posizione del dataLayer se è diversa da 0.
//max retries & la durata dell'intervallo può essere modificata per assicurarti di accedere alla posizione giusta in dataLayer; in questo esempio il primo indice dell'array.
var MAX_RETRIES = 5;
var FALLBACK_VALUE = 0;
var INETRVAL_IN_MS = 100;
DYO.Q.Promise(function(resolve) {
var retryCounter = 0;
var interval = setInterval(function() {
if (typeof dataLayer === 'object' && typeof dataLayer[0] === 'object') {
clearInterval(interval);
resolve(parseFloat(dataLayer[0].cartValue) || FALLBACK_VALUE);
} else {
retryCounter++;
}
if (retryCounter > MAX_RETRIES) {
resolve(FALLBACK_VALUE);
clearInterval(interval);
}
}, INETRVAL_IN_MS);
});
try {
(function() {
var STRATEGY_ID_TO_CHECK = ;
var MAX_PRODUCTS_TO_CHECK = ;
if (!DYO.Q || !DYO.recommendationWidgetData) {
return;
}
var deferred = DYO.Q.defer();
DY.API('callback', function() {
DYO.recommendationWidgetData(STRATEGY_ID_TO_CHECK, {maxProducts: MAX_PRODUCTS_TO_CHECK}, function(err, data) {
if (data && data.slots && data.slots.length) {
deferred.resolve(data.slots.length);
} else {
deferred.resolve(-1);
}
});
});
return deferred.promise;
})();
} catch (e) {}
const THRESHOLD = 50; // Cart threshold
const CART_TOTAL_SELECTOR = '.js-cart-totals__total' // Cart selector per site
DYO.waitForElementAsync(CART_TOTAL_SELECTOR).then((elements) => {
const cartValue = parseFloat(elements[0].textContent.replace(/[^\d.-]/g, ''));
return Math.max(THRESHOLD - cartValue, 0);
});
Ad esempio, utilizza questo valutatore per restituire il brand della pagina.
const DEFAULT_VALUE = '';
const CSS_SELECTOR = '';
DYO.Q(DYO.waitForElementAsync(CSS_SELECTOR, 1, 100, 10))
.then(function(elements) {
var el = elements[0];
return el.textContent;
}, function() {
return DEFAULT_VALUE;
});
var DEFAULT_VALUE = 'Unisex';
var CSS_SELECTOR = '.customer-gender';
DYO.Q(DYO.waitForElementAsync(CSS_SELECTOR, 1, 100, 5))
.then(function(elements) {
var el = elements[0];
return el.textContent;
(function () {
return DEFAULT_VALUE;
});
Scrittura dei valutatori per le variabili dei modelli
Per visualizzare il valore del valutatore all'interno di una variante (invece di usarlo per una condizione di targeting), il valutatore non può essere asincrono e l'uso della libreria q e di una Promise non è supportato. Il suo valore deve essere restituito immediatamente dopo il rendering della variante. Ad esempio, un valutatore che restituisce il linguaggio della pagina:
try{
(function () {
if (DY.recommendationContext && DY.recommendationContext.lng){
return DY.recommendationContext.lng;
}else{return 'NA';}
})();
} catch(e) {}
Debugging dei valutatori
Esegui la seguente API nella console del browser per verificare il valore restituito da un valutatore. Sostituisci "EVALUATOR_ID" con l'ID del valutatore di cui stai eseguendo il debug (vai a Risorse › Valutatori per vedere gli ID di tutti i valutatori).
DYO.Q(DYO.CoreUtils.safeEval(DYO.oevals[EVALUATOR_ID].code))
.then(function(result) {
console.log("Returned value from evaluator:", result);
});
Targeting basato sui valori dei valutatori
Non appena viene creato un valutatore, questo appare nella condizione Valutatore personalizzato, sotto la categoria Dove? . L'elenco di tutti i valutatori è disponibile durante la creazione della condizione. A seconda del tipo di valore impostato per il valutatore, puoi selezionare l'operatore e i valori della condizione. Scopri di più sulle condizioni di targeting.
Rendering del valore del valutatore in un modello
A volte è utile eseguire il rendering del valore di un valutatore in un modello. Ad esempio, se il nome dell'utente esiste nella pagina e vuoi mostrare un messaggio personale con il nome dell'utente. Puoi farlo cambiando il tipo di variabile in Valutatore.
In questo modo si sostituisce la variabile con il valore del valutatore. Puoi anche impostare un testo alternativo nel caso in cui il valutatore non restituisca alcun dato.
Tieni presente che, per visualizzare il valore di un valutatore all'interno di un modello, il valutatore non può essere eseguito in modo asincrono. Guarda l'esempio di codice riportato in precedenza in questo articolo.
Guarda la sezione Creazione di modelli per saperne di più su variabili e modelli.
Filtraggio delle raccomandazioni in base ai valori dei valutatori
Puoi usare i valutatori come valori di regola nei filtri personalizzati della strategia per ottenere prodotti raccomandati in base a dati dinamici. Ad esempio, puoi impostare un valutatore in modo che richieda prodotti raccomandati che corrispondano alle informazioni sull'utente disponibili nella sessione, come il sesso o la posizione.
Per utilizzare un valutatore, seleziona Usa valore in tempo reale nelle impostazioni della regola. Tutti i valutatori pertinenti vengono visualizzati in un menu a discesa.
Per ulteriori informazioni sulle regole di strategia, guarda Regole di personalizzazione dei filtri per le raccomandazioni.
Copia di valutatori tra siti
Puoi copiare una strategia su un sito diverso nello stesso account Dynamic Yield. Passa con il mouse sul valutatore, fai clic sul pulsante Copia e seleziona la destinazione.
Esperienze di visualizzazione influenzate da ciascun valutatore
Nell'elenco dei valutatori, puoi vedere quante esperienze e strategie stanno usando ciascun valutatore come condizione di targeting o regola di filtraggio personalizzata nella colonna Usato da. Fai clic sul numero per approfondire e vedere ogni esperienza o strategia che utilizza il valutatore. È importante controllare prima di modificare o eliminare un valutatore, per essere sicuro di sapere come la modifica influirà sul sito.