L'optimisation pour les moteurs de recherche (SEO) est essentielle pour augmenter le trafic naturel vers votre site Web.

Pour vous assurer que tous les moteurs de recherche sont en mesure d’afficher et d’indexer votre contenu généré par les utilisateurs (CGU) dans toutes les situations, implémentez le SEO en utilisant l’une des méthodes suivantes :

  • Balises Schema.org : solution SEO côté client (recommandé)
    Remarque : pour plus d'informations sur les performances de SEO côté client, consultez l'article Balises Schema.org.
  • BVSEO : solution BVSEO côté serveur. Cet article se concentre principalement sur notre solution BVSEO côté serveur.
Attention : si votre implémentation existante utilise le fichier scout (bvapi.js), consultez la documentation de BVSEO v1 plutôt que les sujets traités dans les liens suivants. Bazaarvoice vous encourage à migrer vers la v2 (en utilisant le fichier de chargement BV, bv.js) pour bénéficier de l'amélioration des performances et des innovations à venir.

En plus de notre solution SEO côté serveur, notre intégration JavaScript côté client est fournie par défaut avec notre solution hébergée. Elle tire parti des fonctions améliorées d'indexation du JavaScript de Google. Si votre trafic issu des moteurs de recherche provient essentiellement de Google, l'intégration JavaScript côté client fournit des avantages similaires sur le référencement à moindres frais. Ensemble, les solutions de référencement côté serveur et côté client fournissent des résultats remarquables en matière de référencement et une expérience utilisateur optimale.

En savoir plus sur les recherches optimisées :

Fonctionnalités prises en charge

Le contenu géré par Bazaarvoice est injecté dans le code source de vos pages via un kit de développement logiciel (SDK) côté serveur. Ci-dessous, la liste des fonctionnalités prises en charge pour Java, .NET et PHP.

Fonctionnalité Description Java .NET PHP
Ratings & Reviews Les notes et les avis sur les produits sont injectés au moyen de getContent, getReviews et getAggregateRating.
Questions & Answers Les questions et réponses sur les produits sont injectés à l'aide de getContent.
Avis sur le marchand Pour accéder aux avis sur le marchand, il faut utiliser getContent.
Prise en charge de configurations multiples De multiples configurations sont prises en charges dans un seul environnement.
SSL Accédez au contenu en toute sécurité.
Prise en charge de proxies Accédez au contenu par des passerelles proxy dans un réseau restreint.
Débogage Des instructions de dépannage sont disponibles à des fins de débogage.
Jeu de caractères Prise en charge de jeux de caractères propres aux utilisateurs lors de la récupération de contenu.

Présentation de la configuration

Pour configurer BVSEO, votre équipe technique doit effectuer les actions suivantes :

Code JavaScript compatible avec Google

Le contenu généré par les utilisateurs (CGU) diffusé par Bazaarvoice tire parti des nouvelles capacités de Google d'indexation du code JavaScript. Lisez les concepts suivants pour obtenir de meilleurs résultats en termes d'optimisation pour les moteurs de recherche (SEO) lorsque vous utilisez JavaScript pour déployer du CGU.

Balises Schema.org

Bazaarvoice ajoute des balises schema.org correctement formatées au CGU publié sur vos pages Web. Lorsque Google indexe ces balises, vous avez plus de chances de voir apparaître les rich snippets d'avis dans les résultats de recherche.

Remarque : pour vous assurer de la bonne lecture des balises schema.org, consultez les instructions détaillées de l'article Ajouter des balises schema.org.

Liens entre les pages de contenu CGU

Lorsque le CGU s'étend sur plusieurs pages, Bazaarvoice utilise des liens href entre les pages, ce qui permet aux moteurs de recherche d'indexer plus facilement ce contenu.

Lorsque les acheteurs consultent une page de produit qui contient plus d'une page d'avis, ils interagissent uniquement avec le code JavaScript. L'URL ne change pas. Bazaarvoice crée de manière dynamique des liens href entre les pages de CGU pour l'indexation par les moteurs de recherche uniquement. Ceux-ci redirigent directement les acheteurs vers les résultats pertinents.

Remarque : si vous avez déjà un déploiement en cours, vous devrez peut-être le redéployer en production pour obtenir ces résultats sur le SEO.

Format des liens de pagination

Bazaarvoice ajoute un paramètre bvstate aux URL. Celui-ci utilise des paires clé-valeur pour définir le type de contenu et la page de CGU à afficher. Le tableau ci-dessous présente des exemples d'utilisation possibles du paramètre bvstate.

Texte du paramètre Explication

?bvstate=pg:2/ct:r

  • Type de contenu : Ratings & Reviews
  • Page: 2

?bvstate=pg:4/ct:q

  • Type de contenu : Questions & Answers
  • Page: 4

Bazaarvoice ajoute le paramètre bvstate aux URL dans la balise canonique de votre implémentation. Les consommateurs ne rencontrent le paramètre bvstate que lorsqu’ils cliquent sur un lien à partir des résultats de recherche.

Remarque : le paramètre bvstate remplace les paramètres de pagination utilisés auparavant par Bazaarvoice comme bvrrp, bvqap, bvsyp et bvpage. Ces anciens paramètres ne seront bientôt plus utilisés.

Se préparer à paramétrer la SEO

Commencez votre implémentation en répondant aux questions des sections suivantes afin d'éliminer les surprises et retard lors de la configuration.

Option A : utilisez un plug-in de plateforme

Si le site Web a été conçu sur Demandware, Magento, Hybris ou GSI, il est probable qu'un plug-in soit utilisé pour déployer BVSEO.

Option B : utilisez l'un des kits SDK de BVSEO

Si le site Web a été conçu avec Java, .NET ou PHP, les kits SDK de BVSEO faciliteront l'intégration optimisée pour le référencement. Rendez-vous à la question suivante pour passer en revue les informations à prendre en compte avant le déploiement des kits SDK de BVSEO .

Option C : développez une solution personnalisée basée sur les kits SDK de BVSEO

Si le site Web a été créé à l'aide d'une autre technologie, Ruby ou Perl par exemple, vous devrez développer votre propre solution. Les kits SDK de BVSEO sont open source et publiés dans GitHub. Ils seront utiles aux entreprises qui développent leur propre solution. Passez à la section 2, qui concerne également le développement de solutions personnalisées.

1. Sera-t-il possible d'effectuer le codage côté serveur ?

  • Oui – L'intégration de BVSEO nécessite un déploiement côté serveur pour injecter du contenu optimisé pour la recherche dans le code source.
  • Non – si vous n'êtes pas en mesure d'effectuer des modifications côté serveur, vous ne pourrez pas implémenter BVSEO sur votre site. Contactez l'assistance client Bazaarvoice pour obtenir des informations sur d'autres ressources SEO.

2. Existe-t-il une mise en cache au niveau de la page ? (Akamai est souvent utilisé pour la mise en cache au niveau de la page).

La mise en cache peut améliorer la vitesse et l'efficacité, et ainsi modifier l'intégration de BVSEO. Prenez en compte les questions suivantes liées à la mise en cache.

  • Oui – Si les pages où BVSEO sera implémentée utilisent une mise en cache pour chaque page, définissez EXECUTION_TIMEOUT sur 2 000 ms. Ainsi, vous aurez la garantie que le contenu optimisé pour le référencement est toujours inclus dans la version mise en cache.
  • Non – Aucune tâche requise.

3. La page utilise-t-elle l'URL complète comme clé de cache ?

La mise en cache peut améliorer la vitesse et l'efficacité, et ainsi modifier l'intégration de BVSEO. Prenez en compte les questions suivantes liées à la mise en cache.

BVSEO utilise les paramètres d'URL bvrrp, bvqap, bvsyp et bvpage pour gérer la pagination. http://exemple.com et http://exemple.com?bvrrp=stuff sont des pages uniques et doivent être traitées comme telles par les systèmes de mise en cache de pages.

  • Oui – Aucune tâche requise.
  • Non – Le système de mise en cache et/ou le système de masquage de l'URL doivent être mis à jour dans le cadre du déploiement.

4. Un système de mise en cache local sera-t-il utilisé pour réduire le nombre d'appels côté serveur vers le cloud ?

BVSEO envoie une requête HTTP ou HTTPS à seo.bazaarvoice.com (seo-stg.bazaarvoice.com en pré-production), et reçoit du code HTML formaté sous forme de chaîne en retour. Notre service cloud contient un cache pour assurer une livraison extrêmement efficace (souvent moins de 20 ms), mais certains clients choisissent d'ajouter une couche supplémentaire de mise en cache locale.

  • Oui – Si vous utilisez un système local de mise en cache, Bazaarvoice vous recommande un TTL d'une heure maximum.
  • Non – Aucune tâche requise.

5. Un proxy sera-t-il nécessaire ?

BVSEO doit avoir accès à seo.bazaarvoice.com (seo-stg.bazaarvoice.com en pré-production) via HTTP ou HTTPS. Les adresses IP ne sont pas disponibles. Puisque BVSEO utilise des adresses IP flottantes sur le cloud, nous ne garantissons pas que les adresses IP resteront les mêmes. Si le pare-feu exige une adresse IP, vous devez paramétrer un proxy pour fournir une adresse IP constante. Les kits SDK contiennent des options de configuration du proxy.

  • Oui – Vous devrez effectuer la configuration du proxy. Utilisez BVClientConfig.PROXY_HOST et PROXY_PORT afin de pointer le kit SDK vers le proxy lors du déploiement du kit SDK.
  • Non – Aucune tâche requise.

6. Les paramètres du pare-feu doivent-ils être ajustés ?

BVSEO doit avoir accès à seo.bazaarvoice.com (seo-stg.bazaarvoice.com en pré-production) via HTTP ou HTTPS. Si le pare-feu restreint l'accès à cette adresse, vous devrez procéder à des modifications.

  • Oui – Vous devrez ouvrir l'accès.
  • Non – Aucune tâche requise.

7. Des connexions SSL seront-elles nécessaires ?

Le contenu récupéré sur seo.bazaarvoice.com ne contient pas de donnée nécessitant une protection, mais les politiques de sécurité peuvent exiger que les connexions du côté serveur soient protégées par SSL. Le kit SDK v2.1 pour Java (et versions postérieures) et le kit SDK v2.1 pour .NET (et versions postérieures) prennent en charge la protection SSL.

  • Oui – Définissez BVClientConfig.SSL_ENABLED sur Vrai lorsque vous déployez le kit SDK.
  • Non – Aucune tâche requise.

8. Les pages utilisent-elles les balises schema.org ?

Bazaarvoice est compatible avec les balises aux formats micro données et JSON-LD. Toutefois, Google préfère les balises structurées JSON-LD. Bazaarvoice a recours à la page schema.org pour guider le balisage schema.

9. Les pages comportent-elles déjà des balises schema.org ?

Si la page sur laquelle BVSEO est déployée contient un balisage schema.org, une attention particulière doit être portée aux détails pour s'assurer que le balisage du schéma n'est pas conflictuel.

  • Oui - Toutes les balises schema.org doivent être placées dans une seule hiérarchie. Vérifiez minutieusement le code HTML généré pour vous assurer qu'une hiérarchie de code schema.org correcte y figure.
  • Non – Référez-vous à ces instructions pour savoir comment ajouter des balises schema.org sur vos pages.

10. Les pages comportent-elles déjà un type de balise schema.org ?

Les pages ne doivent contenir qu'un seul type de balise schema.org

  • Oui – Assurez-vous que la balise <script> de schema.org contient à la fois les modules rating summary et review.
  • Non – Ajoutez un type à la page. Bazaarvoice recommande l'ajout du type schema.org/Product (format microdonnées). Consultez les exemples Java, .NET ou PHP pour voir des exemples de code.
    • Ajoutez la classe schema.org/Product à une <div> qui contient à la fois les modules Notation moyenne et Avis.
    • Ajoutez le nom du produit dans la classe schema.org/Product en utilisant

      le code <div itemprop=name>[ProductName]</div> ou <meta itemprop="name" content="[ProductName]" />

      Remarque : ceci s'applique uniquement aux données structurées de type microdonnées.

11. Les pages contiennent-elles des balises canoniques ?

Si des balises canoniques sont utilisées sur les pages contenant une implémentation BVSEO, ces balises doivent être mises à jour ou supprimées lorsque le produit contient plusieurs pages d'avis, ce qui correspond en général à plus de huit avis. Ces balises canoniques doivent être supprimées car BVSEO pagine la page du produit de sorte que tous les avis soient indexés par les moteurs de recherche. Les balises canoniques qui ne pointent pas vers les URL de pagination pousseront les moteurs de recherche à ignorer le contenu paginé.

Remarque : Reportez-vous aux meilleures pratiques pour plus d'informations sur la pagination.
  • Oui – Lorsque n'importe lequel des paramètres de pagination de BVSEO (bvstate, bvrrp, bvqap, bvsyp, bvpage) est présent, procédez à l'une des actions suivantes :

    1. Supprimez la balise canonique. C'est la solution la plus commune.
    2. Ajoutez la valeur « name=value » à l'URL canonique.
  • Non – Aucune tâche requise.

Ensuite, assurez-vous de valider les pré-requis suivants :

  • Vérifiez que l'un des frameworks suivants est installé :
    • Java framework 5 (1.5) ou ultérieur
    • .NET framework 2.0 ou ultérieur
    • PHP 5.5 ou version supérieure avec librairie cURL et mbstring

  • Utiliser l'interface hébergée par Bazaarvoice, comme JavaScript ou iFrame.
  • Envoyer un catalogue produits à Bazaarvoice.
  • Faire en sorte que vos pages produits intègrent des balises Schema.org.
  • Disposer d'au moins un produit avec des avis dans votre système.

Lors du paramétrage, vous devez connaître votre BVSEO :

  • Clé du cloud
  • Dossier racine
  • ID des produits

Si vous n'avez pas ces informations, contactez l'assistance client Bazaarvoice pour en faire la demande.

Configurer les options SEO

Pour configurer des options SEO, suivez les étapes ci-dessous :

  1. Connectez-vous au portail Bazaarvoice .
  2. Dans le portail du menu, sélectionnez Configuration.
  3. Sélectionnez une instance.
  4. Sélectionnez Go to Configuration (Aller à Configuration). Le Site Manager (gestionnaire de site) apparaît et liste les zones de déploiement et les implémentations disponibles.
  5. Dans la liste Implementations, localisez l'implémentation pour laquelle vous souhaitez configurer les paramètres SEO. Sélectionnez Edit (Modifier) à côté de l'implémentation que vous souhaitez configurer.
  6. Sélectionnez SEO à gauche de la page sous Settings (Paramètres). La page SEO s'ouvre.
  7. Choisissez ou saisissez des valeurs pour chacune des options SEO suivantes :
    • Activer la publication sous forme de fichiers SEO —Sélectionnez Activé (par défaut) pour publier du contenu SEO dans le cloud ou dans un fichier d'archives SEO compressé. Vous devez également indiquer des valeurs pour Cloud key ou pour les propriétés de noms de fichiers ZIP/GZIP.
    • Dossier racine — Indiquez la syntaxe à utiliser pour le nom du dossier racine dans le cloud et/ou le fichier compressé. Utilisez ces jetons pour injecter des propriétés dynamiques dans le nom du fichier: {clientname}, {displaycode}, {deploymentzone}, {locale}. Exemple: bv-acmeinc-7012-MainSite-en_US.
    • Pagination optimisée pour le référencement — Les utilisateurs et les moteurs de recherche réagissent favorablement lorsque votre site a plusieurs pages pour un même produit et lorsque les pages subséquentes à celle de l'aperçu du produit ont environ 30 avis chacune. Sélectionnez Activé (par défaut) pour utiliser plusieurs pages pour chaque page produit.
    • Cloud key — Indiquez la valeur Cloud key pour configurer le kit SDK BVSEO. Indiquez bien toute la valeur, et pas seulement le segment chiffré. Si vous ne disposez pas d'une Cloud key, demandez-en une en soumettant un ticket d'assistance auprès de la Support Community .
    • Type schema.org/Product — Ignorez cette option, qui a été abandonnée et n'est plus utilisée.
    • Type de compression — Sélectionnez le type de compression pour les flux SEO :  ZIP (Windows) ou GZIP (UNIX). Si la fonction est désactivée, les fichiers d'archive ne seront pas publiés sur le serveur SFTP.
    • Nom de fichier ZIP/GZIP—Cette option est requise pour la publication de fichiers compressés. Indiquez la syntaxe à utiliser pour le nom de fichier SEO compressé. Utilisez ces jetons pour injecter des propriétés dynamiques dans le nom du fichier: {clientname}, {displaycode}, {deploymentzone}. L'extension de fichier est automatiquement ajoutée selon le type de compression sélectionné. Exemple: bv_acmeinc_7012_MainSite-en_US.zip.
    • Emplacement de la balise AggregateRating — Google n'affichera vos étoiles « rich snippet »  que sur les pages comportant une balise AggregateRating de type schema.org. Pour insérer cette balise, choisissez un emplacement parmi les options suivantes : 
      • Résumé des notes principales (par défaut) — Insère la balise AggregateRating dans la page de résumé des notes principales. Bazaarvoice vous recommande cette option.
      • Espace Avis — Insère la balise AggregateRating en haut de l'espace des avis.
      • Supprimer la balise AggregateRating — Supprime la balise AggregateRating.

Ajouter du code à l'aide du SDK Java

Afin d'installer le kit SDK pour Java, les exigences suivantes doivent être respectées:

  • Maîtriser les développements Java, Java EE et le déploiement sur des serveurs applicatifs
  • Java 1.6 ou une version supérieure
  • Bibliothèque du kit SDK BVSEO pour Java

Bazaarvoice suit les niveaux d'assistance d'Oracle pour le JRE pris en charge par le kit SDK pour Java. Pour obtenir plus d'informations, consultez le guide d'assistance client d'Oracle Java SE .

Télécharger le SDK

Téléchargez le fichier approprié du kit SDK pour Java à partir de l'emplacement suivant : Kit SDK BVSEO pour Java .

Après avoir décompressé le fichier, choisissez le package qui convient le mieux à votre environnement dans le tableau ci-dessous :

Kit SDK pour Java Description
Bv-seo-sdk-{version}-jar-with-dependencies.jar Toutes les dépendances sont contenues dans le fichier.
Bv-seo-sdk-{version}.jar Aucune dépendance n'est contenue dans le fichier.
Bv-seo-sdk-{version}-osgi.jar Ce kit SDK est réservé aux environnements qui prennent en charge OSGi.

