Prévisualisation du guide d’intégration de SDK
Une minuscule bibliothèque JavaScript synchrone qui empêche le scintillement visuel provoqué par Adobe Target personnalisation réécrivant une page en cours de rendu. Ajoutez une balise de <script> intégrée en haut de l’<head> pour que la page s’affiche uniquement lorsque le contenu personnalisé est prêt ou que le minuteur de sécurité se déclenche.
Étapes d’intégration integration-steps
-
Téléchargez le lot.
Utilisez l’interface utilisateur de Scintillement Manager pour télécharger
prehide.min.js. Le fichier est préconfiguré avec votre code client et le délai d’expiration de la protection. Aucun bloc dePrehideConfign’est donc nécessaire. -
Insérez-le en ligne tout en haut de la
<head>.Collez le contenu de
prehide.min.jsdirectement à l’intérieur d’une balise<script>intégrée en tant que premier enfant de<head>. Voir Intégré ou externe pour connaître les raisons pour lesquelles la mise en ligne est préférable.code language-html <!-- 1. Prehide SDK: must be FIRST in <head> and BEFORE any Adobe SDK --> <script> // paste the contents of prehide.min.js here </script> <!-- 2. Then load Alloy.js OR at.js --> <script src="https://your-cdn/alloy.min.js"></script> -
(Facultatif) Ajoutez un bloc de configuration d’exécution.
Obligatoire uniquement si vous auto-hébergez le lot sans le télécharger via l’interface utilisateur ou si vous devez remplacer le choix SDK. Placez le bloc de configuration avant le script de prévisualisation :
code language-html <script> window.PrehideConfig = { sdk: "alloy" // or "atjs" (defaults to "alloy") }; </script> <script> /* prehide.min.js inline contents */ </script> <script src="https://your-cdn/alloy.min.js"></script> -
(Facultatif) Congédiez le consentement.
Si votre mise en œuvre utilise une plateforme de gestion du consentement (CMP), appelez le
window.Prehide.setConsent(...)dès que l’état du consentement est connu. Voir Gestion du consentement . -
Vérifiez.
Ouvrez DevTools et vérifiez que
<style id="alloy-prehiding">(ouat-body-stylepour at.js) apparaît dans<head>sur la première peinture et est supprimé une fois le SDK terminé. Exécutezwindow.Prehide.getState()dans la console pour inspecter l’état d’exécution.
Où placer le script script-placement
N’ajoutez pas de
async ni de defer à la balise de script Prehide SDK. Une exécution synchrone est requise afin que la règle de masquage soit injectée avant que le navigateur ne commence à afficher la page.Le SDK de prémasquage doit apparaître plus tôt dans le document que le SDK de Adobe Target qui le supprime. L’ordre de chargement est non négociable :
<!doctype html>
<html>
<head>
<!-- ① Prehide SDK FIRST. Inline. Synchronous. No async/defer. -->
<script> /* prehide.min.js inline contents */ </script>
<!-- ② Alloy or at.js loads next -->
<script src="https://cdn.alloy.adobe.com/alloy.min.js"></script>
<!-- ③ Then everything else: meta, css, third-party tags, ... -->
<link rel="stylesheet" href="main.css">
</head>
<body> ... your page ... </body>
</html>
Inline ou externe inline-vs-external
Il existe deux manières d’inclure prehide.min.js :
<script>/* full contents of prehide.min.js pasted directly into the page */</script><script src="/static/prehide.min.js"></script>Pourquoi privilégier la mise en ligne
<script>...</script> dans votre modèle HTML. Traitez-le comme un bloc CSS critique : petit, en ligne et toujours tout en haut.- Aucune récupération bloquant le rendu. L’objectif du SDK Prehide est d’injecter des règles de masquage avant le premier rendu. Un
<script src>externe ajoute un aller-retour réseau exactement dans cette fenêtre critique. - Aucun nouveau mode d’échec. Un fichier externe peut 404, expirer ou être bloqué par un bloqueur de publicités. Une copie en ligne ne le peut pas.
- Le lot est petit (~6 Ko). La mise en ligne coûte moins cher qu’un favicon classique et aucun avantage de mise en cache n’est suffisamment important pour l’emporter sur l’aller-retour supplémentaire au premier rendu.
- Compatible avec le cache. Lorsqu’il est intégré dans la réponse d’HTML, le SDK est mis en cache avec le reste du document par votre couche de mise en cache existante (cache CDN ou HTTP du navigateur).
- Offre groupée spécifique au client. Le fichier téléchargé contient votre code client au moment du téléchargement. La mise en ligne permet de s’assurer que chaque visiteur reçoit le lot personnalisé approprié sans demande supplémentaire.
Configuration configuration
Le SDK accepte la configuration de deux sources, par ordre de priorité. Il lit ce qui est disponible en premier.
window.PrehideConfig d’exécution (intégration manuelle)
Pour les lots auto-hébergés ou non modifiés, déclarez un objet config avant l’exécution du script de prévisualisation :
<script>
window.PrehideConfig = {
sdk: "alloy" // optional: "alloy" (default) or "atjs"
};
</script>
sdk"alloy""atjs"SDK selection sdk-selection
Adobe Target propose deux SDK de diffusion : Alloy (le SDK Web moderne) et at.js (la bibliothèque classique). Chaque recherche un élément de <style> différent id une fois la personnalisation terminée et le supprime pour afficher la page. Le SDK Prehide doit injecter la id correspondante ; sinon la page reste masquée jusqu’au déclenchement du minuteur de sécurité.
sdk"alloy" (par défaut)<style id="alloy-prehiding">"atjs"<style id="at-body-style">Comment le définir
<!-- For at.js -->
<script>
window.PrehideConfig = { sdk: "atjs" };
</script>
<script> /* prehide.min.js inline */ </script>
<script src="https://cdn.adobe.com/.../at.js"></script>
sdk: "alloy" lors du chargement d’at.js (ou inversement) signifie que le SDK ne trouvera pas l’élément de prévisualisation à supprimer. Le minuteur de garde finira par révéler la page, mais les visiteurs verront une fenêtre masquée plus longue. Définissez toujours sdk pour correspondre à la bibliothèque que vous chargez.Les valeurs inconnues ou manquantes reviennent à "alloy", de sorte que les intégrations Alloy existantes continuent à fonctionner sans modification de configuration.
Gestion du consentement consent-management
- La valeur de consentement n’est jamais stockée sur
window. Seule la fonction est exposée. L’état interne reste privé pour le SDK. - Les transitions de
"out"à"in"ne masquent pas à nouveau la page, car le masquage à nouveau du contenu entièrement rendu entraînerait des perturbations visuelles. setConsentpeut être appelé plusieurs fois dans une seule page vue. Chaque appel remplace l’état précédent.
Le SDK Prehide comprend une API basée sur le consentement pour se coordonner avec votre CMP. Son utilisation est facultative. Si setConsent n’est jamais appelé, le SDK se comporte comme une intégration standard sans consentement.
Surface API
// Single function call. Pass a status string.
window.Prehide.setConsent("pending"); // banner shown, awaiting decision
window.Prehide.setConsent("in"); // user accepted personalization
window.Prehide.setConsent("out"); // user declined personalization
// Read-only debug snapshot.
window.Prehide.getState();
// → { sdk, version, consentStatus, consentApiUsed,
// rulesResolved, hasSelectorsToGuard, guardTimeout }
Fonction de chaque statut
setConsent("pending")setConsent("in")setConsent("out")init() pour la durée configurée.Modèle recommandé : phase en attente explicite
-
Dès que votre CMP affiche l’interface utilisateur de consentement, appelez
setConsent("pending"). Cela efface le minuteur de sécurité afin que la page reste masquée pendant que le visiteur se décide, évitant ainsi un flash de contenu non personnalisé derrière la bannière.code language-js window.Prehide.setConsent("pending"); -
Lorsque le visiteur accepte la personnalisation, appelez
setConsent("in"). Le minuteur de garde redémarre et Alloy/at.js prend le relais, affichant la page une fois la personnalisation appliquée.code language-js window.Prehide.setConsent("in"); -
Lorsque le visiteur refuse la personnalisation, appelez
setConsent("out"). La page apparaît immédiatement et reste visible. Les règles de réseau CDN qui sont résolues ultérieurement ne le masqueront pas à nouveau.code language-js window.Prehide.setConsent("out");
Exemple : intégration de style OneTrust
// Called once OneTrust has rendered its banner.
function onOneTrustReady() {
// Pause the guard timer while the banner is visible.
window.Prehide.setConsent("pending");
OneTrust.OnConsentChanged(function (event) {
if (event.consentedToTargeting) {
window.Prehide.setConsent("in");
} else {
window.Prehide.setConsent("out");
}
});
}
Exemple : TCF / style IAB
// Optional: pause the guard while UI is up.
window.Prehide.setConsent("pending");
// Your CMP eventually emits the final TC string.
function onTcData(tcData) {
const hasTargetConsent = /* derive from tcData */;
window.Prehide.setConsent(hasTargetConsent ? "in" : "out");
}