Pour que Contentsquare capture des données pour une URL, l'étiquette de Contentsquare doit être présente. Si vous devez mettre en œuvre l'étiquette sur une page, vous devrez contacter votre Customer Success Manager pour obtenir une assistance supplémentaire.
Checklist de dépannage :
1. Tout d'abord, effacez le cache et les cookies de votre navigateur. Dans de nombreux cas, la cause profonde peut être liée au cache. Veuillez vérifier si le problème est résolu après avoir effacé le cache et les cookies avant de continuer.
2. Assurez-vous que la page web a fini de se charger avant de prendre une capture dans l'analyse de zoning.
3. Vérifiez la période choisie dans le contexte d'analyse :
- L'étiquette de Contentsquare était-elle active à ce moment-là ?
-
Ou la page a-t-elle subi des modifications entre la date de création du zoning et la période sélectionnée ? (par ex. votre page a changé le 8 janvier. Vous avez créé le zoning le 19 janvier : choisissez une période commençant après le 8 janvier pour votre analyse).
Comment le zoning et les replays collectent-ils des 'ressources statiques' pour recréer automatiquement mon site ?
Lisez cet article pour en savoir plus sur la façon dont Contentsquare collecte les ressources statiques de votre site à l'aide des CS Scrapers.
Comment le zoning et les replays utilisent-ils les 'ressources en direct' lorsque les ressources statiques ne sont pas disponibles ?
Les ressources en direct utilisent les URL en direct des ressources d'une page (CSS, images, polices) pour rendre cette page dans l'analyse de zoning de Contentsquare et les fonctionnalités de replay de session si les CS Scrapers ne peuvent pas télécharger et stocker toutes vos ressources statiques.
- Dans l'analyse de zoning, si les ressources statiques ne sont pas disponibles, Contentsquare récupère le contenu de votre site en direct pour que vous puissiez l'analyser.
- Dans le replay de session, si les ressources statiques ne sont pas disponibles, vous pouvez temporairement sélectionner l'option 'Utiliser les ressources en direct' dans le lecteur pour analyser les données de votre site en direct.
Pourquoi mon zoning/replay ne s'affiche-t-il pas correctement ?
Il existe plusieurs raisons pour lesquelles Contentsquare ne pourrait pas télécharger les ressources statiques de votre site :
Authentification | la ressource est authentifiée (généralement avec un cookie) |
Restriction géographique | la ressource n'est disponible que pour certains emplacements géographiques (généralement par pays) |
VPN | la ressource est derrière un réseau privé et n'est pas disponible sur Internet |
En-têtes/cookies spéciaux
|
la ressource nécessite un en-tête ou un cookie spécifique
|
Interdiction d'IP
|
l'IP du proxy passerelle est bannie par le serveur client cible
|
Comment faire fonctionner les zonings et les replays avec votre site web
Voici les différentes méthodes disponibles pour configurer votre site afin qu'il fonctionne avec Contentsquare.
Pour corriger l'affichage de votre zoning / replay, vous devrez peut-être contacter votre :
- Customer Success Manager
- fournisseur de réseau de distribution de contenu (CDN)
Créer un en-tête personnalisé (méthode préférée)
Créer un en-tête personnalisé “X-CONTENTSQUARE-SIGNATURE” pour valider nos demandes est généralement effectué lors de votre déploiement Contentsquare, si vous n'avez pas déjà d'en-têtes personnalisés mis en œuvre et que vous souhaitez le faire, veuillez contacter votre CSM pour plus d'assistance.
Raisons pour lesquelles l'en-tête personnalisé est préféré
- Il est à l'épreuve du futur, c'est-à-dire que si nos IP changent, cela n'affectera pas la fonctionnalité de zoning / replay de session, car vous n'utiliserez pas une méthode de liste blanche d'IP.
- Fournit la capacité de monitorer chaque requête entrante depuis le proxy en filtrant à l'aide de notre en-tête personnalisé.
- Il est plus sûr que d'utiliser un en-tête personnalisé statique.
Comment cela fonctionne
Lorsque vous créez votre projet Contentsquare, une signature unique est générée. Contentsquare utilise cette signature unique dans l'en-tête de toutes nos requêtes HTTP. Pour permettre aux requêtes d'être effectuées côté serveur, vous devrez valider les requêtes avec la valeur de l'en-tête "X-CONTENTSQUARE-SIGNATURE".
Voici les trois principaux éléments qui génèrent votre signature unique :
1. Un horodatage
2. Domaine de la ressource ex : https://www.cstore.com/other/microsoftteams-image-219_23938923.png
3. Le secret de votre projet (chaque projet CS a un secret généré lors de la création du projet que Contentsquare stocke) :
Voici un exemple de la façon dont il est généré -
Contentsquare génère un horodatage avec
Date.now()
, hache le secret du projet que nous avons obtenu des paramètres du proxy (cf. point 3 ci-dessus). Utilisez le domaine de la ressource (cf. point 2) avec l'horodatage et mettez à jour le hachage avec cela. Ensuite, nous construisons une nouvelle chaîne avec l'horodatage et concaténons le digest en "base64" à cela. Résultat : "timestamp-hash"
Exemple de requête d'en-tête -
Comment décoder la signature
- Analysez la chaîne pour extraire l'horodatage (égal à 1674119100708 dans l'exemple ci-dessus).
- Utilisez le domaine de la ressource.
- Contentsquare a votre secretSignature, et vous devrez le demander à votre CSM.
Une fois que vous avez les trois piliers utilisés pour générer la signature, vérifiez-la par rapport à celle de Contentsquare et validez-la.
Comment valider la signature
- Prenez le secret et utilisez la fonction cryptographique “sha256” dessus.
- Ensuite, mettez à jour le hachage avec l'horodatage et le domaine.
- Composez une chaîne avec l'horodatage et le digest en encodage base64 : "{timestamp}-{digestBase64/hash}".
- Selon votre backend, vous devrez trouver un processus pour générer dynamiquement la signature et valider les requêtes avec le X-CONTENTSQUARE-SIGNATURE.
Pour plus de sécurité, il est possible de vérifier que l'horodatage est dans une certaine plage horaire par rapport à maintenant. Dans l'exemple de code suivant, nous vérifions qu'il n'a pas plus de 5 minutes – s'il est plus ancien, le code rejette la signature.
Déploiement avec exemple de code
NodeJS :
const crypto = require('crypto'); const secret = 'secretKey'; // Donné par quelqu'un de CS receivedHeaderExample = '1617243555555-D9gh1234G56789HijklMnopQrstuvWxYz='; // Extraire le timestamp et le digest de l'en-tête reçu const [timestamp, receivedDigest] = receivedHeaderExample.split('-'); // Exemple d'étape de sécurité supplémentaire pour s'assurer que le timestamp n'est pas trop ancien const currentTimestamp = Date.now(); if(currentTimestamp - timestamp > 5 * 60 * 1000) { throw new Error("Validation échouée. La signature du timestamp est plus ancienne que 5 minutes"); } // Recréer la chaîne qui a été utilisée pour générer le digest const dataToSign = `${resourceDomain}-${timestamp}`; // Créer un nouveau digest en utilisant le même secret et algorithme const hmac = crypto.createHmac('sha256', secret); hmac.update(dataToSign); const generatedDigest = hmac.digest('base64'); // Comparer le nouveau digest généré avec celui reçu dans l'en-tête if (receivedDigest === generatedDigest) { console.log('L\'en-tête est valide'); // Code pour valider la demande }
Mettre sur liste blanche les adresses IP de Contentsquare
Il peut être nécessaire de mettre sur liste blanche les adresses IP de Contentsquare, auquel cas vous devriez consulter notre guide sur Les adresses IP et les domaines à mettre sur liste blanche.
Utiliser un proxy
Contentsquare peut vous aider à contourner les restrictions géographiques en utilisant un proxy pour un emplacement différent. Un proxy a sa propre adresse IP et peut fonctionner dans une région spécifique du monde.