Algolia è una potente soluzione di ricerca come servizio che supporta le ricerce per i migliori brand al mondo in una varietà di verticali. L'integrazione con Algolia sfrutta gli attributi di coinvolgimento degli utenti di Dynamic Yield e approfondimenti di machine learning per aggiungere un livello di personalizzazione ad Algolia.
Casi d'uso
Puoi personalizzare i risultati delle ricerche per fornire la migliore corrispondenza per ogni visitatore (in base all'affinità).
La personalizzazione è abilitata dal factoring dell'affinità utente di Dynamic Yield in base ai risultati di ricerca.
Prerequisiti
- Un account Dynamic Yield e un account Algolia. Ogni account è venduto e gestito separatamente.
- Un feed di prodotti Dynamic Yield. I feed multilingue non sono supportati.
Iniezione per affinità: come funziona
- Puoi creare una campagna con codice personalizzato e scegliere come target tutte le pagine che sfruttano Algolia.
- Basterà aggiungere una variante e incollare il codice appropriato. Consulta gli esempi di codice.
- Salva l'azione personalizzata,
che esporrà un oggetto denominato DY.CS.affinityToAlgolia in cui è integrata l'affinità di Dynamic Yield in un formato pensato per Algolia per inserire nel processo dei filtri facoltativi.
Quando inizializzi l'API Algolia:
- aggiungi la chiave optionalFilters all'oggetto,
- indica l'oggetto DY.CS.affinityToAlgolia come valore.
Esempi di codice
index.search({
query: 'query',
optionalFilters: DY.CS.affinityToAlgolia
}).then(res => {
// console.log(res);
});
var userId = DYO.StorageUtils.get('_dyid','localStorage');
var dyHost = DYO.hosts.rcom;
window.DY.CS = window.DY.CS || {};
getAffinity(DY.scsec, userId, 2)
function getAffinity(section,userId,limit){
var xhr = new XMLHttpRequest();
xhr.open('GET', dyHost + '/userAffinities?limit='+limit+'&sec='+section+(userId?'&uid='+userId:""));
xhr.onload = function() {
if (xhr.status === 200) {
console.log('got user affinity : ' +xhr.responseText);
DY.CS.affinityAlgolia = DYAffinityToAlgoliaFilter(JSON.parse(xhr.responseText));
}
else {
console.log('error getting affinity');
}
};
xhr.send();
}
function DYAffinityToAlgoliaFilter(affinities){
var filter = [];
if (affinities !== {}){
for (var affinity in affinities){
for (var val in affinities[affinity]){
filter.push(affinity+":"+val+"<score="+affinities[affinity][val]+">")
}
}
}
return filter;
}
Risoluzione dei problemi relativi all'integrazione di Algolia
Assicurati che l'oggetto DY.CS.affinityToAlgolia sia definito nel browser e si popoli correttamente con i dati:
- visualizza diversi PDP e aggiungi articoli al carrello, per creare il processo di affinità utente,
- passa a una pagina che integra Algolia, apri la console degli strumenti di sviluppo e immetti DY.CS.affinityToAlgolia. In questo modo il sistema restituirà un array con le affinità create e i punteggi associati.
- Se il sistema non dovesse restituire la risposta prevista, prova con le operazioni seguenti:
- verifica che la campagna con codice personalizzato sia attiva, che abbia come target le pagine corrette e che includa il giusto codice,
- verifica di aver creato correttamente l'affinità utente con il' API affinità utente lato client. Se la risposta dovesse proporre i dati di affinità utente, significa che questa parte dell'implementazione funziona correttamente.
Convalidare la chiamata di rete Algolia:
- passa a una pagina che integra Algolia, apri la console degli strumenti di sviluppo e vai alla scheda Rete.
- Inserisci "Algolia" nel filtro di rete ed esegui una query di ricerca sul sito.
- Nei risultati, cerca una chiamata di rete che inizia con "query?x-algolia-agent" e selezionala. Questa è la chiamata che il tuo sito fa ad Algolia con i criteri di ricerca.
- Nel payload della chiamata di rete, individua il parametro optionalFilters nei dati del modulo. Questo parametro trasferirà l'affinità utente di Dynamic Yield ad Algolia nel formato corretto.
- Se il parametro non fosse presente, implementa l'inserimento del codice di affinità utente come indicato nell'esempio nella sezione Esempi di codice .
- Se il parametro fosse presente e dovesse restituitre i dati di affinità utente, significa che questa parte dell'implementazione funziona correttamente.