Si vous n'êtes pas certain de savoir quel kit SDK utiliser, choisissez un kit en fonction des scénarios suivants.

  • Mon environnement prend en charge OSGi — Utilisez le SDK Bv-seo-sdk-{version}-osgi.jar. C'est la bibliothèque recommandée pour les environnements OSGi.
  • Mon environnement ne prend pas en charge OSGi — Utilisez le fichier Bv-seo-sdk-{version}-jar-with-dependencies.jar s'il n'y a pas de conflits de version causés par les bibliothèques du kit SDK utilisées dans votre environnement.
  • Mon environnement ne prend pas en charge OSGi et il existe des conflits de versions —Utilisez le fichier bv-seo-sdk-{version}.jar. Cette bibliothèque ne contient pas de dépendances, vous devez donc identifier les bibliothèques manquantes et les fournir manuellement. Cela peut se faire lors de la compilation, s'il y a des erreurs de compilation, ou lors de l'exécution s'il y a des erreurs de type «class not found» (classe non trouvée).

Personnaliser le kit SDK

Les kits SDK de BVSEO conviennent à la plupart des environnements. Cependant, les kits SDK de BVSEO sont en open source sous licence Apache et peuvent être personnalisés selon vos besoins. Vous assumez l'entière responsabilité des personnalisations que vous apportez. Celles-ci ne seront pas prises en charge par Bazaarvoice.

Partez du lien suivant pour effectuer des personnalisations : github.com/bazaarvoice/seo_sdk_java

Mettre en place le projet

Suivez ces étapes pour configurer votre projet.

Pour configurer votre projet, choisissez les paramètres de votre environnement serveur Java, puis préparez votre environnement de déploiement.

Configurer votre environnement serveur

Remarque : cette section ne concerne que les clients déployant leur site grâce à Java EE.

Le kit SDK Java prend en charge le recueil de chaînes d'agent utilisateur, ce qui nous permet de proposer un contenu généré par les utilisateurs (CGU) plus adapté aux consommateurs. Si votre entreprise héberge son site Web via Java EE, vous devez mettre à jour le fichier web.xml , que vous trouverez dans le dossier WEB-INF.

Copiez-collez le texte suivant dans l'élément <web-app> de votre fichier web.xml :

<filter>
    <filter-name>BVSeoSdkRequestFilter</filter-name>
    <filter-class>com.bazaarvoice.seo.sdk.servlet.RequestFilter</filter-class>
</filter>
<filter-mapping> 
    <filter-name>BVSeoSdkRequestFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Configurer votre environnement de développement

Suivez les étapes listées ci-dessous afin de configurer votre environnement de développement. Des exemples de valeurs sont fournies pour chaque étape, avec un exemple de code. Référez-vous aux exemples de codes Java afin d'obtenir des exemples de codes complets pour différents scénarios que vous pouvez configurer selon vos besoins.

  1. Créez un projet Web à partir de votre IDE.

    Exemple: sampleweb

  2. Collez la bibliothèque du kit SDK sous WebContent/WEB-INF/lib.

    Exemple : bv-seo-sdk-{version}-jar-with-dependencies.jar

  3. Créez une page JSP dans le dossier WebContent. En principe, cette page JSP doit être la page de détails du produit (PDP).

    Exemple: sample.jsp

  4. Configurez le fichier JSP.

    Exemple: Coding sample.jsp

  5. Exportez le projet en tant que fichier WAR et déployez-le sur Tomcat .

    Exemple: le projet est exécuté depuis l'IDE, qui utilise Tomcat.

  6. Ouvrez l'URL et affichez la source de la page pour découvrir le contenu injecté.

    Exemple: http://localhost:8080/sampleweb/sample.jsp

La structure de votre projet doit ressembler à l'exemple suivant :

Configurer le fichier JSP

Suivez les étapes ci-dessous afin de configurer le fichier JSP que vous avez créé lors de la procédure précédente.

  1. Effectuez la configuration en utilisant BVConfiguration.

    L'exemple de code utilise la classe BVSdkConfiguration, qui est une implémentation de BVConfiguration. Assurez-vous d'importer com.bazaarvoice.seo.sdk.config.BVConfiguration dans la page, puis ajoutez les configurations appropriées en utilisant addProperty. Reportez-vous à la section BVConfiguration des Paramètres et fonctionnalités du kit SDK pour Java pour de plus amples informations.

    La méthode addProperty est utilisée pour ajouter une configuration / des propriétés à BVSdkConfiguration. Elle contient les paramètres de type enum BVClientConfig et valeurs de type String. L'exemple contient plusieurs propriétés déjà ajoutées.

  2. Définissez les paramètres de votre page de produit en utilisant BVParameters.

    Cette étape fournit des détails spécifiques au contenu de la page produit. Définissez les paramètres en utilisant la classe BVParameters, qui peut être importée à partir de com.bazaarvoice.seo.sdk.model.BVParameters. Veuillez inclure les champs obligatoires comme indiqué dans les exemples de code Java présentés dans cet article.

  3. Récupérez le contenu en utilisant BVManagedUIContent.

    BVUIContent possède trois APIs. Reportez-vous à la section Paramètres et fonctionnalités du kit SDK pour Java pour de plus amples informations sur chaque API. L'exemple utilise l'API getContent et BVManagedUIContent, qui est une implémentation de BVUIContent. Lorsque vous lancez une instance de BVManagedUIContent, spécifiez BVSdkConfiguration et appelez getContent en transmettant les paramètres BVParameters. L'API renvoie une chaîne qui inclut le contenu BVSEO que vous pouvez utiliser dans le fichier JSP.

Tester votre application

Suivez ces étapes pour tester et déboguer votre application du kit SDK pour Java.

  1. Déployez un fichier WAR ou utilisez un serveur applicatif tel que Tomcat pour exécuter votre application.
  2. Accédez à l'application via une URL.

    Exemple: http://localhost:8080/SampleWeb/sample.jsp

  3. Visualisez la source de la page. Le contenu des avis ainsi que les balises <metadata> SEO devraient apparaître dans le conteneur BVRRContainer.
  4. Vérifiez que les balises des métadonnées SEO apparaissent après chaque avis, comme indiqué dans l'exemple suivant :
<ul id="BVSEOSDK_meta" style="display:none !important">
	<li data-bvseo="sdk">bvseo_sdk, java_sdk, bvseo-x.y.z</li>
	<li data-bvseo="sp_mt">getContent, method:CLOUD, 188ms</li>
	<li data-bvseo="ct_st">REVIEWS, PRODUCT</li>
</ul>

Si les balises des métadonnées SEO ne correspondent pas, étudiez le problème et prenez les mesures appropriées, selon le message d'erreur qui s'affiche dans la balise <metadata> SEO.

Pour déboguer votre application, procédez comme suit :

Étape 1 : ajout de bvreveal=debug

  1. Ajoutez le paramètre bvreveal=debug à l'URL de toutes les pages dans lesquelles BVSEO est implémenté.

    Exemple: http://yoursite.net/ExampleGetContent.aspx?bvreveal=debug

    Le paramètre bvreveal=debug ajoute les listes BVSEOSDK_meta et BVSEOSDK_DEBUG au code source, celles-ci contiennent des informations sur votre implémentation. S'il n'y a pas de contenu généré par les utilisateurs (CGU), bvseo-msg fournira plus de détails.

    Remarque : si pageurl n'est pas configuré correctement, bvreveal=debug ne fonctionnera pas. Si vous ne spécifiez aucun pied de page de débogage, les liens de pagination pourront être erronés.
  2. Affichez le code source de la page pour obtenir des informations sur votre implémentation. Celles-ci sont spécifiées dans BVSEOSDK_meta et BVSEOSDK_DEBUG. Reportez-vous à l'exemple de code fourni à la fin de cette section.

Étape 2 : recherche du contenu

Vérifiez s'il existe du contenu pour l'attribut contentURL demandé, comme décrit dans les étapes suivantes :

  1. Localisez l'attribut contentURL dans la liste BVSEOSDK_DEBUG. Exemple : <li data-bvseo="contentURL">http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm</li>
  2. Dans le terminal, exécutez la commande curl –i. Exemple: curl –i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"

Si la commande curl ne renvoie aucun contenu, cela peut être dû à un problème de pare-feu ou aucun contenu n'existe pour cet élément ProductID. Contactez votre représentant Bazaarvoice pour obtenir de l'aide supplémentaire.

Messages d'erreur

Les messages d'erreur suivants peuvent s'afficher lors du débogage.

  • Le code d'état HTTP 0 a été renvoyé (ou) la connexion à seo-stg.bazaarvoice.com a été refusée — indique qu'un pare-feu est présent sur votre réseau. Ce pare-feu peut éventuellement bloquer les requêtes sortantes de votre réseau. Contactez votre administrateur informatique pour résoudre les problèmes liés au pare-feu.
  • La ressource vers l'URL ou le fichier est actuellement indisponible — indique qu'un problème est survenu lors de la configuration de l'implémentation ou qu'aucun contenu n'a été généré pour le produit spécifié.

Par exemple :

<ul id="BVSEOSDK_meta" style="display:none!important"> <li data-bvseo="sdk">bvseo_sdk, java_sdk, x.y.z</li> <li data-bvseo="sp_mt">getContent, method:CLOUD, 656ms</li> <li data-bvseo="ct_st">QUESTIONS, PRODUCT</li> <li data-bvseo="ms">bvseo-msg: The resource to the URL or file is currently unavailable.;</li> </ul> <ul id="BVSEOSDK_DEBUG" style="display:none;"> <li data-bvseo="crawlerAgentPattern">yandex</li> <li data-bvseo="staging">true</li> <li data-bvseo="seo.sdk.enabled">true</li> <li data-bvseo="testingProductionS3Hostname">seo-qa.bazaarvoice.com</li> <li data-bvseo="stagingS3Hostname">seo-stg.bazaarvoice.com</li> <li data-bvseo="seo.sdk.execution.proxy.host">none</li> <li data-bvseo="seo.sdk.execution.timeout.bot">2000</li> <li data-bvseo="socketTimeout">2000</li> <li data-bvseo="testingStagingS3Hostname">seo-qa-stg.bazaarvoice.com</li> <li data-bvseo="cloudKey">myshco-3e3001e88d9c32d19a17cafacb81bec7</li> <li data-bvseo="localSEOFileRoot">/</li> <li data-bvseo="bv.root.folder">9344</li> <li data-bvseo="seo.sdk.execution.proxy.port">0</li> <li data-bvseo="testing">false</li> <li data-bvseo="productionS3Hostname">seo.bazaarvoice.com</li> <li data-bvseo="connectTimeout">2000</li> <li data-bvseo="loadSEOFilesLocally">false</li> <li data-bvseo="seo.sdk.charset">UTF-8</li> <li data-bvseo="seo.sdk.ssl.enabled">false</li> <li data-bvseo="includeDisplayIntegrationCode">false</li> <li data-bvseo="seo.sdk.execution.timeout">1500</li> <li data-bvseo="en">true</li> <li data-bvseo="pn">bvseo-2</li> <li data-bvseo="userAgent">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36</li> <li data-bvseo="baseURI">http://bvvseodotnetdevelopment.azurewebsites.net/ExampleGetContent.aspx</li> <li data-bvseo="pageURI">http://bvvseodotnetdevelopment.azurewebsites.net/ExampleGetContent.aspx?bvstate=pg:2/ct:q/reveal:debug</li> <li data-bvseo="subjectId">5000001</li> <li data-bvseo="contentType">questions</li> <li data-bvseo="subjectType">product</li> <li data-bvseo="contentURL">http://seo-stg.bazaarvoice.com/myshco-3e3001e88d9c32d19a17cafacb81bec7/9344/questions/product/2/5000001.htm</li> </ul>

Paramètres et fonctionnalités du kit SDK pour Java

Cette rubrique fournit des informations sur les classes principales du kit SDK de BVSEO, notamment les options de configuration et les méthodes d'utilisation pour la plateforme Java.

BVConfiguration

BVConfiguration permet de configurer le kit SDK BVSEO. Ce kit comporte deux APIs:

  1. BVConfiguration.addProperty : ajoute des propriétés à BVConfiguration.
  2. BVConfiguration.getProperty : obtient des propriétés de BVConfiguration.
    Remarque : BVConfiguration.getProperty est exclusivement réservé à l'usage interne de Bazaarvoice.

BVConfiguration est une interface sous com.bazaarvoice.seo.sdk.config et la classe d'implémentation connue est com.bazaarvoice.seo.sdk.config.BVSdkConfiguration.

Utilisation de Java

BVConfiguration bvConfiguration = new BVSdkConfiguration();

Ajout de propriétés à l'aide de BVConfiguration.addProperty

Lorsque vous ajoutez ou définissez des attributs dans BVConfiguration, vous modifiez les fonctionnalités et le comportement du kit SDK. Les options de configuration sont répertoriés dans le tableau des attributs de configuration du kit SDK.

Définissez les attributs en utilisant BVConfiguration.addProperty (BVClientConfig bvClientConfig, String value).

Utilisation de Java

bvConfiguration.addProperty(BVClientConfig.CLOUD_KEY, “your_cloud_key”);

Attribut Type Description
CLOUD_KEY Obligatoire Chaîne Cloud Key. Clé utilisée pour trouver les fichiers SEO sur le cloud. Contactez Bazaarvoice pour demander la valeur requise. Cet attribut est facultatif si vous utilisez LOAD_LOCAL_FILES.
BV_ROOT_FOLDER Obligatoire Chemin d'accès du dossier. Définit le dossier dans lequel les fichiers SEO sont situés. On l'appelle aussi code d'affichage. Des dossiers racines uniques sont créés pour chaque zone de déploiement et langue. Contactez Bazaarvoice pour demander la valeur à utiliser pour cette propriété.

SEO_SDK_ENABLED

Facultatif Booléen. Définit s'il faut activer le kit SDK SEO (vrai) ou le désactiver (faux).

Par défaut: Vrai
EXECUTION_TIMEOUT Facultatif Valeur numérique. Indique le temps en millisecondes (ms) pour effectuer l'appel de SEO pour les agents utilisateurs et les robots des moteurs de recherche (comme les navigateurs) qui ne correspondent pas à la liste CRAWLER_AGENT_PATTERN.
Default: 500
EXECUTION_TIMEOUT_BOT Facultatif Valeur numérique. Indique le temps en millisecondes (ms) pour effectuer l'appel SEO pour les robots des moteurs de recherche qui correspondent à la liste CRAWLER_AGENT_PATTERN.

Par défaut: 2000.
CRAWLER_AGENT_PATTERN Facultatif Liste des agents utilisateurs des robots de moteurs de recherche. Remplace la liste par défaut des agents utilisateurs des robots de moteurs de recherche.  Vous pouvez ajouter ou retirer des agents de cette liste. Les valeurs sont séparées par la barre verticale «|».

Par défaut: msnbot|google|teoma|bingbot|
yandexbot|yahoo
Test Facultatif

Valeur booléenne. Indique s'il faut obtenir le contenu SEO à partir de la pré-production (Vrai) ou de la mise en production (Faux). Ne s’applique pas lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut: Faux

Remarque : vous pourriez oublier de désactiver les données de pré-production. Si vous ne recevez pas de contenu en production, vérifiez si le kit SDK est paramétré pour recevoir les données de test (True).
SOCKET_TIMEOUT Facultatif

Valeur numérique. Indique un délai d'exécution permettant d'établir la connexion et de lire l'intégralité du contenu. Cette valeur est utilisée en interne par le kit SDK.

Ne la modifiez pas, sauf si un problème de réseau ou de bande passante provoque de fréquentes expirations de délais liés aux sockets/à la lecture. Cette valeur est utilisée pour le SEO sur le cloud et n'est pas applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut : 2 000 ms

CONNECT_TIMEOUT Facultatif Valeur numérique. Indique un délai d'exécution pour établir une connexion vers le SEO dans le cloud. Utilisé en interne par le kit SDK. Ne pas modifier, sauf si nécessaire.

Par défaut : 2 000 ms
CHARSET Facultatif Déclaration du jeu de caractères. Si celle-ci n'est pas définie, la valeur par défaut est UTF-8. Par exemple, utilisez "shift_jis" lorsque le jeu de caractères Shift JIS est utilisé.

Par défaut : utilise la valeur par défaut définie par votre système d'exploitation.
SSL_ENABLED Facultatif

Valeur booléenne. Indique si des connexions SSL sont nécessaires (Vrai) ou non. Non applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut: Faux

PROXY_HOST Facultatif Déclaration d'hôte du proxy. Définit un hôte de proxy, qui est requis par certains clients pour des raisons de sécurité. La plupart du temps, il est utilisé quand les règles du pare-feu ne peuvent être définies que pour une adresse IP, et non un domaine. Le SEO dans le cloud utilise de nombreuses adresses IP qui peuvent changer à tout moment. Bazaarvoice ne fournit donc pas d'adresses IP de SEO dans le cloud à ses clients. Non applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.
Remarque : pour activer le proxy, définissez PROXY_HOST et PROXY_PORT.
PROXY_PORT Facultatif Valeur numérique. Indique le numéro de port d'écoute du système proxy/passerelle. À utiliser avec PROXY_HOST.
LOAD_SEO_FILES_LOCALLY Facultatif (Déconseillé.) Valeur booléenne. Définit s'il faut charger les fichiers SEO en local (vrai) ou non (faux). Une configuration de fichier en local permet parfois de dépasser les limites du système. Un système de fichiers en local peut se montrer fragile car Bazaarvoice n'est pas responsable de la récupération, de la décompression ou de la distribution quotidienne des fichiers SEO. Définissez LOCAL_SEO_FILE_ROOT pour activer des fichiers locaux.
LOCAL_SEO_FILE_ROOT Facultatif

(Déconseillé.) Valeur booléenne. Décide si le chemin racine du contenu SEO extrait doit être défini sur BV_ROOT_FOLDER sur le système de fichiers en local (Vrai) ou pas (Faux). À utiliser avec LOAD_SEO_FILES_LOCALLY.

BVParameters

BVParameters sont les paramètres de page ou de page produit permettant d'accéder au contenu SEO d'un produit. Utilisez les attributs donnés dans le tableau des paramètres de kit SDK suivants pour définir les valeurs des champs.

Il s'agit d'un modèle utilisé par le kit SDK dans la classe com.bazaarvoice.seo.sdk.model.BVParameters.

Utilisation de Java

BVParameters bvParameters = new BVParameters();
bvParameters.setSubjectId(“exampleExternalId”);
bvParameters.set…

Attribut Type Description
setUserAgent Obligatoire Information d'en-tête de l'agent utilisateur du navigateur. Cette valeur est utilisée par le kit SDK pour déterminer s'il s'agit d'un robot de moteur de recherche ou d'un utilisateur normal. Elle peut être récupérée à partir de HTTPServletRequest dans Java. Ce robot de moteur de recherche est identifié et comparé à la liste CRAWLER_AGENT_PATTERN.
setBaseURI Obligatoire URL utilisée pour créer des liens de pagination. Bazaarvoice ajoutera le paramètre bvstate à l'URL de base (base_url). Dans la plupart des cas, cette valeur inclut l'URL canonique de la page du produit ou service.

