documentUnloading (Web SDK)

La propriété documentUnloading vous permet d’utiliser la méthode sendBeacon du navigateur pour envoyer des données à Adobe. Cette méthode fait partie des API Web du navigateur, et non du langage JavaScript lui-même. Si une requête standard prend trop de temps, le navigateur peut l’annuler. Vous pouvez indiquer au SDK Web d’utiliser sendBeacon afin que la requête s’exécute en arrière-plan après avoir quitté la page. Activez cette propriété pour empêcher les requêtes de données d’être annulées par le navigateur lors du déchargement.

Web SDK n’utilise sendBeacon qu’une fois l’identité du visiteur établie. Avant qu’une identité ne soit établie (par exemple, sur le premier événement d’un nouveau visiteur), Web SDK envoie l’événement à Edge Network à l’aide de fetch afin qu’il puisse recevoir l’identité dans la réponse. À partir de la version 2.36.1, ces requêtes fetch utilisent l’option keepalive afin que le navigateur termine d’envoyer la requête même si le visiteur quitte la page.

Plusieurs navigateurs imposent une limite de 64 Ko à la quantité de données pouvant être envoyées avec sendBeacon à la fois. La même limite s’applique aux requêtes fetch qui utilisent keepalive. Si le navigateur rejette l’événement en raison d’une payload trop importante, le SDK Web revient à utiliser sa méthode de transport habituelle. Même si un navigateur donné autorise des payloads plus volumineux, les serveurs de collecte de données d’Adobe tronquent les payloads jusqu’à 64 Ko.

Définissez la valeur booléenne documentUnloading lors de l’exécution de la commande sendEvent. Sa valeur par défaut est false. Définissez cette propriété sur true si vous souhaitez utiliser la méthode sendBeacon pour envoyer des données à Adobe.

IMPORTANT
La propriété documentUnloading est incompatible avec la propriété renderDecisions. Évitez de définir les deux propriétés sur true simultanément.
alloy("sendEvent", {
  "xdm": adobeDataLayer.getState(reference),
  "documentUnloading": true
});

Valider les événements envoyés avec documentUnloading validate

Si la page quitte la page avant la fin d’une demande de sendBeacon, les outils de développement Chrome peuvent afficher la demande (de type ping) comme (annulée) même si le navigateur continue de l’envoyer. De la même manière, les requêtes envoyées à l’aide de fetch avec keepalive peuvent s’afficher comme annulées. Ce libellé seul ne permet pas de déterminer si les données ont été perdues.

Les journaux de débogage Web SDK ne peuvent pas confirmer la diffusion non plus. Les navigateurs ne renvoient pas de réponse pour les requêtes sendBeacon. Le journal affiche donc uniquement que Web SDK a envoyé la requête à l’aide de sendBeacon.

Ouvrez un outil d’inspection avant de reproduire la navigation. Recherchez une réponse de serveur capturée ou, dans une session Edge Trace/Assurance connectée, la requête entrante au niveau de l’Edge Network. Voir Demandes abandonnées pour le workflow d’inspection partagée et ses limites d’éléments de preuve. La confirmation de réception Edge n’établit pas en elle-même le traitement en aval.

Lorsque des événements peuvent être perdus data-loss

La propriété documentUnloading ne peut pas vous aider avec les événements que Web SDK n’a pas encore envoyés lorsque la page est déchargée. Par exemple, Web SDK contient des événements pendant que le consentement est pending (voir defaultConsent), ou pendant qu’il attend la fin d’une demande d’identité en cours. Dans le deuxième cas, le journal de débogage affiche Delaying request while retrieving ECID from server.

Déchargement du document à l’aide de l’extension de balise Web SDK

La case à cocher Le document sera déchargé est disponible lors de la configuration d’une action Envoyer l’événement lors de l’utilisation de l’extension de balise Web SDK.

recommendation-more-help
experience-platform-help-collection