adobe.target.triggerView (viewName, options) - at.js 2.x
Cette fonction peut être appelée à chaque chargement d’une nouvelle page ou lorsqu’un composant fait l’objet d’un nouveau rendu sur une page. adobe.target.triggerView() doit être implémenté pour que les applications monopages (SPA) utilisent le compositeur d’expérience visuelle (VEC) afin de créer des activités test A/B et ciblage d’expérience (XT). Si adobe.target.triggerView() n’est pas implémenté sur le site, le compositeur d’expérience visuelle ne peut pas être utilisé pour les SPA. Pour plus d’informations, voir Implémentation d’application monopage.
TRUE : La valeur par défaut de la page est vrai. Lorsque page = vrai, les notifications sont envoyées au serveur principal Target pour incrémenter le nombre d’impressions.
Une notification est toujours envoyée par défaut lorsqu’une triggerView est appelée, sauf lorsque options > page est défini sur false.
FALSE : lorsque page=false, les notifications ne sont pas envoyées pour incrémenter le nombre d’impressions. Cette approche doit être utilisée lorsque vous souhaitez effectuer uniquement le rendu d’un composant sur une page avec une offre.
Remarque : les offres de code personnalisé dans le VEC ne sont pas rendues de nouveau lorsque triggerView() est appelé avec {page: false} comme option.
Exemple : True
triggerView() appel pour envoyer une notification au serveur principal Target afin d’incrémenter les impressions d’activité et d’autres mesures.
adobe.target.triggerView("homeView")
Exemple : False
triggerView() appel pour que les notifications ne soient pas envoyées au serveur principal Target pour le comptage d’impressions.
adobe.target.triggerView("homeView", {page: false})
Exemple : Chaînage de promesses avec getoffers() et applyOffers()
Pour exécuter triggerView() lorsque la promesse de getOffers() est résolue, il est important d’exécuter triggerView() sur le bloc final, comme illustré dans l’exemple ci-dessous. Cela est nécessaire pour que le compositeur d’expérience visuelle détecte les Views en mode création.
adobe.target.getOffers({
'request': {
'prefetch': {
'views': [{
'parameters': {}
}]
}
}
}).then(function(response) {
// Apply Offers
adobe.target.applyOffers({
response: response
});
}).catch(function(error) {
console.log("AT: getOffers failed - Error", error);
}).finally(() => {
// Trigger View call, assuming pageView is defined elsewhere
adobe.target.triggerView(pageView, {
page: true
});
console.log('AT: View triggered on : ' + pageView);
});
Exemple : meilleure compatibilité pour triggerView() avec l’extension Visual Editing Helper d’Adobe
Tenez compte des points suivants lors de l’utilisation de l’extension Visual Editing Helper d’Adobe 🔗 :
En raison des nouvelles politiques de manifeste V3 de Google pour les extensions Chrome, l’extension Visual Editing Helper doit attendre l’événement DOMContentLoaded avant de charger les bibliothèques Target dans le VEC. Ce délai peut entraîner le déclenchement de l’appel triggerView() aux pages web avant que les bibliothèques de création ne soient prêtes, ce qui fait que la vue n’est pas renseignée au chargement.
Pour atténuer ce problème, utilisez un écouteur pour l’événement de load de page.
Voici un exemple d’implémentation :
function triggerViewIfLoaded() {
adobe.target.triggerView("homeView");
}
if (document.readyState === "complete") {
// If the page is already loaded
triggerViewIfLoaded();
} else {
// If the page is not yet loaded, set up an event listener
window.addEventListener("load", triggerViewIfLoaded);
}