Obligatoire pour les avis sur les produits. L'URL peut être absolue, relative ou vide (valeur null autorisée).
setPageURI Obligatoire Envoie tous les paramètres de requête joints à l'URL en cours. Bazaarvoice utilisera ces paramètres pour déterminer la page d'avis ou de questions et réponses à inclure. Vous devez envoyer l’URL complète.
setSubjectID Obligatoire Identifiant du sujet de SEO permettant de récupérer le contenu, qui dépend de la valeur SubjectType que vous avez sélectionnée. Par exemple, si vous avez choisi Product comme SubjectType, cette valeur correspond à productId. Si SubjectType est Category, la valeur est reviewId.
setContentType Obligatoire Type enum défini dans ContentType et qui récupère le contenu SEO. Les valeurs possibles sont les suivantes : REVIEWS, REVIEWSPAGE, QUESTIONS, QUESTIONSPAGE et UNIVERSAL.
setSubjectType Obligatoire Type enum défini dans SubjectType et qui récupère le contenu d'un type de sujet spécifique. Les valeurs possibles sont PRODUCT, CATEGORY, ENTRY ou DETAIL.

BVUIContent

BVUIContent est utilisé pour obtenir le contenu SEO après que vous avez spécifié les valeurs correctes pour BVConfiguration et BVParameters.

BVUIContent affiche trois API : getContent, getReviews et getAggregateRating. Chacune de ces API nécessite des paramètres BVParameters valides. Le tableau suivant des API BVUIContent explique comment utiliser ces API.

L'interface BVUIContent est située dans le package com.bazaarvoice.seo.sdk. La classe d'implémentation est com.bazaarvoice.seo.sdk.BVManagedUIContent.

Utilisation de Java

BVUIContent bvUIContent = new BVManagedUIContent(bvConfiguration);
String theContent = bvUIContent.getContent(bvParameters);

API Objectif
getContent(BVParameters) Récupère la totalité du contenu de l'objet. Les types de contenu pris en charge incluent les avis et les questions. Ces types sont définis dans BVParameters. Injectez ce contenu dans la section de résumé des notes de la page produit. Le contenu recueilli est ensuite injecté sous forme d'un bloc unique de balises, qui inclut le contenu principal et le contenu agrégé, le cas échéant.
getReviews(BVParameters) Récupère la section des avis et ignore la section agrégée du type de contenu REVIEWS. Ce contenu est injecté dans la section des avis de la page produit.
getAggregateRating(BVParameters) Récupère la section de la note agrégée du type de contenu REVIEWS. Injectez ce contenu dans la section de résumé des notes de la page produit.

Exemples de code Java

Les exemples fournis dans cette section déploient les kits SDK directement dans la couche de présentation. Le code se trouve ainsi simplifié, mais cette pratique est déconseillée. L'objectif de cet exemple est de présenter une intégration du kit SDK. Assurez-vous de mettre à jour votre code afin d'utiliser des valeurs correctes.

Remarque : Sauf mention contraire, tous les exemples illustrent une intégration qui récupère les fichiers dans le cloud.

Cet exemple illustre l'intégration Ratings & Reviews de BVSEO.

<%@page import="com.bazaarvoice.seo.sdk.model.ContentType"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><% //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Set BV Parameters that are specific to the page and content type. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Ratings & Reviews integration of BVSEO</h1> <h2>Using cloud for file retrieval</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div data-bv-show="rating_summary" data-bv-product-id="ExternalId"> <%=sBvOutputSummary%> </div> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <%=sBvOutputReviews%> </div> </div> </body> </html>

Cet exemple illustre l'intégration Ratings & Reviews de BVSEO avec des paramètres de configuration facultatifs.

<%@page import="com.bazaarvoice.seo.sdk.model.ContentType"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><% //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //à régler pour chaque région //paramètres de configuration facultatifs _bvConfig.addProperty(BVClientConfig.CHARSET, "UTF-8"); _bvConfig.addProperty(BVClientConfig.EXECUTION_TIMEOUT, "250"); _bvConfig.addProperty(BVClientConfig.EXECUTION_TIMEOUT_BOT, "1500"); _bvConfig.addProperty(BVClientConfig.CRAWLER_AGENT_PATTERN, "google|msnbot|bingbot|yandex"); //définir votre propre liste de bots _bvConfig.addProperty(BVClientConfig.SSL_ENABLED, "false"); _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Préparez les valeurs pageURL et SubjectID/ProductID. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Set BV Parameters that are specific to the page and content type. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Ratings & Reviews integration of BVSEO</h1> <h2>Using cloud for file retrieval with optional configuration parameters</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div data-bv-show="rating_summary" data-bv-product-id="ExternalId"> <%=sBvOutputSummary%> </div> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <%=sBvOutputReviews%> </div> </div> </body> </html>

Cet exemple illustre l'intégration Seller Ratings de BVSEO.

<%@page import="com.bazaarvoice.seo.sdk.model.ContentType"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "srd-testcustomer-1-c3a130de760b3105e75e8202cb22e541"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); BVParameters _bvParam = new BVParameters(); _bvParam.setUserAgent(request.getHeader( "User-Agent" )); _bvParam.setPageURI(pageURL); _bvParam.setContentType(ContentType.REVIEWS); // Remplacer le paramètre par défaut de PRODUCT par SELLER _bvParam.setSubjectType(SubjectType.SELLER); // Définir subjectId sur seller _bvParam.setSubjectId("seller"); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); String srdContent = _bvOutput.getContent(_bvParam);%> <html> <body> <div id="BVSellerRatingsContainer"> <%=srdContent%> </div> </body> </html>

Cet exemple illustre l'intégration Ratings & Reviews de BVSEO via le système de fichiers local plutôt que le cloud pour la récupération des fichiers. Reportez-vous à la section Meilleures pratiques pour sélectionner une méthode de fichier pour en savoir plus.

<%@page import="com.bazaarvoice.seo.sdk.model.ContentType"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% //Establish a new BVConfiguration. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY, "true"); // set to false if using cloud-based content _bvConfig.addProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT, "/"); //include the path to your _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Set BV Parameters that are specific to the page and content type. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Ratings & Reviews integration of BVSEO</h1> <h2>Using local file system instead of cloud for file retrieval</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div data-bv-show="rating_summary" data-bv-product-id="ExternalId"> <%=sBvOutputSummary%> </div> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <%=sBvOutputReviews%> </div> </div> </body> </html>

Cet exemple illustre l'intégration Ratings & Reviews de BVSEO via un proxy.

<%@page import="com.bazaarvoice.seo.sdk.model.ContentType"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% //Establish a new BVConfiguration. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.PROXY_HOST, "00.000.000.000"); _bvConfig.addProperty(BVClientConfig.PROXY_PORT, "80");_bvConfig.addProperty(BVClientConfig.STAGING, "true");//Préparez les valeurs de pageURL et SubjectID/ProductID. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Set BV Parameters that are specific to the page and content type. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Ratings & Reviews integration of BVSEO</h1> <h2>Using cloud for file retrieval via a proxy</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div data-bv-show="rating_summary" data-bv-product-id="ExternalId"> <%=sBvOutputSummary%> </div> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <%=sBvOutputReviews%> </div> </div> </body> </html>

Cet exemple illustre l'intégration Ratings & Reviews et Questions & Answers de BVSEO.

<%@page import="com.bazaarvoice.seo.sdk.model.ContentType"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Set BV Parameters that are specific to the page and content type. //BVParameters for Ratings & Reviews BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only //BVQAParameters for Questions & Answers BVParameters _bvQAParam = new BVParameters(); _bvQAParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvQAParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvQAParam.setContentType(ContentType.QUESTIONS); _bvQAParam.setSubjectType(SubjectType.PRODUCT); _bvQAParam.setSubjectId(subjectID); BVUIContent _bvQAOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputQAContent = _bvQAOutput.getContent(_bvQAParam); //Pour Questions & Answers toujours utiliser getContent. %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Ratings & Reviews and Questions & Answers integration of BVSEO</h1> <h2>Using cloud for file retrieval</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div data-bv-show="rating_summary" data-bv-product-id="ExternalId"> <%=sBvOutputSummary%> </div> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <%=sBvOutputReviews%> </div> </div> <div data-bv-show="questions" data-bv-product-id="ExternalId"> <%=sBvOutputQAContent%> </div> </body> </html>

Ajouter du code à l'aide du SDK .NET

Afin d'installer le kit SDK .NET, les exigences suivantes doivent être respectées:

  • Bonne connaissance du développement .NET et de l'IDE Visual Studio
  • .NET Framework 3.5 ou supérieur
  • Visual Studio
  • Bibliothèque du kit SDK BVSEO pour .NET

Télécharger le SDK

Téléchargez le fichier approprié du kit SDK pour .NET à partir de l'emplacement suivant : Kit SDK BVSEO pour .NET .

Le tableau suivant affiche les fichiers inclus dans votre téléchargement.

Nom du fichier Description
BVSeoSdkDotNet.dll Bibliothèque BVSEO qui prend en charge le SEO dans le cloud mais aussi la méthode par fichiers locaux.
Commons.dll Dépendance bibliothèque pour Apache Commons.
log4net.dll Dépendance bibliothèque pour la connexion.
NVelocity.dll Dépendance bibliothèque pour Apache NVelocity, qui gère les modèles.
BVSeoSdkDotNet.pdb Contient des informations de débogage.

Personnaliser le kit SDK

Les kits SDK de BVSEO conviennent à la plupart des environnements. Cependant, les kits SDK de BVSEO sont en open source sous licence Apache et peuvent être personnalisés selon vos besoins. Vous assumez l'entière responsabilité des personnalisations que vous apportez. Celles-ci ne seront pas prises en charge par Bazaarvoice.

Partez du lien suivant pour effectuer des personnalisations : github.com/bazaarvoice/seo_sdk_dotnet

Mettre en place le projet

Suivez ces étapes pour configurer votre projet. Chaque étape comprend une valeur d'exemple.

  1. Créez un projet d'application Web ASP.NET dans l'IDE Visual Studio, puis sélectionnez un modèle vide.

    Par exemple : SampleWebApplication

  2. Décompressez le contenu du fichier zip de la bibliothèque SDK que vous avez téléchargée.

  3. Dans l'Explorateur de solutions, développez le nouveau projet et faites un clic droit sur les références afin d'ajouter les bibliothèques suivantes à partir du fichier binaire du kit SDK : BVSeoSdkDotNet.dll, Commons.dll, log4net.dll et NVelocity.dll.
  4. Ajoutez une nouvelle page aspx à votre application. En principe, cette page doit être la page de votre produit (PDP).

    Par exemple : exemple de code Sample.aspx

  5. Ajoutez le code nécessaire dans les fichiers Sample.aspx et Sample.aspx.cs, comme indiqué dans l'exemple de code.
  6. Faites un clic droit sur Sample.aspx et ajoutez le fichier en tant que page de démarrage.
    Remarque : Pour les étapes 6 et 7, assurez-vous que l'application SampleWebApplication est bien votre projet de départ si votre solution contient plusieurs projets.
  7. Appuyez sur Crtl+F5 pour exécuter votre application ou ouvrez le menu de débogage, puis sélectionnez Exécuter sans débogage.

Configurer le code .NET

Suivez les étapes ci-dessous pour configurer le code .NET :

  1. Effectuez la configuration en utilisant BVConfiguration.
  2. Définissez les paramètres de votre page PDP en utilisant BVParameters.

  3. Récupérez le contenu en utilisant BVManagedUIContent.

Reportez-vous à la section Paramètres des fonctionnalités du kit SDK pour .NET pour de plus amples informations sur chacune de ces étapes.

Reportez-vous aux exemples de code .NET afin d'obtenir des exemples de code.

Tester votre application

Suivez ces étapes pour tester et déboguer votre application du kit SDK pour .NET.

  1. Accédez à l'application via une URL. L'exécution de votre application à l'aide de l'IDE doit ouvrir automatiquement votre page, si celle-ci a été configurée comme page de démarrage.

    Par exemple:http://localhost:8080/Sample.aspx

  2. Visualisez la source de la page. Le contenu des avis ainsi que les balises <metadata> SEO devraient apparaître dans le conteneur BVRRContainer.
  3. Vérifiez que les balises <metadata> SEO, comme indiqué dans l'exemple suivant, apparaissent après chaque avis.
<ul id="BVSEOSDK_meta" style="display:none!important;">
 	<li data-bvseo="sdk">bvseo_sdk, net_sdk, x.y.z.0</li>
 	<li data-bvseo="sp_mt">getReviews, method:CLOUD, 33ms</li>
 	<li data-bvseo="ct_st">REVIEWS, PRODUCT</li>
 </ul>

Si les balises <metadata> SEO ne correspondent pas comme dans l'exemple de code, étudiez le problème et prenez les mesures appropriées, selon le message d'erreur qui s'affiche dans la balise des <metadata> SEO.

Pour déboguer votre application, procédez comme suit :

Étape 1 : ajout de bvreveal=debug

  1. Ajoutez le paramètre bvreveal=debug à l'URL de toutes les pages dans lesquelles BVSEO est implémenté.

    Exemple: http://yoursite.net/ExampleGetContent.aspx?bvreveal=debug

    Le paramètre bvreveal=debug ajoute les listes BVSEOSDK_meta et BVSEOSDK_DEBUG au code source, celles-ci contiennent des informations sur votre implémentation. S'il n'y a pas de contenu généré par les utilisateurs (CGU), bvseo-msg fournira plus de détails.

    Remarque : si pageurl n'est pas configuré correctement, bvreveal=debug ne fonctionnera pas. Si vous ne spécifiez aucun pied de page de débogage, les liens de pagination pourront être erronés.
  2. Affichez le code source de la page pour obtenir des informations sur votre implémentation. Celles-ci sont spécifiées dans BVSEOSDK_meta et BVSEOSDK_DEBUG. Reportez-vous à l'exemple de code fourni à la fin de cette section.

Étape 2 : recherche du contenu

Vérifiez s'il existe du contenu pour l'attribut contentURL demandé, comme décrit dans les étapes suivantes :

  1. Localisez l'attribut contentURL dans la liste BVSEOSDK_DEBUG. Exemple : <li data-bvseo="contentURL">http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm</li>
  2. Dans le terminal, exécutez la commande curl –i. Exemple: curl –i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"

Si la commande curl ne renvoie aucun contenu, cela peut être dû à un problème de pare-feu ou aucun contenu n'existe pour cet élément ProductID. Contactez votre représentant Bazaarvoice pour obtenir de l'aide supplémentaire.

Messages d'erreur

Les messages d'erreur suivants peuvent s'afficher lors du débogage.

  • Le code d'état HTTP 0 a été renvoyé (ou) la connexion à seo-stg.bazaarvoice.com a été refusée — indique qu'un pare-feu est présent sur votre réseau. Ce pare-feu peut éventuellement bloquer les requêtes sortantes de votre réseau. Contactez votre administrateur informatique pour résoudre les problèmes liés au pare-feu.
  • La ressource vers l'URL ou le fichier est actuellement indisponible — indique qu'un problème est survenu lors de la configuration de l'implémentation ou qu'aucun contenu n'a été généré pour le produit spécifié.

Par exemple :

<ul id="BVSEOSDK_meta" style="display:none!important"> <li data-bvseo="sdk">bvseo_sdk, net_sdk, x.y.z.0</li> <li data-bvseo="sp_mt">getContent, method:CLOUD, 656ms</li> <li data-bvseo="ct_st">QUESTIONS, PRODUCT</li> <li data-bvseo="ms">bvseo-msg: The resource to the URL or file is currently unavailable.;</li> </ul> <ul id="BVSEOSDK_DEBUG" style="display:none;"> <li data-bvseo="crawlerAgentPattern">yandex</li> <li data-bvseo="staging">true</li> <li data-bvseo="seo.sdk.enabled">true</li> <li data-bvseo="testingProductionS3Hostname">seo-qa.bazaarvoice.com</li> <li data-bvseo="stagingS3Hostname">seo-stg.bazaarvoice.com</li> <li data-bvseo="seo.sdk.execution.proxy.host">none</li> <li data-bvseo="seo.sdk.execution.timeout.bot">2000</li> <li data-bvseo="socketTimeout">2000</li> <li data-bvseo="testingStagingS3Hostname">seo-qa-stg.bazaarvoice.com</li> <li data-bvseo="cloudKey">myshco-3e3001e88d9c32d19a17cafacb81bec7</li> <li data-bvseo="localSEOFileRoot">/</li> <li data-bvseo="bv.root.folder">9344</li> <li data-bvseo="seo.sdk.execution.proxy.port">0</li> <li data-bvseo="testing">false</li> <li data-bvseo="productionS3Hostname">seo.bazaarvoice.com</li> <li data-bvseo="connectTimeout">2000</li> <li data-bvseo="loadSEOFilesLocally">false</li> <li data-bvseo="seo.sdk.charset">UTF-8</li> <li data-bvseo="seo.sdk.ssl.enabled">false</li> <li data-bvseo="includeDisplayIntegrationCode">false</li> <li data-bvseo="seo.sdk.execution.timeout">1500</li> <li data-bvseo="en">true</li> <li data-bvseo="pn">bvseo-2</li> <li data-bvseo="userAgent">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36</li> <li data-bvseo="baseURI">http://bvvseodotnetdevelopment.azurewebsites.net/ExampleGetContent.aspx</li> <li data-bvseo="pageURI">http://bvvseodotnetdevelopment.azurewebsites.net/ExampleGetContent.aspx?bvstate=pg:2/ct:q/reveal:debug</li> <li data-bvseo="subjectId">5000001</li> <li data-bvseo="contentType">questions</li> <li data-bvseo="subjectType">product</li> <li data-bvseo="contentURL">http://seo-stg.bazaarvoice.com/myshco-3e3001e88d9c32d19a17cafacb81bec7/9344/questions/product/2/5000001.htm</li> </ul>

Paramètres et fonctionnalités du kit SDK pour .NET

Cette rubrique fournit des informations sur les classes principales du kit SDK de BVSEO, notamment les options et méthodes de configuration pour une utilisation avec la plateforme .NET.

BVConfiguration

BVConfiguration permet de configurer le kit SDK BVSEO. Ce kit comporte deux APIs:

  1. BVConfiguration.addProperty : ajoute des propriétés à BVConfiguration.
  2. BVConfiguration.getProperty : obtient des propriétés de BVConfiguration.
    Remarque : BVConfiguration.getProperty est exclusivement réservé à l'usage interne de Bazaarvoice.

