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.

NOTE
Cette fonction a été introduite avec at.js 2.x. Cette fonction n’est pas disponible pour at.js version 1.x.
Paramètre
Type
Obligatoire ?
Description
viewName
Chaîne
Oui
Transmettez n’importe quel nom en tant que type de chaîne que vous souhaitez représenter votre vue. Le nom de cette vue s’affiche dans le panneau Modifications du compositeur d’expérience visuelle pour que les marketeurs puissent créer des actions et exécuter leurs activités Test A/B et Ciblage d’expérience XT.
Options
Objet
Non
options > page
Booléen
Non

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);
}
recommendation-more-help
target-dev-help-dev