BVSdkConfiguration est une interface d'implémentation pour BVConfiguration. Assurez-vous de l'ajouter en utilisant BVSeoSdkDotNet.Config.

Utilisation de .NET

BVConfiguration bvConfig = new BVSdkConfiguration();

Ajout de propriétés

Lorsque vous ajoutez ou définissez des attributs dans BVConfiguration, vous modifiez les fonctionnalités et le comportement du kit SDK. Les options de configuration sont listées dans le tableau des attributs de configuration du kit SDK suivant.

Définissez ces attributs en utilisant la méthode addProperty sur BVConfiguration.

.NET usage: bvConfig.addProperty(BVClientConfig.CLOUD_KEY, “your_cloud_key”);

Tableau des attributs de configuration du kit SDK

Attribut Type Description
CLOUD_KEY Obligatoire Chaîne Cloud Key. Clé utilisée pour trouver les fichiers SEO sur le cloud. Contactez Bazaarvoice pour demander la valeur requise. Cet attribut est facultatif si vous utilisez LOAD_LOCAL_FILES.
BV_ROOT_FOLDER Obligatoire Chemin d'accès du dossier. Définit le dossier dans lequel les fichiers SEO sont situés. On l'appelle aussi code d'affichage. Des dossiers racines uniques sont créés pour chaque zone de déploiement et langue. Contactez Bazaarvoice pour demander la valeur à utiliser pour cette propriété.

SEO_SDK_ENABLED

Facultatif Booléen. Définit s'il faut activer le kit SDK SEO (vrai) ou le désactiver (faux).

Par défaut: Vrai
EXECUTION_TIMEOUT Facultatif Valeur numérique. Indique le temps en millisecondes (ms) pour effectuer l'appel de SEO pour les agents utilisateurs et les robots des moteurs de recherche (comme les navigateurs) qui ne correspondent pas à la liste CRAWLER_AGENT_PATTERN.
Default: 500
EXECUTION_TIMEOUT_BOT Facultatif Valeur numérique. Indique le temps en millisecondes (ms) pour effectuer l'appel SEO pour les robots des moteurs de recherche qui correspondent à la liste CRAWLER_AGENT_PATTERN.

Par défaut: 2000.
CRAWLER_AGENT_PATTERN Facultatif Liste des agents utilisateurs des robots de moteurs de recherche. Remplace la liste par défaut des agents utilisateurs des robots de moteurs de recherche.  Vous pouvez ajouter ou retirer des agents de cette liste. Les valeurs sont séparées par la barre verticale «|».

Par défaut: msnbot|google|teoma|bingbot|
yandexbot|yahoo
Test Facultatif

Valeur booléenne. Indique s'il faut obtenir le contenu SEO à partir de la pré-production (Vrai) ou de la mise en production (Faux). Ne s’applique pas lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut: Faux

Remarque : vous pourriez oublier de désactiver les données de pré-production. Si vous ne recevez pas de contenu en production, vérifiez si le kit SDK est paramétré pour recevoir les données de test (True).
SOCKET_TIMEOUT Facultatif

Valeur numérique. Indique un délai d'exécution permettant d'établir la connexion et de lire l'intégralité du contenu. Cette valeur est utilisée en interne par le kit SDK.

Ne la modifiez pas, sauf si un problème de réseau ou de bande passante provoque de fréquentes expirations de délais liés aux sockets/à la lecture. Cette valeur est utilisée pour le SEO sur le cloud et n'est pas applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut : 2 000 ms

CONNECT_TIMEOUT Facultatif Valeur numérique. Indique un délai d'exécution pour établir une connexion vers le SEO dans le cloud. Utilisé en interne par le kit SDK. Ne pas modifier, sauf si nécessaire.

Par défaut : 2 000 ms
CHARSET Facultatif Déclaration du jeu de caractères. Si celle-ci n'est pas définie, la valeur par défaut est UTF-8. Par exemple, utilisez "shift_jis" lorsque le jeu de caractères Shift JIS est utilisé.

Par défaut : utilise la valeur par défaut définie par votre système d'exploitation.
SSL_ENABLED Facultatif

Valeur booléenne. Indique si des connexions SSL sont nécessaires (Vrai) ou non. Non applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut: Faux

PROXY_HOST Facultatif Déclaration d'hôte du proxy. Définit un hôte de proxy, qui est requis par certains clients pour des raisons de sécurité. La plupart du temps, il est utilisé quand les règles du pare-feu ne peuvent être définies que pour une adresse IP, et non un domaine. Le SEO dans le cloud utilise de nombreuses adresses IP qui peuvent changer à tout moment. Bazaarvoice ne fournit donc pas d'adresses IP de SEO dans le cloud à ses clients. Non applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.
Remarque : pour activer le proxy, définissez PROXY_HOST et PROXY_PORT.
PROXY_PORT Facultatif Valeur numérique. Indique le numéro de port d'écoute du système proxy/passerelle. À utiliser avec PROXY_HOST.
LOAD_SEO_FILES_LOCALLY Facultatif (Déconseillé.) Valeur booléenne. Définit s'il faut charger les fichiers SEO en local (vrai) ou non (faux). Une configuration de fichier en local permet parfois de dépasser les limites du système. Un système de fichiers en local peut se montrer fragile car Bazaarvoice n'est pas responsable de la récupération, de la décompression ou de la distribution quotidienne des fichiers SEO. Définissez LOCAL_SEO_FILE_ROOT pour activer des fichiers locaux.
LOCAL_SEO_FILE_ROOT Facultatif

(Déconseillé.) Valeur booléenne. Décide si le chemin racine du contenu SEO extrait doit être défini sur BV_ROOT_FOLDER sur le système de fichiers en local (Vrai) ou pas (Faux). À utiliser avec LOAD_SEO_FILES_LOCALLY.

BVParameters

BVParameters sont les paramètres de page ou de page produit permettant d'accéder au contenu SEO d'un produit. Utilisez les attributs donnés dans le tableau des paramètres de kit SDK suivants pour définir les valeurs des champs.

Ceci est un modèle utilisé par le kit SDK qui est ajouté à l'aide de BVSeoSdkDotNet.Model.

Utilisation de .NET

BVParameters bvParameters = new BVParameters
{
BaseURI = <baseURI>,

SubjectId = “exampleExternalId”
};

Ou

BVParameters bvParameters = new BVParameters();
bvParameters.SubjectId = “exampleExternalId”

Paramètres du kit SDK

Attribut Type Description
setUserAgent Obligatoire Information d'en-tête de l'agent utilisateur du navigateur. Cette valeur est utilisée par le kit SDK pour déterminer s'il s'agit d'un robot de moteur de recherche ou d'un utilisateur normal. Elle peut être récupérée à partir de HTTPServletRequest dans Java. Ce robot de moteur de recherche est identifié et comparé à la liste CRAWLER_AGENT_PATTERN.
setBaseURI Obligatoire URL utilisée pour créer des liens de pagination. Bazaarvoice ajoutera le paramètre bvstate à l'URL de base (base_url). Dans la plupart des cas, cette valeur inclut l'URL canonique de la page du produit ou service.

Obligatoire pour les avis sur les produits. L'URL peut être absolue, relative ou vide (valeur null autorisée).
setPageURI Obligatoire Envoie tous les paramètres de requête joints à l'URL en cours. Bazaarvoice utilisera ces paramètres pour déterminer la page d'avis ou de questions et réponses à inclure. Vous devez envoyer l’URL complète.
setSubjectID Obligatoire Identifiant du sujet de SEO permettant de récupérer le contenu, qui dépend de la valeur SubjectType que vous avez sélectionnée. Par exemple, si vous avez choisi Product comme SubjectType, cette valeur correspond à productId. Si SubjectType est Category, la valeur est reviewId.
setContentType Obligatoire Type enum défini dans ContentType et qui récupère le contenu SEO. Les valeurs possibles sont les suivantes : REVIEWS, REVIEWSPAGE, QUESTIONS, QUESTIONSPAGE et UNIVERSAL.
setSubjectType Obligatoire Type enum défini dans SubjectType et qui récupère le contenu d'un type de sujet spécifique. Les valeurs possibles sont PRODUCT, CATEGORY, ENTRY ou DETAIL.

BVUIContent

BVUIContent est utilisé pour obtenir le contenu SEO après que vous avez spécifié les valeurs correctes pour BVConfiguration et BVParameters.

BVUIContent affiche trois API : getContent, getReviews et getAggregateRating. Chacune de ces API nécessite des paramètres BVParameters valides. Le tableau suivant des API BVUIContent explique comment utiliser ces API.

BVManagedUIContent est une implémentation pour BVUIContent et est ajouté à l'aide de BVSeoSdkDotNet.Content.

Utilisation de .NET

BVUIContent bvUIContent = new BVManagedUIContent(bvConfig);

string theContent = bvUIContent.getContent(bvParameters);

API BVUIContent

API Objectif
getContent(BVParameters) Récupère la totalité du contenu de l'objet. Les types de contenu pris en charge incluent les avis et les questions. Ces types sont définis dans BVParameters. Injectez ce contenu dans la section de résumé des notes de la page produit. Le contenu recueilli est ensuite injecté sous forme d'un bloc unique de balises, qui inclut le contenu principal et le contenu agrégé, le cas échéant.
getReviews(BVParameters) Récupère la section des avis et ignore la section agrégée du type de contenu REVIEWS. Ce contenu est injecté dans la section des avis de la page produit.
getAggregateRating(BVParameters) Récupère la section de la note agrégée du type de contenu REVIEWS. Injectez ce contenu dans la section de résumé des notes de la page produit.

Exemples de code .NET

Les exemples fournis dans cette rubrique déploient le kit SDK directement dans un projet ASP.NET vide avec un code de formulaire ASPX derrière une page. Le code se trouve ainsi simplifié, mais cette pratique n'est pas toujours conseillée. Ces exemples ont pour but de montrer comment intégrer le kit SDK. Assurez-vous de mettre à jour votre code afin d'utiliser des valeurs correctes.

Remarque : si vous utilisez un projet de site Web, assurez-vous de remplacer la directive de page CodeBehind par CodeFile avant de copier les exemples.

Sample.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Sample.aspx.cs" Inherits="SampleWebApplication.Sample" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Sample SDK Implementation</title></head> <body> <div id="SEO_BVRRSummaryContainer" runat="sever" data-bv-show="rating_summary" data-bv-product-id="ExternalId"></div> <div id="SEO_BVRRContainer" runat="sever" data-bv-show="reviews" data-bv-product-id="ExternalId"></div> </body> </html>

Sample.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BVSeoSdkDotNet.Config; using BVSeoSdkDotNet.Content; using BVSeoSdkDotNet.Model; namespace SampleWebApplication { public partial class Sample : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { BVConfiguration bvConfig = new BVSdkConfiguration(); String cloudKey = Request.QueryString["cloudkey"]; String staging = Request.QueryString["staging"]; String testing = Request.QueryString["testing"]; String rootFolder = Request.QueryString["site"]; String productIdParam = Request.QueryString["productid"]; String subjectId = "5000001"; if (cloudKey != null) bvConfig.addProperty(BVClientConfig.CLOUD_KEY, cloudKey); else bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "myshco-3e3001e88d9c32d19a17cafacb81bec7"); if (staging != null) bvConfig.addProperty(BVClientConfig.STAGING, staging); else bvConfig.addProperty(BVClientConfig.STAGING, "true"); if (testing != null) bvConfig.addProperty(BVClientConfig.TESTING, testing); else bvConfig.addProperty(BVClientConfig.TESTING, "false"); if (rootFolder != null) bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, rootFolder); else bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "9344"); if (productIdParam != null) { //if productIdParameter is null then use the default value. If it's not null then use the parameter. If category subjectId = productIdParam; } else subjectId = "5000001"; bvConfig.addProperty(BVClientConfig.SEO_SDK_ENABLED, "true"); // use this as a kill switch bvConfig.addProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY, "false"); // set to false if using cloud-based content bvConfig.addProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT, "/"); bvConfig.addProperty(BVClientConfig.CRAWLER_AGENT_PATTERN, "yandex"); bvConfig.addProperty(BVClientConfig.EXECUTION_TIMEOUT, "1500"); bvConfig.addProperty(BVClientConfig.EXECUTION_TIMEOUT_BOT, "2000"); var bvParameters = new BVParameters { BaseURI = Request.Url.ToString().Contains("?") ? Request.Url.ToString().Substring(0, Request.Url.ToString().IndexOf("?")) : Request.Url.ToString(), PageURI = Request.Url.ToString(), ContentType = new BVContentType(BVContentType.REVIEWS), SubjectType = new BVSubjectType(BVSubjectType.PRODUCT), SubjectId = subjectId }; BVUIContent bvOutput = new BVManagedUIContent(bvConfig); SEO_BVRRSummaryContainer.InnerHtml = bvOutput.getAggregateRating(bvParameters); SEO_BVRRContainer.InnerHtml = bvOutput.getReviews(bvParameters); } } }

Cet exemple illustre l'intégration Ratings & Reviews de BVSEO.

using System; using BVSeoSdkDotNet.Config; using BVSeoSdkDotNet.Content; using BVSeoSdkDotNet.Model; using BVSeoSdkDotNet.BVException; namespace Aspx_Examples { public partial class ex_simple_rr_cloud : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration bvConfig = new BVSdkConfiguration(); bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String subjectID = "ExternalId"; String pageURL = Request.Url.ToString(); //Set BV Parameters that are specific to the page and content type. BVParameters bvParam = new BVParameters(); bvParam.BaseURI = pageURL.Contains("?") ? pageURL.Substring(0, pageURL.IndexOf("?")) : pageURL; bvParam.PageURI = Request.Url.ToString(); //this value is used to extract the page number from bv URL parameters bvParam.ContentType = new BVContentType(BVContentType.REVIEWS); bvParam.SubjectType = new BVSubjectType(BVSubjectType.PRODUCT); bvParam.SubjectId = subjectID; //Get content and place into strings, then output into the injection divs. BVUIContent bvOutput = new BVManagedUIContent(bvConfig); String sBvOutputSummary = bvOutput.getAggregateRating(bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = bvOutput.getReviews(bvParam); //getReviews delivers the review content with pagination only SEO_BVRRSummaryContainer.InnerHtml = sBvOutputSummary; SEO_BVRRContainer.InnerHtml = sBvOutputReviews; } } }

Vous pouvez aussi utiliser l'extrait de code HTML suivant.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ex-simple-rr-cloud.aspx.cs" Inherits="Aspx_Examples.ex_simple_rr_cloud" %> <!DOCTYPE html> <head runat="server"> <title></title> </head> <body> <h1>Reviews Integration of BVSEO</h1> <h2>using cloud for file retrieval</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div id="SEO_BVRRSummaryContainer" runat="sever" data-bv-show="rating_summary" data-bv-product-id="ExternalId"></div> <div id="SEO_BVRRContainer" runat="sever" data-bv-show="reviews" data-bv-product-id="ExternalId"></div> </div> </body>

Cet exemple illustre l'intégration Ratings & Reviews de BVSEO avec des paramètres de configuration facultatifs.

using System; using BVSeoSdkDotNet.Config; using BVSeoSdkDotNet.Content; using BVSeoSdkDotNet.Model; using BVSeoSdkDotNet.BVException; namespace Aspx_Examples { public partial class ex_expanded_rr_cloud : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration bvConfig = new BVSdkConfiguration(); bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale //optional configuration parameters bvConfig.addProperty(BVClientConfig.CHARSET, "UTF-8"); bvConfig.addProperty(BVClientConfig.EXECUTION_TIMEOUT, "250"); bvConfig.addProperty(BVClientConfig.EXECUTION_TIMEOUT_BOT, "1500"); bvConfig.addProperty(BVClientConfig.CRAWLER_AGENT_PATTERN, "google|msnbot|bingbot|yandex"); //set your own bot list; bvConfig.addProperty(BVClientConfig.SSL_ENABLED, "false"); bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String subjectID = "ExternalId"; String pageURL = Request.Url.ToString(); //Set BV Parameters that are specific to the page and content type. BVParameters bvParam = new BVParameters(); bvParam.BaseURI = pageURL.Contains("?") ? pageURL.Substring(0, pageURL.IndexOf("?")) : pageURL; bvParam.PageURI = Request.Url.ToString(); //this value is used to extract the page number from bv URL parameters bvParam.ContentType = new BVContentType(BVContentType.REVIEWS); bvParam.SubjectType = new BVSubjectType(BVSubjectType.PRODUCT); bvParam.SubjectId = subjectID; //Get content and place into strings, then output into the injection divs. BVUIContent bvOutput = new BVManagedUIContent(bvConfig); String outputSummary = bvOutput.getAggregateRating(bvParam); //getAggregateRating delivers the AggregateRating section only String outputReviews = bvOutput.getReviews(bvParam); //getReviews delivers the review content with pagination only SEO_BVRRSummaryContainer.InnerHtml = outputSummary; SEO_BVRRContainer.InnerHtml = outputReviews; } } }

Vous pouvez aussi utiliser l'extrait de code HTML suivant.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ex-expanded-rr-cloud.aspx.cs" Inherits="Aspx_Examples.ex_expanded_rr_cloud" %> <!DOCTYPE html> <head runat="server"> <title></title> </head> <body> <h1>Reviews Integration of BVSEO</h1> <h2>using cloud for file retrieval with optional configuration parameters</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div id="SEO_BVRRSummaryContainer" runat="sever" data-bv-show="rating_summary" data-bv-product-id="ExternalId"></div> <div id="SEO_BVRRContainer" runat="sever" data-bv-show="reviews" data-bv-product-id="ExternalId"></div> </div> </body>

Cet exemple illustre l'intégration Seller Ratings de BVSEO.

using System; using BVSeoSdkDotNet.Config; using BVSeoSdkDotNet.Content; using BVSeoSdkDotNet.Model; namespace DotNetAspxExample { public partial class ExampleGetSellerRatings : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { BVConfiguration bvConfig = new BVSdkConfiguration(); String cloudKey = Request.QueryString["cloudkey"]; String staging = Request.QueryString["staging"]; String testing = Request.QueryString["testing"]; String rootFolder = Request.QueryString["site"]; String subjectId = "seller"; if (cloudKey != null) { bvConfig.addProperty(BVClientConfig.CLOUD_KEY, cloudKey); } else { bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "srd-testcustomer-1-c3a130de760b3105e75e8202cb22e541"); } if (staging != null) { bvConfig.addProperty(BVClientConfig.STAGING, staging); } else { bvConfig.addProperty(BVClientConfig.STAGING, "false"); } if (testing != null) { bvConfig.addProperty(BVClientConfig.TESTING, testing); } else { bvConfig.addProperty(BVClientConfig.TESTING, "true"); } if (rootFolder != null) { bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, rootFolder); } else { bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); } var bvParameters = new BVParameters { BaseURI = Request.Url.ToString().Contains("?") ? Request.Url.ToString().Substring(0, Request.Url.ToString().IndexOf("?")) : Request.Url.ToString(), PageURI = Request.Url.ToString(), ContentType = new BVContentType(BVContentType.REVIEWS), SubjectType = new BVSubjectType(BVSubjectType.SELLER), SubjectId = subjectId }; BVUIContent bvOutput = new BVManagedUIContent(bvConfig); BVSellerRatingsContainer.InnerHtml = bvOutput.getContent(bvParameters); BVSEOURL.InnerHtml = bvOutput.getUrl(); } } }

Vous pouvez aussi utiliser l'extrait de code HTML suivant.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ex_simple_srd.aspx.cs" Inherits="Aspx_Examples.ex_simple_srd" %> <!DOCTYPE html> <head runat="server"> <title></title> </head> <body> <h1>Intégration des SellerRatings</h1> <div> <div id="BVSellerRatingsContainer" runat="server"></div> </div> </body>

Cet exemple illustre l'intégration Ratings & Reviews de BVSEO via le système de fichiers local plutôt que le cloud pour la récupération des fichiers. Reportez-vous à la section Sélectionner une méthode de fichiers pour obtenir de plus amples informations.

using System; using BVSeoSdkDotNet.Config; using BVSeoSdkDotNet.Content; using BVSeoSdkDotNet.Model; using BVSeoSdkDotNet.BVException; namespace Aspx_Examples { public partial class ex_simple_rr_local_file : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Establish a new BVConfiguration. BVConfiguration bvConfig = new BVSdkConfiguration(); bvConfig.addProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY, "true"); // set to false if using cloud-based content bvConfig.addProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT, "/path/to/your/zipped/seo/file"); //include the path to your bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale //Prepare pageURL and SubjectID/ProductID values. String subjectID = "ExternalId"; String pageURL = Request.Url.ToString(); //Set BV Parameters that are specific to the page and content type. BVParameters bvParam = new BVParameters(); bvParam.BaseURI = pageURL.Contains("?") ? pageURL.Substring(0, pageURL.IndexOf("?")) : pageURL; bvParam.PageURI = Request.Url.ToString(); //this value is used to extract the page number from bv URL parameters bvParam.ContentType = new BVContentType(BVContentType.REVIEWS); bvParam.SubjectType = new BVSubjectType(BVSubjectType.PRODUCT); bvParam.SubjectId = subjectID; //Get content and place into strings, then output into the injection divs. BVUIContent bvOutput = new BVManagedUIContent(bvConfig); String sBvOutputSummary = bvOutput.getAggregateRating(bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = bvOutput.getReviews(bvParam); //getReviews delivers the review content with pagination only SEO_BVRRSummaryContainer.InnerHtml = sBvOutputSummary; SEO_BVRRContainer.InnerHtml = sBvOutputReviews; } } }

Vous pouvez aussi utiliser l'extrait de code HTML suivant.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ex-simple-rr-local-file.aspx.cs" Inherits="Aspx_Examples.ex_simple_rr_local_file" %> <!DOCTYPE html> <head runat="server"> <title></title> </head> <body> <h1>Intégration de BVSEO dans les avis</h1> <h2>Utilisation du système de fichiers locaux plutôt que le cloud pour la récupération des fichiers</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div id="SEO_BVRRSummaryContainer" runat="sever" data-bv-show="rating_summary" data-bv-product-id="ExternalId"></div> <div id="SEO_BVRRContainer" runat="sever" data-bv-show="reviews" data-bv-product-id="ExternalId"></div> </div> </body>

Cet exemple illustre l'intégration Ratings & Reviews de BVSEO via un proxy.

using System; using BVSeoSdkDotNet.Config; using BVSeoSdkDotNet.Content; using BVSeoSdkDotNet.Model; using BVSeoSdkDotNet.BVException; namespace Aspx_Examples { public partial class ex_simple_rr_cloud_proxy : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Establish a new BVConfiguration. BVConfiguration bvConfig = new BVSdkConfiguration(); bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale bvConfig.addProperty(BVClientConfig.STAGING, "true"); bvConfig.addProperty(BVClientConfig.PROXY_HOST, "00.000.000.000"); bvConfig.addProperty(BVClientConfig.PROXY_PORT, "80"); //Prepare pageURL and SubjectID/ProductID values. String subjectID = "ExternalId"; String pageURL = Request.Url.ToString(); //Set BV Parameters that are specific to the page and content type. BVParameters bvParam = new BVParameters(); bvParam.BaseURI = pageURL.Contains("?") ? pageURL.Substring(0, pageURL.IndexOf("?")) : pageURL; bvParam.PageURI = Request.Url.ToString(); //this value is used to extract the page number from bv URL parameters bvParam.ContentType = new BVContentType(BVContentType.REVIEWS); bvParam.SubjectType = new BVSubjectType(BVSubjectType.PRODUCT); bvParam.SubjectId = subjectID; //Get content and place into strings, then output into the injection divs. BVUIContent bvOutput = new BVManagedUIContent(bvConfig); String sBvOutputSummary = bvOutput.getAggregateRating(bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = bvOutput.getReviews(bvParam); //getReviews delivers the review content with pagination only SEO_BVRRSummaryContainer.InnerHtml = sBvOutputSummary; SEO_BVRRContainer.InnerHtml = sBvOutputReviews; } } }

Vous pouvez aussi utiliser l'extrait de code HTML suivant.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ex-simple-rr-cloud-proxy.aspx.cs" Inherits="Aspx_Examples.ex_simple_rr_cloud_proxy" %> <!DOCTYPE html> <head runat="server"> <title></title> </head> <body> <h1>Reviews Integration of BVSEO</h1> <h2>using cloud for file retrieval via a proxy</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div id="SEO_BVRRSummaryContainer" runat="sever" data-bv-show="rating_summary" data-bv-product-id="ExternalId"></div> <div id="SEO_BVRRContainer" runat="sever" data-bv-show="reviews" data-bv-product-id="ExternalId"></div> </div> </body>

Cet exemple illustre l'intégration Ratings & Reviews et Questions & Answers de BVSEO.

using System; using BVSeoSdkDotNet.Config; using BVSeoSdkDotNet.Content; using BVSeoSdkDotNet.Model; using BVSeoSdkDotNet.BVException; namespace Aspx_Examples { public partial class ex_simple_rr_qa_cloud : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration bvConfig = new BVSdkConfiguration(); bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String subjectID = "ExternalId"; String pageURL = Request.Url.ToString(); //Set BV Parameters that are specific to the page and content type. //BVParameters for Ratings & Reviews BVParameters bvParam = new BVParameters(); bvParam.BaseURI = pageURL.Contains("?") ? pageURL.Substring(0, pageURL.IndexOf("?")) : pageURL; bvParam.PageURI = Request.Url.ToString(); //this value is used to extract the page number from bv URL parameters bvParam.ContentType = new BVContentType(BVContentType.REVIEWS); bvParam.SubjectType = new BVSubjectType(BVSubjectType.PRODUCT); bvParam.SubjectId = subjectID; BVUIContent bvOutput = new BVManagedUIContent(bvConfig); //Get content and place into strings, then output into the injection divs. String sBvOutputSummary = bvOutput.getAggregateRating(bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = bvOutput.getReviews(bvParam); //getReviews delivers the review content with pagination only SEO_BVRRSummaryContainer.InnerHtml = sBvOutputSummary; SEO_BVRRContainer.InnerHtml = sBvOutputReviews; //BVQAParameters for Questions & Answers BVParameters bvQAParam = new BVParameters(); bvQAParam.BaseURI = pageURL.Contains("?") ? pageURL.Substring(0, pageURL.IndexOf("?")) : pageURL; bvQAParam.PageURI = Request.Url.ToString(); //this value is used to extract the page number from bv URL parameters bvQAParam.ContentType = new BVContentType(BVContentType.QUESTIONS); bvQAParam.SubjectType = new BVSubjectType(BVSubjectType.PRODUCT); bvQAParam.SubjectId = subjectID; BVUIContent bvQAOutput = new BVManagedUIContent(bvConfig); //Get content and place into strings, then output into the injection divs. String sBvOutputQAContent = bvQAOutput.getContent(bvQAParam); //For Questions & Answers getContent should always be used. SEO_BVQAContainer.InnerHtml = sBvOutputQAContent; } } }

Vous pouvez aussi utiliser l'extrait de code HTML suivant.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ex-simple-rr-qa-cloud.aspx.cs" Inherits="Aspx_Examples.ex_simple_rr_qa_cloud" %> <!DOCTYPE html> <head runat="server"> <title></title> </head> <body> <h1>Reviews and Question/Answers Integration of BVSEO</h1> <h2>using cloud for file retrieval</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div id="SEO_BVRRSummaryContainer" runat="sever" data-bv-show="rating_summary" data-bv-product-id="ExternalId"></div> <div id="SEO_BVRRContainer" runat="sever" data-bv-show="reviews" data-bv-product-id="ExternalId"></div> </div> <div id="SEO_BVQAContainer" runat="sever" data-bv-show="questions" data-bv-product-id="ExternalId"></div> </body>

Ajouter du code à l'aide du SDK PHP

Afin d'installer le kit SDK PHP, les exigences suivantes doivent être respectées:

  • Serveur HTTP ou serveur Web intégré dans PHP
  • PHP 5.5 ou version supérieure avec librairie cURL et mbstring

  • Bibliothèque du kit SDK BVSEO pour PHP
Remarque : Bazaarvoice ne prend en charge que les versions PHP listées sur la page des versions php.net prises en charge .

Télécharger le SDK

Téléchargez le fichier du kit SDK pour PHP approprié à partir de l'emplacement suivant : Kit SDK BVSEO pour PHP .

Les fichiers suivants sont inclus dans le téléchargement.

Nom du fichier Description
Bvseosdk.php Bibliothèque BVSEO qui prend en charge le SEO dans le cloud mais aussi la méthode par fichiers locaux.
BVFooter.php Ce fichier sert à générer des contenus et à déboguer le pied de page du kit SDK.
BVUtility.php Principales fonctions à la demande utilisées par la bibliothèque du kit SDK de BVSEO.

Personnaliser le kit SDK

Les kits SDK de BVSEO conviennent à la plupart des environnements. Cependant, les kits SDK de BVSEO sont en open source sous licence Apache et peuvent être personnalisés selon vos besoins. Vous assumez l'entière responsabilité des personnalisations que vous apportez. Celles-ci ne seront pas prises en charge par Bazaarvoice.

Partez du lien suivant pour effectuer des personnalisations : github.com/bazaarvoice/seo_sdk_php

Mettre en place le projet

Suivez ces étapes pour configurer votre projet. Des exemples de valeurs sont fournies pour chaque étape, avec un exemple de code. Référez-vous aux exemples de codes PHP afin d'obtenir un exemple complet de différents scénarios que vous pouvez configurer selon vos besoins.

  1. Créez un fichier.

    Par exemple : sampleweb.php

  2. Incluez le fichier bvseosdk.php.
  3. Créez l'objet Bazaarvoice
  4. Appelez $bv->reviews->getReviews() dans <div data-bv-show="reviews" data-bv-productId="ExternalId"></div> pour obtenir le contenu de BVSEO . Cet appel va renvoyer le code HTML de BVSEO sous forme de chaîne.

Tester votre application

Suivez ces étapes pour tester votre application du kit SDK pour PHP.

  1. Transférez le fichier d'exemple vers un dossier hôte et accédez à l'application d'exemple en utilisant l'URL.

    Exemple : http://localhost:8080/sampleweb.php

  2. Visualisez la source de la page. Le contenu des avis ainsi que les balises <metadata> SEO devraient apparaître dans le conteneur BVRRContainer.
  3. Vérifiez que les balises <metadata> SEO, comme indiqué dans l'exemple suivant, apparaissent après chaque avis.
<ul id="BVSEOSDK_meta" style="display:none !important"> <li data-bvseo="sdk">bvseo_sdk, p_sdk, bvseo-x.y.z.0</li> <li data-bvseo="sp_mt">getContent, method:CLOUD, 188ms</li> <li data-bvseo="ct_st">REVIEWS, PRODUCT</li> </ul>

Si les balises <metadata> SEO ne correspondent pas comme dans l'exemple de code, étudiez le problème et prenez les mesures appropriées, selon le message d'erreur qui s'affiche dans la balise <metadata> SEO.

Paramètres et fonctionnalités du kit SDK pour PHP

Cette rubrique fournit les détails sur les classes principales du kit SDK BVSEO, notamment les options et méthodes de configuration pour une utilisation avec la plateforme PHP.

Configuration

Les paramètres de configuration sont ajoutés en tant que paramètres de classe BV. Définissez les propriétés de configuration en les plaçant dans le tableau d'options avec l'attribut en minuscule en tant que clé et valeur.

Utilisation de PHP

Définissez EXECUTION_TIMEOUT sur 5000 en l'ajoutant au tableau d'options avec une valeur execution_timeout => 5000.

$bv = new BV(array(
// Champs requis
'cloud_key' => 'myshco-3e3001e88d9c32d19a17cafacb81bec7',
'bv_root_folder' => 'Main_Site-ja_JP',
'subject_id' =>’5000001’,
// Nos paramètres facultatifs
'execution_timeout' => 5000,
));

Ajout de propriétés

L'ajout et le paramétrage des attributs modifie les fonctionnalités et le comportement du kit SDK. Les options de configuration sont listées dans les tableaux ci-dessous relatifs aux attributs de configuration du kit SDK pour PHP et aux paramètres du kit SDK PHP.

Tous les paramètres de configuration sont ajoutés lorsque vous lancez l'instance de la classe BV.

Attributs de configuration du kit SDK pour PHP

Attribut Type Description
CLOUD_KEY Obligatoire Utilisée pour trouver les fichiers SEO sur le cloud. Contactez Bazaarvoice pour demander la valeur à utiliser pour cette propriété. Cet attribut est facultatif si vous utilisez LOAD_LOCAL_FILES.
BV_ROOT_FOLDER Obligatoire Le dossier dans lequel les fichiers SEO sont situés. On l'appelle aussi code d'affichage. Des dossiers racines uniques sont créés pour chaque zone de déploiement et langue. Contactez Bazaarvoice pour demander la valeur à utiliser pour cette propriété.
base_url Obligatoire URL utilisée pour créer des liens de pagination. Bazaarvoice ajoutera le paramètre bvstate à l'URL de base (base_url). Dans la plupart des cas, cette valeur inclut l'URL canonique de la page du produit ou service.

Obligatoire pour les avis sur les produits. L'URL peut être absolue, relative ou vide (valeur null autorisée).
page_url Obligatoire Envoie tous les paramètres de requête joints à l'URL en cours. Bazaarvoice utilisera ces paramètres pour déterminer la page d'avis ou de questions et réponses à inclure. Vous n'êtes pas obligé d'envoyer la totalité de l'URL.
subject_id Obligatoire Identifiant du sujet de SEO permettant de récupérer le contenu, qui dépend du contenu que vous souhaitez recevoir. Pour les avis et les questions, il s'agit du ProductID.

SEO_SDK_ENABLED

Facultatif La valeur booléenne utilisée pour activer le kit SDK SEO (vrai) ou le désactiver (faux).

Par défaut: Vrai
EXECUTION_TIMEOUT Facultatif Délai en millisecondes (ms) pour effectuer l'appel de SEO pour les agents utilisateurs et les robots des moteurs de recherche (comme les navigateurs) non inclus dans la liste CRAWLER_AGENT_PATTERN.
Par défaut: 500
EXECUTION_TIMEOUT_BOT Facultatif Délai en millisecondes (ms) pour effectuer l'appel de SEO pour les robots des moteurs de recherche qui correspondent à la liste CRAWLER_AGENT_PATTERN.

Par défaut: 2000.
CRAWLER_AGENT_PATTERN Facultatif Remplace la liste par défaut des agents utilisateurs des robots de moteurs de recherche. Vous pouvez ajouter ou retirer des agents de cette liste. Les valeurs sont séparées par le signe «|».
Par défaut:msnbot|google|teoma|bingbot|yandexbot|yahoo.
Test Facultatif

Définissez la valeur sur Vrai pour récupérer le contenu SEO à partir de l'environnement de test ou sur Faux pour récupérer le contenu SEO à partir de l'environnement de production. Ne s’applique pas lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut:Faux

Remarque : Soyez prudent lorsque vous paramétrez le SDK pour récupérer les données de pré-production (True). Vous pourriez oublier de désactiver les données de pré-production.
SOCKET_TIMEOUT Facultatif

Utilisé en interne par le kit SDK en tant que délai d'exécution permettant d'établir la connexion et de lire l'intégralité du contenu.

Ne modifiez pas cette valeur, sauf s'il y a un problème de réseau ou de bande passante qui provoque de fréquents temps de latence liés aux sockets/à la lecture. Cette valeur est utilisée pour le SEO sur le cloud et n'est pas applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut : 2000 ms

CONNECT_TIMEOUT Facultatif Utilisé en interne par le kit SDK en tant que délai d'exécution permettant d'établir la connexion au SEO sur le cloud. Ne pas modifier sauf si nécessaire.
Par défaut : 2000 ms
CHARSET Facultatif Utilisez cette chaîne lorsqu'un jeu de caractères autre que UTF-8 est utilisé. Par exemple; si vous utilisez le jeu de caractères Shift JIS, vous devez saisir « shift_jis »

Par défaut : utilise la valeur par défaut définie par votre système d'exploitation.
SSL_ENABLED Facultatif

Définissez cette valeur sur Vrai si les connexions SSL sont requises. Non applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.

Par défaut:Faux

PROXY_HOST Facultatif La prise en charge d'un proxy est requise par certains clients pour des raisons de sécurité. La plupart du temps, il est utilisé quand les règles du pare-feu ne peuvent être définies que pour une adresse IP, et non un domaine. Le SEO dans le cloud utilise de nombreuses adresses IP qui peuvent changer à tout moment. Bazaarvoice ne fournit donc pas d'adresses IP de SEO dans le cloud à ses clients. Pour activer le proxy, définissez PROXY_HOST et PROXY_PORT. Non applicable lorsque vous utilisez LOAD_SEO_FILES_LOCALLY.
PROXY_PORT Facultatif Numéro de port d'écoute du système proxy/passerelle. Celui-ci doit être utilisé avec PROXY_HOST.
LOAD_SEO_FILES_LOCALLY Facultatif (Déconseillé.) Les configurations de fichiers locaux peuvent être requises pour contourner les limitations du système. Un système de fichiers en local peut se montrer fragile car Bazaarvoice n'est pas responsable de la récupération, de la décompression ou de la distribution quotidienne des fichiers SEO. Définissez LOCAL_SEO_FILE_ROOT pour activer des fichiers locaux. Les valeurs admises sont Vrai ou Faux.
LOCAL_SEO_FILE_ROOT Facultatif

(Déconseillé.) Attribut permettant de définir le chemin racine du contenu SEO extrait sur BV_ROOT_FOLDER sur le système de fichiers local. Celui-ci doit être utilisé avec LOAD_SEO_FILES_LOCALLY.

content_type Facultatif À définir selon la méthode appelée. Utilisez cet attribut avec SEOGetContent.
subject_type Facultatif À définir selon la méthode appelée.

Récupération du contenu

Une fois crée l'instance de classe BV, celle-ci peut appeler du contenu relatif aux questions et aux avis.

Utilisation de PHP

$BVContent = $bv->reviews->getContent();

API BVUIContent

API Objectif
getContent() Récupère la totalité du contenu de l'objet. Les types de contenu pris en charge incluent les avis et les questions. Ces types sont définis dans BVParameters. Injectez ce contenu dans la section de résumé des notes de la page produit. Le contenu recueilli est ensuite injecté sous forme d'un bloc unique de balises, qui inclut le contenu principal et le contenu agrégé, le cas échéant.
getReviews() Récupère la section des avis et ignore la section agrégée du type de contenu REVIEWS. Ce contenu doit être injecté dans la section des avis de la page produit.
getAggregateRating() Récupère la note globale des contenus de type  « avis » . Injectez ce contenu dans la section de résumé des notes de la page produit.

Exemples de code PHP

Les exemples de code suivants montrent l'utilisation de BVSEO dans PHP. Assurez-vous de mettre à jour votre code afin d'utiliser des valeurs correctes.

Utilisez cet exemple de code pour renvoyer les notes et avis globaux. Bazaarvoice recommande d'utiliser ce code pour les PDP.

<?php //Define the base and page URLs; ensure the protocol (http or https) matches the one used in the production site $base = 'http://' . $_SERVER['HTTP_HOST']; $page = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //Provide cloud_key, bv_root_folder, and subject_id require('bvseosdk.php'); $bv = new BV(array( 'bv_root_folder' => 'Main_Site-en_US', 'subject_id' => 'subjectID', 'cloud_key' => 'company-384757834788734', //page_url MUST include any and all URL parameters that were present in the page request; otherwise only page 1 of content can be indexed 'page_url' => $page, //base_url is the shortest possible URL that will direct to this particular product page 'base_url' => $base )); ?> <!DOCTYPE html> <html> <head> <title>BV SDK PHP Example - Simple Ratings & Reviews (recommended method)</title> </head> <body> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="ProductName" /> <div data-bv-show="rating_summary" data-bv-product-id="ExternalId"> <?php echo $bv->reviews->getAggregateRating(); ?> </div> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <?php echo $bv->reviews->getReviews(); ?> </div> </body> </html>

Utilisez cet exemple de code pour renvoyer du contenu de Questions & Answers.

<?php //Please provide cloud_key, bv_root_folder and subject_id require('bvseosdk.php'); $bv = new BV(array( 'bv_root_folder' => 'Main_Site-en_US', 'subject_id' => 'subjectID', 'cloud_key' => 'company-384757834788734', //page_url MUST include any and all URL parameters that were present in the page request; otherwise only page 1 of content can be indexed. 'page_url' => 'http://www.company.com/category/sub-category?query=value', //base_url is the shortest possible URL that will direct to this particular product page 'base_url' => 'http://www.company.com/category/sub-category', //Ensure the protocol, http:// or https://, matches the production site. )); ?><!DOCTYPE html> <html> <head> <title>BV SDK PHP Example - Questions: GetContent</title> </head> <body> This is a test page for Questions: getContent<br> This will return Questions & Answers content<br><br> <div data-bv-show="questions" data-bv-product-id="ExternalId"> <?php echo $bv->questions->getContent(); ?> </div> </body> </html>

Utilisez cet exemple de code pour renvoyer le contenu des avis sur le marchand.

<?php //Please provide cloud_key and bv_root_folder require('bvseosdk.php'); $bv = new BV(array( 'bv_root_folder' => '', 'cloud_key' => '', //page_url MUST include any and all URL parameters that were present in the page request; otherwise only page 1 of content can be indexed. 'page_url' => '', 'subject_id' => 'seller' )); ?><!DOCTYPE html> <html> <head> <title>BV SDK PHP Example - GetContent</title> </head> <body> This is a test page for SellerRatings: getContent() <br> GetContent() will return Seller Ratings content <br><br> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <?php echo $bv->sellerratings->getContent(); ?> </div> </body> </html>

Utilisez cet exemple de code pour renvoyer du contenu de Ratings et Reviews et du contenu agrégé.

<?php //Please provide cloud_key, bv_root_folder and subject_id require('bvseosdk.php'); $bv = new BV(array( 'bv_root_folder' => 'Main_Site-en_US', 'subject_id' => 'subjectID', 'cloud_key' => 'company-384757834788734', //page_url MUST include any and all URL parameters that were present in the page request; otherwise only page 1 of content can be indexed. 'page_url' => 'http://www.company.com/category/sub-category?query=value', //base_url is the shortest possible URL that will direct to this particular product page 'base_url' => 'http://www.company.com/category/sub-category', //Ensure the protocol, http:// or https://, matches the production site. )); ?><!DOCTYPE html> <html> <head> </head> <body> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <?php echo $bv->reviews->getContent(); ?> </div> </body> </html>

Meilleures pratiques

Les meilleures pratiques suivantes vous aideront à maximiser les effets du SEO sur les pages d'avis de vos produits.

Remarque : Les paramètres par défaut de BVSEO prennent en charge ces pratiques.

Même si une page de présentation d'un produit comporte un onglet dédié aux avis, les utilisateurs aiment voir ces derniers lorsqu'ils font défiler la page vers le bas. Si aucun avis ne se trouve sur la page de présentation, les moteurs de recherche considéreront que vos pages de présentation sont désuètes. En ajoutant huit avis à une page, vous augmentez considérablement son score de nouveauté dans l'algorithme de Google. De plus, les pages dotées de quelques avis visibles (pas sous un onglet) reçoivent plus régulièrement des étoiles rich snippet dans les résultats de recherche Google.

Suivez les étapes ci-dessous afin de paramétrer le nombre d'avis à afficher sur la page du produit :

  1. Depuis le Site Manager (Gestionnaire de site), identifiez l'implémentation que vous souhaitez configurer.
  2. Cliquez sur Edit (Modifier) à côté de l'implémentation pour ouvrir la plateforme de configuration.
  3. Sous User Experience (Expérience utilisateur), sélectionnez Display Options (Options d'affichage), et sélectionnez l'onglet Ratings & Reviews (Notes et avis).
  4. Faites défiler vers le bas jusqu'à la zone de texte Avis sur la première page. Saisissez le nombre d'avis que vous souhaitez afficher sur la page.

Si vous n'avez pas accès à la section Configuration sur le portail de Bazaarvoice, soumettez un ticket d'assistance pour paramétrer le nombre d'avis.

Cet élément de la stratégie de BVSEO est susceptible d’aider vos pages existantes à monter dans les résultats de recherche pour des expressions cibles.

Le tri par pertinence est meilleur en termes de SEO et de conversion. L'algorithme de pertinence recherche les avis riches en contenu et récents. Il charge donc votre affichage initial d'avis avec du contenu qui attire les moteurs de recherche. Cet élément de la stratégie de BVSEO améliore le ratio contenu/lien de votre page, la densité des mots-clés cibles, et le volume de synonymes et d'adjectifs qui accompagnent les mots-clés cibles.

Suivez ces étapes afin de paramétrer les méthodes de tri accessibles aux utilisateurs :

  1. Depuis le Site Manager (Gestionnaire de site), identifiez l'implémentation que vous souhaitez configurer.
  2. Cliquez sur Edit (Modifier) à côté de l'implémentation pour ouvrir la plateforme de configuration.
  3. Sous User Experience (Expérience utilisateur), sélectionnez Display Options (Options d'affichage), et sélectionnez l'onglet Ratings & Reviews (Notes et avis).
  4. Faites défiler jusqu'à la section Tri des avis. Dans la liste d'options de tri des avis, cochez la case Les plus pertinents afin d'activer le tri par pertinence.

Si vous n'avez pas accès à la section Configuration sur le portail de Bazaarvoice, soumettez un ticket d'assistance pour paramétrer les méthodes de tri.

Des tests poussés confirment que les utilisateurs et les moteurs de recherche réagissent favorablement lorsque votre site contient plusieurs pages pour un même produit et lorsque les pages subséquentes à celle de l'aperçu du produit comptent environ 30 avis chacune. Que vous utilisiez les kits SDK de BVSEO ou que vous implémentiez votre propre solution, assurez-vous de ne pas afficher plus de 30 avis sur chaque page.

Si vous trouviez que la pagination était difficile à mettre en œuvre auparavant, sachez que la méthode d'implémentation actuelle de BVSEO a nettement simplifié le processus. Cet élément stratégique augmentera sans doute le trafic amené par les descriptions très longues.

Les nouvelles pages créées lors de la pagination sont l'endroit parfait où cibler des mots-clés qui contiennent le mot « avis ». Dans la plupart des cas, ajouter le mot « avis » à un endroit logique des balises de titre et d'en-tête aidera dans le classement de vos pages pour les expressions de recherche très utilisées comme «  avis sur [votre marque de chaussure] » ou «  avis sur [nom de votre hôtel] ».

Cet élément de la stratégie de BVSEO aidera certainement vos pages contenant le mot « avis » à obtenir un classement élevé.

Google attribue des étoiles rich snippet aux pages Web qui contiennent des avis provenant des réseaux sociaux doté d'un balisage schema.org propre et adéquat qui ne masque aucun détail important. Les étoiles rich snippet apparaissent dans les résultats de recherche de Google, tel que le montre l'image suivante.

Les remarques et suggestions suivantes sont basées sur l'expérience que l'équipe de BVSEO a acquise en travaillant avec des centaines de clients depuis le lancement des étoiles rich snippet de Google.

  • Afin que les étoiles rich snippet s'affichent correctement, les robots du moteur de recherche de Google ne doivent en aucun cas considérer que le contenu du résumé des avis est masqué par le code CSS. Vous devrez peut-être modifier l'implémentation des onglets ou implémenter les avis hors d'un onglet si les étoiles rich snippet ne s'affichent pas dans les résultats de recherche 3 à 4 semaines après votre implémentation.

  • Bien que l'outil de test des données structurées de Google soit très utile, il est beaucoup plus généreux que la recherche Web sur Google.
  • Lorsque l'entreprise Google a lancé ses étoiles rich snippet, elle tenait une liste d'autorisation et une liste de blocage (parfois appelées « liste blanche » et « liste noire ») pour décider de leur attribution.Des vestiges de ces listes sont peut-être encore actifs.

  • La décision d'afficher ou non les étoiles rich snippets appartient à Google. Dès que le code schema.org est en place, attendez quelques semaines. Si les étapes décrites dans la rubrique « Balisage structuré et étoiles rich snippets » des FAQ ne fonctionnent pas, consultez les instructions de résolution de problèmes des rich snippets de Google, sous la rubrique Les étoiles rich snippets n'apparaissent pas .
  • Le code de BVSEO est cohérent chez tous nos clients et fonctionne bien sur des millions de pages Web. En cas de problème, vérifiez que BVSEO est correctement configurée pour le type schema.org, puis concentrez-vous sur l'environnement autour du code BVSEO.

Les kits SDK de BVSEO prennent en charge le SEO sur le cloud et la méthode du fichier local (anciennement « smart SEO »). Nous recommandons fortement d'utiliser le SEO sur le cloud plutôt que la configuration avec fichier local pour les raisons suivantes :

  • Les fichiers SEO dans le cloud sont davantage tenus à jour.
  • Les fichiers SEO dans le cloud sont plus fiables et stables.
  • Bazaarvoice s'occupe des processus de publication des fichiers SEO dans le cloud, ce qui diminue les tâches de maintenance du client en interne.
  • La méthode de fichiers SEO dans le cloud permet souvent de retrouver plus rapidement du contenu que le système de fichiers et de réseaux locaux.

Si des limitations techniques vous empêchent d'opter pour une solution dans le cloud pour votre site, Bazaarvoice vous propose de télécharger chaque jour un fichier zip qui contient tout ce dont vous avez besoin pour optimiser votre implémentation pour le référencement.

Si vous devez avoir recours à la méthode de fichier local, procédez aux étapes suivantes et référez-vous aux exemples de code local pour votre plateforme afin de terminer votre intégration SEO locale.

Remarque : cette procédure a recours au format de compression ZIP, standard sous Windows. Vous pouvez également recevoir des fichiers GZIP, standard dans les systèmes UNIX. Si vous souhaitez utiliser GZIP, rendez-vous sur la page SEO de la plateforme de configuration et sélectionnez l'option GZIP comme Compression type (Type de compression). Si vous n'avez pas accès à la section Configuration du portail Bazaarvoice, soumettez un ticket d'assistance pour pouvoir utiliser le format GZIP.
  1. Mettez en place un processus quotidien pour télécharger et décompresser le fichier ZIP qui contient le contenu de vos pages produits optimisé pour les moteurs de recherche.
  2. Vérifiez que les fichiers décompressés sont disponibles dans le système de fichiers de votre serveur Web.
  3. Implémentez le kit SDK d'intégration SEO en paramétrant la variable de chemin d'accès interne du fichier sur l'emplacement des fichiers décompressés. Référez-vous à la section Implémentation de BVSEO pour obtenir des instructions quant au téléchargement et à l'implémentation du kit SDK dans le langage de programmation côté serveur que vous utilisez.
Remarque : Vous devez impérativement mettre à jour le fichier ZIP quotidiennement. Si vous le faites moins fréquemment, le contenu de votre site Web paraîtra moins récent aux yeux des moteurs de recherche ce qui pourrait diminuer l'intérêt de votre implémentation SEO.

FAQ

Utilisez les informations des sections suivantes, elles vous aideront à résoudre vos problèmes d'implémentation de BVSEO.

Bazaarvoice vous recommande d'utiliser le navigateur Web Safari , disponible pour Windows et Mac, lors de vos tests sur le Web.

J'utilise une plateforme d’e-commerce spécifique. Est-ce que Bazaarvoice propose des plug-ins ?

Oui. Bazaarvoice propose des plug-ins Demandware, Magento, Hybris et GSI pour votre déploiement de BVSEO. Veuillez contacter votre représentant commercial ou technique Bazaarvoice pour obtenir plus d'informations.

Mon site internet a été créé à l'aide d'un autre langage de programmation, tel que Ruby ou Perl. Puis-je utiliser les kits SDK de BVSEO?

Si votre site Web a été créé à l'aide d'un autre langage de programmation, vous devrez développer votre propre solution. Les kits SDK de BVSEO sont en open source et publiés dans GitHub. Ils constituent un guide fiable pour les entreprises qui développent leur propre solution.

Comment puis-je utiliser BVSEO avec une API ?

BVSEO ne prend pas en charge les API. Veuillez consulter le site developer.bazaarvoice.com pour obtenir de la documentation sur les API.

Vous pouvez utiliser la mise en cache pour améliorer la vitesse et l'efficacité de sorte à modifier l'intégration de BVSEO.

J'utilise une mise en cache au niveau de la page. Comment puis-je être sûr(e) que le contenu optimisé pour SEO est toujours inclus dans la version en cache de ma page?

Si BVSEO est implémenté sur des pages dotées d'un cache au niveau de la page, réglez la valeur EXECUTION_TIMEOUT sur 2 000 ms.

La page utilise-t-elle l'URL complète comme clé de cache ?

BVSEO utilise les paramètres d'URL bvrrp, bvqap, bvsyp et bvpage pour gérer la pagination. Les URL suivantes doivent être traitées comme des pages uniques par les systèmes de mise en cache de page :

  • http://example.com
  • http://example.com?bvrrp=1360/reviews/product/5/10246.htm

Si vous ne suivez pas cette méthode, le système de mise en cache et le système de masquage de l'URL doivent être mis à jour dans le cadre de votre déploiement de BVSEO.

J'utilise un système de mise en cache local. Comment puis-je m'assurer que le contenu optimisé pour le référencement est toujours inclus ?

Le recours à un système de mise en cache local est très commun. Cela réduit le nombre d'appels que fait le système aux serveurs cloud du SEO. Le kit SDK ne comprend aucun service de mise en cache, mais sa réponse peut être mise en cache. Le TTL (durée de vie) du cache local ne doit pas être supérieur à trois heures.

La page contient-elle des balises canoniques ?

Les balises canoniques apparaissent dans le code source d’une page sous la forme <link rel="canonical" href=. Sur les pages dans lesquelles BVSEO est implémentée, les balises canoniques doivent être mises à jour ou supprimées si le produit contient plus d'une page d'avis. (Une page contient huit avis.) BVSEO pagine la page du produit afin que tous les avis soient dans les index des moteurs de recherche. Les balises canoniques qui ne pointent pas vers les URL de pagination pousseront les moteurs de recherche à ignorer le contenu paginé.

Remarque : Reportez-vous aux meilleures pratiques pour plus d'informations sur la pagination.

BVSEO ajoute les paramètres de pagination à la fin de votre URL sous forme de paires de nom/valeur. Lorsque l'un des paramètres de pagination de BVSEO (bvstate, bvrrp, bvqap, bvsyp, bvpage) est présent, procédez à l'une des actions suivantes :

  • Ôtez la balise canonique. C'est la solution la plus commune, et celle que nous recommandons.
  • Actualisez le code qui génère la balise canonique de votre page pour y ajouter la paire nom/valeur. Utilisez le bon paramètre de pagination tel qu'il apparaît dans l'URL pour le nom, ainsi que la valeur appropriée selon le paramètre. Par exemple, si votre page utilise le paramètre bvstate, ajoutez bvstate=pg:2/ct:r/st:p à la balise canonique de votre page.

Si la page comporte le code rel="canonical", l'URL canonique correspond-elle à l'URL de la page évaluée ?

Il peut arriver que des balises canoniques pointent vers une URL alternative. Si l'URL canonique pointe vers des pages qui ne sont pas évaluées, récupérez le code source à partir de la page canonique et utilisez celui-ci à la place.

Pouvez-vous ajouter les liens rel="next" et rel="prev" à mes liens de pagination ?

Nous ne recommandons pas d'ajouter rel="next" et rel="prev" aux liens. Les tests et l'interprétation de Bazaarvoice sur les directives de Google en matière de pagination montrent que ces balises ne devraient pas être appliquées à une liste d'avis. Ces balises indiquent aux recherches de cibler par défaut uniquement la première page des avis, même si d'autres contenus pertinents se trouvent sur les pages suivantes. Pour en savoir plus sur cette recommandation, veuillez lire les directives de Google sur le contenu paginé .

Bazaarvoice vous recommande d'utiliser la méthode de fichier sur le cloud. Elle demande moins de travail et s'avère plus fiable que la méthode avec fichier local, cette dernière étant plus fastidieuse et demandant davantage de gestion sur le long terme. Référez-vous à la section « Choisir une méthode de fichier » des bonnes pratiques pour obtenir de plus amples informations.

Remarque : Les questions et solutions de cette section concernent la méthode de fichier sur le cloud.

Un système de mise en cache local est-il utilisé pour réduire le nombre d'appels côté serveur vers le cloud ?

BVSEO envoie une requête HTTP ou HTTPS à seo.bazaarvoice.com (seo-stg.bazaarvoice.com en pré-production), et reçoit du code HTML formaté sous forme de chaîne en retour. Le service cloud contient des caches pour assurer une livraison extrêmement efficace (souvent moins de 20 ms), mais certains clients choisissent d'ajouter une couche de mise en cache locale supplémentaire. Si vous utilisez un système local de mise en cache, Bazaarvoice vous recommande un TTL d'une heure maximum.

Un proxy est-il utilisé ?

Si le pare-feu exige une adresse IP, vous devez paramétrer un proxy pour fournir une adresse IP constante. BVSEO doit avoir accès à seo.bazaarvoice.com (seo-stg.bazaarvoice.com en pré-production) via HTTP ou HTTPS. BVSEO utilise des adresses IP flottantes sur le cloud, ce qui ne garantit pas d’adresse IP stable. Pour paramétrer un proxy, utilisez BVClientConfig.PROXY_HOST et PROXY_PORT afin de rediriger le kit SDK vers le proxy.

Faut-il ajuster les paramètres du pare-feu ?

BVSEO doit avoir accès à seo.bazaarvoice.com (seo-stg.bazaarvoice.com en pré-production) via HTTP ou HTTPS. Si le pare-feu restreint l'accès à cette adresse, vous devez procéder à des modifications.

Des connexions SSL sont-elles nécessaires ?

Le contenu récupéré sur seo.bazaarvoice.com ne contient pas de donnée nécessitant une protection, mais les politiques de sécurité peuvent exiger que les connexions du côté serveur soient protégées par SSL. Le kit SDK v2.1 pour Java (et versions postérieures) et le kit SDK v2.1 pour .NET (et versions postérieures) prennent en charge la protection SSL. Pour activer les connexions SSL, définissez BVClientConfig.SSL_ENABLED sur true (vrai) lorsque vous déployez le kit SDK.

Comment les délais d'exécution fonctionnent-ils ?

La configuration du kit SDK comporte deux paramètres de délai d'exécution: EXECUTION_TIMEOUT et EXECUTION_TIMEOUT_BOT.

  • EXECUTION_TIMEOUT — Définit le délai maximum alloué à l'injection de BVSEO pour les utilisateurs finaux normaux.
  • EXECUTION_TIMEOUT_BOT— Définit le délai maximum alloué aux agents utilisateur définis dans le champ CRAWLER_AGENT_PATTERN.
Remarque : Si l'injection BVSEO dépasse le délai maximum autorisé, le système reviendra à une injection par JavaScript uniquement.

Le kit SDK comporte-t-il une détection des robots ?

D'anciennes versions du kit SDK BVSEO comprenaient une fonctionnalité de détection des robots qui bloquait complètement l'injection si un agent utilisateur était détecté. La configuration BOT_DETECTION a été supprimée du kit SDK BVSEO à partir de la version 2.1. Si vous voulez répliquer la fonctionnalité de détection des robots, paramétrez EXECUTION_TIMEOUT sur 0.

Bazaarvoice prend en charge et recommande le balisage structuré à l'aide des micro données Schema.org, car celui-ci fournit les meilleurs résultats sur tous les formats testés. Bazaarvoice utilise la page schema.org/Product comme guide à ce sujet.

Veuillez répondre aux questions suivantes afin de vous assurer que votre balisage schema.org est correctement paramétré.

Utilisez-vous la dernière version de Ratings & Reviews ?

Pour déployer des mises à jour importantes, veillez à bien utiliser la dernière version de Ratings & Reviews. Rendez-vous dans les paramètres de configuration pour obtenir les mises à jour.

La page comporte-t-elle des balises schema.org ?

Si la page sur laquelle BVSEO est déployée contient un balisage schema.org, vous devez vous assurer que les balises de schema ne soient pas en conflit. Toutes les balises schema.org doivent être correctement positionnées suivant une seule hiérarchie. Vérifiez minutieusement le code HTML généré pour vous assurer qu'une hiérarchie de code schema.org correcte y figure.

Les étoiles rich snippet sont les étoiles qui apparaissent dans les résultats de recherche de Google, tel que le montre l'image suivante.

Lisez cet article de blog pour en savoir plus sur la façon dont afficher correctement les étoiles rich snippets.

Veuillez vous référer aux questions suivantes pour vous assurer que les étoiles rich snippet apparaissent dans les résultats de recherche Google pour vos pages produits.

La page utilise-t-elle les micro-données schema.org ?

Pour obtenir de meilleurs résultats, les pages doivent utiliser les micro données Schema.org. Pour obtenir de plus amples informations, veuillez consulter Bien démarrer avec schema.org et les micro-données .

S'il existe une déclaration schema.org/WebPage, les autres éléments schema.org sont-ils tous imbriqués à l'intérieur de celle-ci ?

La déclaration schema.org/WebPage n'est pas obligatoire, mais de nombreux sites web l'utilisent. Dans ce cas, WebPage doit être le noeud lié à schema.org le plus externe.

Existe-t-il un type Schema.org pertinent pour mon contenu ?

Pour que les étoiles rich snippet s'affichent, ajoutez un type schema.org sur la page. Le type schema.org/Product fonctionne bien sur la plupart des sites Web d'e-commerce. D'autres types, tels que les hiérarchies LocalBusiness, Recipe, Event ou Restaurant pourraient toutefois convenir davantage à votre page.

Remarque : Schema.org/Product est exclu par défaut du balisage de BVSEO parce qu'il doit s'ouvrir avant le module Bazaarvoice et se fermer après celui-ci. Avant février 2015, Bazaarvoice avait activé cette fonctionnalité par défaut. Nous ne recommandons toutefois plus de placer schema.org/Product dans les conteneurs de Bazaarvoice.

Le nom du produit est-il listé dans la classe schema.org/Product ?

Le nom du produit doit être répertorié dans la classe schema.org/Product en utilisant le code <div itemprop=name>[ProductName]</div> ou <meta itemprop="name" content="[ProductName]" />.

Y a-t-il un type schema.org/Organization dans la page ?

Il serait logique que Google affiche les étoiles rich snippet pour les organisations, mais ce n'était pas le cas la dernière fois que Bazaarvoice a vérifié. Bazaarvoice recommande schema.org/LocalBusiness pour les organisations qui disposent d'un établissement physique.

N'existe-t-il qu'un seul type de balise schema.org ?

Google n'affiche les étoiles rich snippet que sur les sites qui contiennent un type au maximum.

Schema.org/AggregateRating est-il correctement imbriqué au sein de schema.org/Product (ou du type qui correspond le mieux à votre contenu) ?

AggregateRating, et tous les sous-éléments, doivent être imbriqués dans schema.org/Product.

Schema.org/AggregateRating est-il visible et NON masqué par le CSS ou NOSCRIPT ?

BVSEO cache des portions de code HTML afin de réduire les flashs lorsque AJAX habille le contenu. Cependant, la balise Aggregate Rating et les liens de pagination ne doivent pas être masqués par le CSS ou une balise NOSCRIPT. Par exemple, mettre en forme le contenu de BVSEO avec <div style="display:none;"> empêche Google d'afficher les étoiles rich snippet.

itemprop="name", correspond-il, comme son type l'indique, au contenu de itemprop="itemReviewed" fourni par BVSEO ?

Le code de BVSEO peut sembler répétitif, car itemprop="itemReviewed" apparaît plusieurs fois. Cependant, les étoiles rich snippet s'affichent de manière plus constante lorsque les deux schémas AggregateRating et Review comportent tous deux cette balise, ce qui confirme que la page traite toujours du même article. C'est surtout le cas des pages comportant beaucoup de balises.

Existe-t-il des conflits au niveau du balisage structuré ?

N'utilisez qu'un type de balisage structuré. Vos pages ne devraient pas avoir de contenu data-vocabulary.org ou hreview (microformats). Tous les balisages structurés devraient utiliser le format Scema.org .

La syndication sortante ou entrante de mon contenu risque-t-elle d'être dupliquée ?

Bazaarvoice syndique le contenu de centaines de marques et de distributeurs et ne s'inquiète pas des éventuels problèmes de duplication de contenu. Lorsque le contenu est dupliqué ou syndiqué entre une marque et un distributeur (peu importe dans quel sens), cela présente plusieurs avantages :

  • Une bonne expérience utilisateur : les produits étant vendus et affichés sur les sites du distributeur et de la marque, les acheteurs souhaitent en général découvrir les avis de ceux qui ont utilisé les produits, et ils s'attendent à voir ces avis peu importe où ils se trouvent sur Internet. S'ils ne trouvent aucun avis, ou s'il n'y en a que très peu, la qualité de l'expérience utilisateur s'en trouvera réduite.
  • Aucun problème avec Google : le contenu dupliqué est défini par Google comme « des blocs de contenu importants, appartenant à un même domaine ou répartis sur plusieurs domaines, qui sont identiques ou sensiblement similaires. » Étant donné que les avis ne forment qu'une sous-section de la page produit, et qu'ils sont mélangés entre le distributeur et la marque, nous ne prévoyons aucun problème de duplication du contenu. Aucun client n'a jamais averti Bazaarvoice qu'il avait reçu une pénalité pour contenu dupliqué ou un avertissement dans Google Webmaster Tools, le système que Google utilise pour avertir les webmasters de leurs erreurs.
  • Délai de syndication : Bazaarvoice a développé une fonctionnalité sur notre plateforme intitulée « syndication delay » (délai de syndication). Tout contenu marqué pour être syndiqué vers un autre site ne peut l'être qu'après un délai de sept (7) jours. Ainsi, Google a le temps d'indexer le contenu sur le site d'origine puis, lorsqu'il trouve le même avis sur un autre site, il sait que le contenu a été partagé. Cela ajoute énormément de valeur aux utilisateurs et ne pose pas de problème avec Google. Le délai de syndication peut être configuré en envoyant une demande via la Support Community .

Bazaarvoice recommande à chacun des clients de sa plateforme d'inclure plusieurs sources de contenu. Il existe plusieurs manière de le faire. Nos équipes de service client peuvent vous aider à élaborer une stratégie de contenu solide pour votre site. Le contenu syndiqué ne devrait constituer qu'une portion, et non l'ensemble de votre stratégie de génération de contenu.

J'aimerais savoir si Google indexe le contenu généré par les utilisateurs sur mon entreprise. Par où commencer ?

  • Trouvez une page de produit dont les avis s'étendent sur plusieurs pages.
  • Affichez le code source de la page 1, qui est la page produit chargée par défaut.
  • Dans une fenêtre séparée de votre navigateur, affichez le code source de la version optimisée de la page 2.
  • Il est plus simple d'examiner le code source dans un éditeur de texte après son traitement par Tabifier . Pour utiliser Tabifier, copiez le code source, collez-le dans la zone de texte Code in et sélectionnez Tabify. Copiez ensuite le contenu de la zone de texte Code out dans votre éditeur de texte de prédilection (BBEdit, Textpad ou autre) pour l'analyser. Répétez l'opération pour la page 1 et la page 2.

Google indexe t-il mon contenu généré par les utilisateurs (CGU) ?

Bazaarvoice a développé des métadonnées qui décrivent le CGU sur votre site Web afin que vous puissiez déterminer si Google indexe ce contenu. Sélectionnez la commande appropriée parmi les options de la liste suivante et faites une recherche sur Google du texte en gras en entrant le nom de votre domaine à la place de client.com. Ces recherches vous renverront une liste d'URL où les avis sont indexés, ainsi que le nombre total de pages indexées.

Remarque :  Si vous utilisez l'API de Bazaarvoice, ces commandes ne vous fourniront aucun résultat, car les métadonnées ne sont pas incluses dans l'API. Le moteur de recherche de Google possède la capacité d'indexation de sites Web la plus avancée. Google détient la plus grande part du marché mondial des moteurs de recherche. L'entreprise fait tout son possible pour déchiffrer les techniques avancées de codage de sites Web et ainsi savoir exactement ce qu'un utilisateur voit lorsqu'il visite une page. Les autres moteurs de recherche tels que Bing, Baidu et Yandex atteignent généralement les capacités d'indexation de Google un à deux ans après elle.

Les recherches suivantes vous aideront à déterminer ce qui est indexé par Google.

  • site:client.com intext:bvseo_fps — Cette recherche affiche les pages implémentées à l'aide de la solution côté client la plus récente de Bazaarvoice (JavaScript ou « interface hébergée »). Si vous avez implémenté ou mis à niveau notre plateforme après novembre 2013, utilisez cette option.

  • site:client.com intext:bvseo_bulk — Cette recherche affiche les pages implémentées à l'aide de la solution côté serveur la plus récente de Bazaarvoice. Si vous avez implémenté ou mis à niveau notre plateforme après novembre 2013 et suivi les étapes d'implémentation « Smart SEO » ou « Cloud SEO », utilisez cette option de recherche.
  • site:client.com intext:bvseo_pps — Cette recherche affiche les pages implémentées à l'aide de la solution côté client héritée de Bazaarvoice (JavaScript ou « interface hébergée »). Si vous avez implémenté notre plateforme sur votre site avant novembre 2013 et que vous n'avez rien modifié depuis, utilisez cette option de recherche.
  • site:client.com intext:bvseo_lps — Cette recherche affiche les pages implémentées à l'aide de la solution côté serveur héritée de Bazaarvoice. À l'origine, le contenu côté serveur était le seul type de contenu qui pouvait être lu par les moteurs de recherche. Si vous avez implémenté notre plateforme sur votre site avant novembre 2013 et que vous n'avez rien modifié depuis, utilisez cette option de recherche.

Quelles extensions utiliser pour filtrer les résultats de recherche ?

Vous pouvez ajouter les commandes supplémentaires aux commandes ci-dessus afin de filtrer vos résultats de recherche.

  • intext:co_hasreviews — Ajoutez cette commande afin d'afficher uniquement les pages qui contiennent des avis.

  • intext:co_noreviews — Ajoutez cette commande afin d'afficher uniquement les pages qui ne contiennent aucun avis.
  • intext:bvpage2n — Ajoutez cette commande afin d'afficher les pages qui contiennent des avis après les 8 premiers avis. Par exemple, imaginons un produit dont la première page affiche 8 avis, la deuxième 30 et la troisième 12, pour un total de 50 avis. Cette requête affichera alors deux URL pour bvpage2n.

  • intext:bvpage1 — Ajoutez cette commande afin d'afficher uniquement la première page d'avis.

Résolution des problèmes

Veuillez vous référer aux sections suivantes, elles vous aideront à résoudre vos problèmes d'implémentation de BVSEO.

Remarque : Bazaarvoice vous recommande d'utiliser le navigateur Safari lors de vos tests sur le Web. Safari est disponible pour Windows et Mac.

Effectuez les recherches de diagnostic suivantes dans Google.

Remarque : Ces recherches ne fonctionneront que si BVSEO est dans un environnement publié, dont Google peut trouver le code et le contenu. Si BVSEO ne se trouve pas dans un environnement auquel Google peut accéder, ignorez les requêtes de diagnostic et faites une vérification manuelle.

Modifiez les URL de ces recherches pour remplacer exemple.com par le domaine que vous testez. Puis chargez l'URL à partir d'un navigateur.

Cette requête de diagnostic fournit-elle des résultats sur BVSEO pour les URL non paginées ?

http://www.google.com/search?num=100&filter=0&q=intext:bvseo_bulk+-inurl:bvrrp+site:example.com

Remarque : Seule la page 1 est vérifiée.

Cette requête de diagnostic fournit-elle des résultats sur BVSEO pour les URL paginées de la page 2 et des suivantes ?

http://www.google.com/search?num=100&filter=0&q=intext:bvseo_bulk+inurl:bvrrp+site:example.com

Si la réponse à ces deux questions est oui, chargez l'une des pages listées dans les résultats de recherche et procédez à une vérification supplémentaire. Sinon, procédez à une vérification manuelle.

La page 2 contient-elle une balise canonique qui pointe vers une URL différente ?

Il s'agit d'une des erreurs les plus fréquentes. Si la page contient une balise rel="canonical", l'URL doit comporter le paramètre de pagination bv. Dans la plupart des cas, les clients entourent la balise canonique d'une balise conditionnelle et ne l'incluent pas lorsque l'un des paramètres suivants apparaît dans l'URL : bvrrp, bvqap, bvsyp, bvstate et bvpage. Pour plus d'informations, veuillez vous référer à la section Balises canoniques.

Le mot « avis » est-il mis en avant dans l'en-tête des pages à partir de la page 2 ?

Pour améliorer le classement des expressions de recherche qui contiennent le mot « avis », nous vous recommandons fortement d'ajouter ce mot aux balises <title> et <h1> lorsque bvrrp apparaît dans l'URL.

Une fois traitées par Tabify, combien de lignes de code se trouvaient dans le code de la page 1 étudiée ?

Parmi tous les clients de Bazaarvoice qui ont déployé BVSEO correctement, les étoiles rich snippets apparaissent beaucoup plus fréquemment pour ceux dont le code HTML est clair et concis. Bazaarvoice a constaté que les pages contenant environ 600 lignes de code obtiennent généralement des étoiles rich snippets dans 100 % des recherches de diagnostic, alors que les pages contenant plus de 4 000 lignes de code en obtiennent dans environ 60 % des cas.

Affichez le code HTML source afin d'étudier les questions suivantes.

Trouvez-vous du code BVSEO dans le code HTML source ?

Cherchez BVSEOCPS_GEN dans le code source (utilisez ctrl+f ou commande+f afin d'exécuter la requête de recherche). Si vous ne trouvez pas cette expression, cherchez BVRRSourceID. Si vous ne trouvez aucun des deux, BVSEO n'est pas présent sur votre page. Contactez votre développeur afin qu'il vérifie l'intégration de Bazaarvoice.

Les liens de pagination fonctionnent-ils ?

Si les liens de pagination ont été expressément désactivés dans la configuration de BVSEO, effectuez une Vérification supplémentaire.

Remarque : Dans la plupart des cas, nous recommandons la pagination optimisée pour la recherche.
  1. Trouvez un produit dont les avis s'étendent sur plus d'une page. Affichez le code source et recherchez begin-pagination. Vous devriez trouver rapidement après ce mot-clé un lien HTML commençant par <a href= et contenant bvrrp ou bvpage.
  2. Remarque : si vous voyez {INSERT_PAGE_URI}, cela signifie que les liens de pagination ne fonctionnent pas correctement. Il vous faut redéployer BVSEO à l'aide du kit SDK.

    Si vous utilisez la configuration Ratings & Reviews, le code suivant devrait apparaître :

    <div itemscope itemtype="http://schema.org/Product"> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <!--begin-bvseo-reviews--> <meta itemprop="name" content="Product Name" /> <!--begin-aggregate-rating--> <div id="bvseo-aggregateRatingSection" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <span class="bvseo-itemReviewed" itemprop="itemReviewed">Product Name</span> is rated <span class="bvseo-ratingValue" itemprop="ratingValue">4.8571</span> out of <span class="bvseo-bestRating" itemprop="bestRating">5</span> by <span class="bvseo-reviewCount" itemprop="reviewCount">14</span>. </div> <!--end-aggregate-rating--> <!--begin-reviews--> <div id="bvseo-reviewsSection"> <!--content removed for example--> </div> <!--end-reviews--> </div> </div>
    
  3. Si les liens de pagination fonctionnent correctement, sélectionnez le lien vers la page 2 dans le code source de Safari et étudiez le code suivant.
    <a href="http://www.softsurroundings.com/5/23986/P/Newport_Beach_Pant/View_All/?bvrrp=4398/reviews/product/2/23986.htm">

    Vous remarquerez que le numéro de la page apparaît immédiatement après /product/. Notez la page que vous essayez de charger. L’URL complète apparaîtra également dans la barre d’adresse après le chargement de la page.

  4. Une fois que la page est chargée, vérifiez que l'agent utilisateur est toujours googlebot ou changez à nouveau d'agent utilisateur pour recharger la page.
  5. Vérifiez que la bonne page de contenu SEO s'est chargée dans le code source. Consultez la source HTML de la page et trouvez bvseo-bulk-cp dans le code source. Le nombre qui suit cp- est le numéro de page, tel que le montre le code ci-dessous. Ce numéro devrait correspondre au numéro de page qui se trouve dans la barre d'adresse.
        <ul id="BVSEO_meta" style="display:none;important"> <li data-bvseo="bvDateModified">y_2020, m_11, d_30, h_16</li> <li data-bvseo="ps">bvseo_bulk, prod_bvrr, vn_bulk_3.0.12</li> <li data-bvseo="cp">cp_10, bvpage2n</li> <li data-bvseo="co">co_hasreviews, tv_34, tr_250</li> <li data-bvseo="cf">loc_en_US, sid_12345, prod, sort_[SortEntry(order=SUBMISSION_TIME, direction=DESCENDING)]</li> <li data-bvseo="diagnostics">clientName_YourClientNameHere</li> </ul>
    

    Si vous n'utilisez pas la plateforme de configuration Ratings & Reviews, recherchez BVRRSelectedPageNumber dans le code source HTML. Le nombre après la balise correspond au numéro de la page.

    Si vous êtes en mesure de confirmer que la page concernée s'est chargée, cela signifie que les liens de pagination fonctionnent correctement. Revenez à la version non paginée d'une page produit, puis faites une Vérification supplémentaire.

Le contenu BVSEO est introuvable. Pourquoi ?

Le délai d'exécution est peut-être exceptionnellement bas. Pour résoudre ce problème, activez les outils pour les développeurs et changez l'agent utilisateur dans Safari :

  1. Pour utiliser l'option de changement d'agent utilisateur intégrée à Safari, sélectionnez Afficher le menu Développement dans la barre des menus, dans les Préférences > Avancées. Le menu « Développement » apparaît alors dans la barre des menus.
  2. Sélectionnez le menu Développement puis Agent d'utilisateur > Autre. Une fenêtre s'affiche et indique l'agent utilisateur actuel.
  3. Ajoutez-y le mot « googlebot » à la fin, comme illustré ci-dessous, puis sélectionnez OK.

L'agent utilisateur permettra désormais au kit SDK de BVSEO de fonctionner avec un délai d'exécution plus généreux lorsque vous travaillerez dans une fenêtre/un onglet de ce navigateur. Vous devrez effectuer cette procédure à nouveau si vous ouvrez une nouvelle fenêtre ou un nouvel onglet du navigateur.

Si les requêtes de diagnostic ou la vérification manuelle ont fourni des résultats, ouvrez l'une des pages qui figurent dans les résultats de recherche et visualisez le code source HTML afin de répondre aux questions suivantes.

Les contenus sont-ils actualisés comme prévu ?

Cherchez bvDateModified dans le code source HTML. Les dates sont au format AAAA-MM-JJThh:mmTZD, conformément à la norme ISO 8601 . La date située à côté de bvDateModified devrait toujours se situer dans les dernières 48 heures. Par exemple :

<li id="bvDateModified">2014-06-15</li>

Votre page affiche-t-elle du contenu de production ?

Cherchez data-bvseo="cf” dans le code source et vérifiez les caractères qui suivent directement ce mot-clé. Si vous trouvez prod, BVSEO est configuré pour utiliser des données de production, tel que vous le souhaitez. Si vous trouvez stg, BVSEO est configuré pour utiliser les données de pré-production ; il vous faudra alors contacter votre développeur pour qu'il corrige ce problème.

Afin de vérifier que vous affichez le bon contenu, cherchez itemprop="description” dans le code source. Recherchez une occurrence immédiatement suivie du contenu d'un avis, tel que le montre l'exemple suivant :

<span itemprop="description">I got to try this chicken jerky flavor...

Comparez les premiers mots de l'avis avec l'avis affiché sur la page visible par les utilisateurs finaux. Si un avis a été entré dans le système depuis la dernière mise à jour du SEO, vous constaterez peut-être une différence. Refaites le test plusieurs fois afin de vérifier.

Le contenu est-il inclus dans la balise DIV appropriée ?

Affichez le code source et le rendu HTML à l'aide de la fonctionnalité « Voir la page source » de votre navigateur. Vérifiez que les contenus BVSEO sont situés dans la bonne balise <div>. Pour ce faire, cherchez rating summary ou reviews dans le code source. Si la balise <div> est ouverte et fermée directement, comme dans cet exemple :

<div data-bv-show="rating_summary" data-bv-product-id="ExternalId"></div>

Le contenu n'est pas au bon format. L'exemple de code suivant montre à quoi le contenu de la balise <div> devrait ressembler.

<div data-bv-show="reviews" data-bv-product-id="ExternalId"> <!--begin-bvseo-reviews--> <!--begin-aggregate-rating--> <div id="bvseo-aggregateRatingSection" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <span class="bvseo-itemReviewed" itemprop="itemReviewed">Product Name</span> is rated <span class="bvseo-ratingValue" itemprop="ratingValue">4.8571</span> out of <span class="bvseo-bestRating" itemprop="bestRating">5</span> by <span class="bvseo-reviewCount" itemprop="reviewCount">14</span>. </div> <!--end-aggregate-rating--> <!--begin-reviews--> <div id="bvseo-reviewsSection"> <!--content removed for example--> </div> <!--end-reviews--> </div>

Le format schema.org est-il utilisé pour le balisage structuré ?

Cherchez schema.org/AggregateRating dans le code source. Si vous ne le trouvez pas, cherchez schema.org/Review. Si vous ne trouvez aucun de ces deux termes, le client est sans doute configuré de manière à utiliser une ancienne version de BVSEO. Dans ce cas, vous devriez modifier la configuration afin que le format schema.org soit utilisé pour le balisage structuré.

Lorsque du contenu BVSEO est injecté dans une page, les caractères sont-ils encodés ?

Le balisage SVSEO doit apparaître au format HTML, non encodé. Recherchez begin-bvseo dans le code source. Si le contenu contient des caractères encodés, comme le montre l'exemple ci-dessous, contactez votre développeur afin qu'il résolve le problème.

&lt;!--begin-bvseo-reviews--&gt;

La balise devrait ressembler à ceci :

<!--begin-bvseo-reviews-->

Les liens de pagination optimisés pour la recherche sont-ils masqués par CSS ou NOSCRIPT ?

BVSEO utilise une technique éprouvée pour habiller vos liens de pagination, mais il ne les masque jamais avec CSS ou NOSCRIPT. Google n'explore pas les liens masqués par CSS ou NOSCRIPT. L'ajout d'une propriété style="display:none;" aux balises <div> qui contiennent BVSEO est une erreur fréquente. Cela empêche l'optimisation de la pagination pour la recherche.

Étape 1 : ajout de bvreveal=debug

  1. Ajoutez le paramètre bvreveal=debug à l'URL de toutes les pages dans lesquelles BVSEO est implémenté.

    Exemple: http://yoursite.net/ExampleGetContent.aspx?bvreveal=debug

    Le paramètre bvreveal=debug ajoute les listes BVSEOSDK_meta et BVSEOSDK_DEBUG au code source, celles-ci contiennent des informations sur votre implémentation. S'il n'y a pas de contenu généré par les utilisateurs (CGU), bvseo-msg fournira plus de détails.

    Remarque : si pageurl n'est pas configuré correctement, bvreveal=debug ne fonctionnera pas. Si vous ne spécifiez aucun pied de page de débogage, les liens de pagination pourront être erronés.
  2. Affichez le code source de la page pour obtenir des informations sur votre implémentation. Celles-ci sont spécifiées dans BVSEOSDK_meta et BVSEOSDK_DEBUG. Reportez-vous à l'exemple de code fourni à la fin de cette section.

Étape 2 : recherche du contenu

Vérifiez s'il existe du contenu pour l'attribut contentURL demandé, comme décrit dans les étapes suivantes :

  1. Localisez l'attribut contentURL dans la liste BVSEOSDK_DEBUG. Exemple : <li data-bvseo="contentURL">http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm</li>
  2. Dans le terminal, exécutez la commande curl –i. Exemple: curl –i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"

Si la commande curl ne renvoie aucun contenu, cela peut être dû à un problème de pare-feu ou aucun contenu n'existe pour cet élément ProductID. Contactez votre représentant Bazaarvoice pour obtenir de l'aide supplémentaire.

Messages d'erreur

Les messages d'erreur suivants peuvent s'afficher lors du débogage.

  • Le code d'état HTTP 0 a été renvoyé (ou) la connexion à seo-stg.bazaarvoice.com a été refusée — indique qu'un pare-feu est présent sur votre réseau. Ce pare-feu peut éventuellement bloquer les requêtes sortantes de votre réseau. Contactez votre administrateur informatique pour résoudre les problèmes liés au pare-feu.
  • La ressource vers l'URL ou le fichier est actuellement indisponible — indique qu'un problème est survenu lors de la configuration de l'implémentation ou qu'aucun contenu n'a été généré pour le produit spécifié.

Intégration pour les nouveaux clients

  1. Installez le kit SDK Java, .NET ou PHP.
  2. Définissez la Cloud Key fournie par Bazaarvoice.
  3. Définissez le répertoire racine fourni par Bazaarvoice.
  4. Définissez l'URL de la page en spécifiant l'élément base_URL, les chaînes de requête liées ainsi que les paramètres ajoutés. Cette étape est obligatoire même si votre site n'utilise pas les paramètres de requête. Bazaarvoice ajoute des paramètres pour la pagination optimisée pour le référencement qui doivent être recueillis par l'élément page_URL. Cet élément doit être mis à jour en temps réel. Ne mettez donc pas en cache ces données.
  5. Définissez l'URL de base en spécifiant l'URL canonique de la page produit.
  6. Ajoutez la balise schema.org sur la page produit.
  7. Si vous êtes derrière un pare-feu, contactez votre équipe d’exploitation réseau ou serveur pour ajouter seo.bazaarvoice.com et seo-stg.bazaarvoice.com à la liste d’autorisation (parfois appelée « liste blanche »).
  8. Définissez la valeur STAGING comme TRUE lorsque vous procédez à une implémentation dans un environnement de non-production (test).

Exemples :

<%@page import="com.bazaarvoice.seo.sdk.model.ContentType"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><% //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Set BV Parameters that are specific to the page and content type. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Ratings & Reviews integration of BVSEO</h1> <h2>Using cloud for file retrieval</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div data-bv-show="rating_summary" data-bv-product-id="ExternalId"> <%=sBvOutputSummary%> </div> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <%=sBvOutputReviews%> </div> </div> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BVSeoSdkDotNet.Config; using BVSeoSdkDotNet.Content; using BVSeoSdkDotNet.Model; namespace SampleWebApplication { public partial class Sample : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { BVConfiguration bvConfig = new BVSdkConfiguration(); String cloudKey = Request.QueryString["cloudkey"]; String staging = Request.QueryString["staging"]; String testing = Request.QueryString["testing"]; String rootFolder = Request.QueryString["site"]; String productIdParam = Request.QueryString["productid"]; String subjectId = "5000001"; if (cloudKey != null) bvConfig.addProperty(BVClientConfig.CLOUD_KEY, cloudKey); else bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "myshco-3e3001e88d9c32d19a17cafacb81bec7"); if (staging != null) bvConfig.addProperty(BVClientConfig.STAGING, staging); else bvConfig.addProperty(BVClientConfig.STAGING, "true"); if (testing != null) bvConfig.addProperty(BVClientConfig.TESTING, testing); else bvConfig.addProperty(BVClientConfig.TESTING, "false"); if (rootFolder != null) bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, rootFolder); else bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "9344"); if (productIdParam != null) { //if productIdParameter is null then use the default value. If it's not null then use the parameter. If category subjectId = productIdParam; } else subjectId = "5000001"; bvConfig.addProperty(BVClientConfig.SEO_SDK_ENABLED, "true"); // use this as a kill switch bvConfig.addProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY, "false"); // set to false if using cloud-based content bvConfig.addProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT, "/"); bvConfig.addProperty(BVClientConfig.CRAWLER_AGENT_PATTERN, "yandex"); bvConfig.addProperty(BVClientConfig.EXECUTION_TIMEOUT, "1500"); bvConfig.addProperty(BVClientConfig.EXECUTION_TIMEOUT_BOT, "2000"); var bvParameters = new BVParameters { BaseURI = Request.Url.ToString().Contains("?") ? Request.Url.ToString().Substring(0, Request.Url.ToString().IndexOf("?")) : Request.Url.ToString(), PageURI = Request.Url.ToString(), ContentType = new BVContentType(BVContentType.REVIEWS), SubjectType = new BVSubjectType(BVSubjectType.PRODUCT), SubjectId = subjectId }; BVUIContent bvOutput = new BVManagedUIContent(bvConfig); SEO_BVRRSummaryContainer.InnerHtml = bvOutput.getAggregateRating(bvParameters); SEO_BVRRContainer.InnerHtml = bvOutput.getReviews(bvParameters); } } }
<?php //Define the base and page URLs; ensure the protocol (http or https) matches the one used in the production site $base = 'http://' . $_SERVER['HTTP_HOST']; $page = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // Include the bvseosdk.php require('bvseosdk.php'); // Pass an array with configuration properties and parameters $bv = new BV(array( //update the following line to use actual values, which can be obtained from Bazaarvoice 'cloud_key' => ‘myshco-3e3001e88d9c32d19a17cafacb81bec7’, 'bv_root_folder' => 'Main_Site-ja_JP', 'page_url' => $page, //base_url is the shortest possible URL that will direct to this particular product page 'base_url' => $base, 'staging' => TRUE, //because the subject is Product, set the productId below 'subject_id' =>’5000001’, 'execution_timeout' => 1500, 'execution_timeout_bot' => 2000, 'seo_sdk_enabled' => TRUE )); ?> <!DOCTYPE html> <html> <head> <title>BV SDK PHP Example - GetContent</title> </head> <body> This is a test page for Reviews: getContent() <br> GetContent() will return reviews and aggregate content <br><br> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <?php echo $bv->reviews->getContent(); ?> </div> </body> </html>

Intégration pour les clients existants

Vous devez mettre à jour vos intégrations BVSEO lorsque vous ajoutez le script de chargement BV à votre site.

Java et PHP

Apportez les modifications suivantes à vos intégrations BVSEO en Java et PHP :

  • Remplacez <div id="BVRRSummaryContainer"> par <div data-bv-show="rating_summary" data-bv-product-id="ExternalId">
  • Remplacez <div id="BVRRContainer"> par <div data-bv-show="reviews" data-bv-product-id="ExternalId">
  • Remplacez <div id="BVQAContainer"> par <div data-bv-show="questions" data-bv-product-id="ExternalId">

  • data-bv-show—Indique au script de chargement BV d'afficher la fonctionnalité spécifiée.
  • data-bv-product-id—Indique au script de chargement BV d'afficher la fonctionnalité pour un ID produit défini. L'ID produit doit correspondre à l'élément ExternalId fourni dans le catalogue de produits.

.NET

Apportez les modifications suivantes à vos intégrations BVSEO .NET :

  • Remplacez <div id="BVRRSummaryContainer" runat="server"> par <div id="SEO_BVRRSummaryContainer" runat="server" data-bv-show="rating_summary" data-bv-product-id="ExternalId">
  • Remplacez <div id="BVRRContainer" runat="server"> par <div id="SEO_BVRRContainer" runat="server" data-bv-show="reviews" data-bv-product-id="ExternalId">
  • Remplacez <div id="BVQAContainer" runat="server"> par <div id="SEO_BVQAContainer" runat="server" data-bv-show="questions" data-bv-product-id="ExternalId">

  • data-bv-show—Indique au script de chargement BV d'afficher la fonctionnalité spécifiée.
  • data-bv-product-id—Indique au script de chargement BV d'afficher la fonctionnalité pour un ID produit défini. L'ID produit doit correspondre à l'élément ExternalId fourni dans le catalogue de produits.

Mettez également à jour le code qui utilise ces ID d'éléments :

  • Remplacez BVRRContainer.InnerHtml par SEO_BVRRContainer.InnerHtml
  • Remplacez BVRRSummaryContainer.InnerHtmlpar SEO_BVRRSummaryContainer.InnerHtm
  • Remplacez BVQAContainer.InnerHtml par SEO_BVQAContainer.InnerHtml

Remarque : les modifications apportées à BVSEO dans l'environnement de pré-production sont prise en compte de façon hebdomadaire, chaque dimanche.

Vérifiez les points suivants :