Suchmaschinenoptimierung (SEO) ist entscheidend, um den natürlichen Traffic auf Ihrer Webseite zu steigern.

Um sicherzustellen, dass alle Suchmaschinen Ihre benutzergenerierten Inhalte (UGC) in allen Situationen anzeigen und indizieren können, implementieren Sie SEO mit einer der folgenden Methoden:

  • Schema.org-Markup: Kundenseitige SEO-Lösung (empfohlen)
    Hinweis: Informationen zur kundenseitigen SEO-Leistung finden Sie unter Schema.org-Markup.
  • BVSEO: Serverseitige BVSEO-Lösung. Schwerpunkt dieses Artikels ist unsere serverseitige BVSEO-Lösung.
Wichtig: Wenn Ihre vorhandene Implementierung die Scout-Datei (bvapi.js) verwendet, verweisen Sie auf die BVSEO v1-Dokumentation anstatt auf die Informationen in diesem Abschnitt. Bazaarvoice empfiehlt Ihnen, auf v2 zu migrieren (mit der BV-Loader-Datei bv.js), um die Leistung zu verbessern und für zukünftige Innovationen.

Zusätzlich zu unserer serverseitigen SEO-Lösung wird die kundenseitige JavaScript-Integration von Bazaarvoice automatisch mit unserer gehosteten Lösung mitgeliefert und nutzt die Vorteile der erweiterten JavaScript-Indexierung von Google. Wenn Ihr Suchtraffic hauptsächlich von Google stammt, bietet die kundenseitige JavaScript-Integration ähnliche SEO-Vorteile mit weniger Aufwand. Zusammen bieten die serverseitigen und kundenseitigen SEO-Lösungen eine hervorragende SEO-Performance sowie eine optimierte Benutzererfahrung.

Erfahren Sie mehr über die Optimierung der Suche:

Unterstützte Funktionen

Durch Bazaarvoice verwaltete Inhalte werden über ein serverseitiges Softwareentwicklungssystem (SDK) in den Quellcode Ihrer Seiten eingespeist. Hier ist eine Liste mit allen unterstützten Funktionen für Java, .NET und PHP.

Funktion Beschreibung Java .NET PHP
Ratings & Reviews Produktbewertungen und -beurteilungen werden mittels getContent, getReviews und getAggregateRating eingespeist.
Fragen und Antworten Questions and Answers zu Produkten werden mittels getContent eingespeist.
Seller Ratings Auf Seller-Ratings-Inhalte wird mittels „getContent“ zugegriffen.
Support mehrerer Konfigurationen Mehrere Konfigurationen werden in einer einzigen Umgebung unterstützt.
SSL Inhaltszugriff über eine gesicherte Ebene.
Proxy-Support Inhaltszugriff über Proxy-Gateways in einem eingeschränkten Netzwerk.
Debugging Für das Debugging stehen Informationen zur Fehlerbehebung zur Verfügung.
Zeichensatz Unterstützt benutzerspezifische Zeichensätze für das Abrufen von Inhalten.

Einrichtungsübersicht

Um BVSEO einzurichten, muss Ihr technisches Team die folgenden Schritte ausführen:

Kompatibles JavaScript für Google

Durch Bazaarvoice gelieferte benutzergenerierte Inhalte (UCG) nutzen die erweiterte JavaScript-Indexierung von Google. Das Verständnis der folgenden Konzepte kann Ihnen dabei helfen, mehr aus Ihrer Suchmaschinenoptimierung (SEO) herauszuholen, wenn Sie JavaScript zur Implementierung von benutzergenerierten Inhalten nutzen.

schema.org-Markup

Bazaarvoice fügt korrekt strukturiertes schema.org-Markup zu benutzergenerierten Inhalten (UGC) hinzu, die auf Ihren Webseiten abgegeben werden. Bei der Google-Indexierung dieses Markups erhöht sich nun die Wahrscheinlichkeit, dass Rich Snippets von Bewertungen in den Suchergebnissen angezeigt werden.

Hinweis: Genaue Anweisungen dazu, wie das schema.org-Markup richtig ausgelesen wird, erhalten Sie unter Hinzufügen des Markups schema.org.

Links zwischen Seiten mit benutzergenerierten Inhalten

Umfassen benutzergenerierte Inhalte mehr als eine Seite, nutzt Bazaarvoice href-Links zwischen den Seiten, sodass Suchmaschinen die Inhalte leichter indexieren können.

Wenn sich Kunden eine Produktseite ansehen, die mehr als eine Seite mit Bewertungen aufweist, interagieren diese nur mit dem JavaScript. Die URL ändert sich nicht. Bazaarvoice erstellt nur für die Suchmaschinenindexierung dynamisch href-Links zwischen Seiten mit benutzergenerierten Inhalten, sodass Suchmaschinen Kunden direkt auf die entsprechenden Ergebnisse verweisen können.

Hinweis: Wenn Sie eine vorhandene Implementierung haben, müssen Sie diese möglicherweise erneut in der Produktion bereitstellen, um diesen SEO-Vorteil zu erhalten.

Format der Paginierungs-Links

Bazaarvoice hängt einen bvstate-Parameter an URLs an. Dieser Parameter verwendet Schlüssel-/Wert-Paare, um festzulegen, welcher Inhaltstyp und welche Seite mit benutzergenerierten Inhalten angezeigt wird. Die folgende Tabelle listet Beispiele möglicher Verwendungen des bvstate-Parameters.

Parameter-Text Erklärung

?bvstate=pg:2/ct:r

  • Inhaltstyp: Ratings & Reviews
  • Seite 2

?bvstate=pg:4/ct:q

  • Inhaltstyp: Questions & Answers
  • Seite 4

Bazaarvoice fügt den bvstate-Parameter zu URLs im Canonical Tag Ihrer Implementierung hinzu. Verbraucher kommen mit dem bvstate-Parameter nur in Kontakt, wenn sie Links aus Suchergebnissen folgen.

Hinweis: Der bvstate-Parameter ersetzt die Paginierungsparameter, die zuvor von Bazaarvoice verwendet wurden, wie z. B. bvrrp, bvqap, bvsyp und bvpage. Ältere Parameter werden mit der Zeit außer Kraft gesetzt.

Vorbereitung der SEO-Einrichtung

Starten Sie Ihre Implementierung mit der Beantwortung der in diesem Abschnitt aufgeführten Fragen, um Überraschungen und Verzögerungen während der Einrichtung zu vermeiden.

Option A: Verwendung eines Plattform-Plug-ins

Ist die Webseite auf Demandware, Magento, Hybris oder GSI aufgebaut, wird wahrscheinlich ein Plug-in für die Implementierung von BVSEO verwendet.

Option B: Verwendung eines der BVSEO SDKs

Wurde die Webseite mit Java, .NET oder PHP gebaut, erleichtern BVSEO SDKs die SEO-freundliche Integration. Bei der nächsten Frage finden Sie Aspekte, die vor der Implementierung der BVSEO-SDKs berücksichtigt werden sollten.

Option C: Entwicklung einer benutzerdefinierten Lösung auf der Basis der BVSEO-SDKs

Wird die Webseite mithilfe einer anderen Technologie erstellt (z.B. Ruby oder Perl), müssen Sie eine benutzerdefinierte Lösung entwickeln. Die BVSEO-SDKs sind Open-Source und werden in GitHub veröffentlicht. Sie bieten eine verlässliche Anleitung für jene, die eine benutzerdefinierte Lösung entwickeln. Fahren Sie mit Abschnitt 2 fort, der auch für die Entwicklung benutzerdefinierter Lösungen relevant ist.

1. Ist serverseitiges Coding möglich?

  • Ja – Die Integration von BVSEO erfordert eine serverseitige Implementierung für die Einspeisung suchfreundlicher Inhalte in den Quellcode.
  • Nein – Wenn Sie keine serverseitigen Änderungen vornehmen können, kann die BVSEO nicht auf Ihrer Webseite implementiert werden. Wenden Sie sich an den Bazaarvoice-Support, um Informationen über alternative SEO-Ressourcen zu erhalten.

2. Ist ein Cache auf Seitenebene involviert? (Akamai wird oft für Caching auf Seitenebene verwendet.)

Möglicherweise wird Caching zur Verbesserung der Geschwindigkeit und Effizienz verwendet, was einen Einfluss auf die BVSEO-Integration haben kann. Befassen Sie sich mit den folgenden Fragen, die das Caching betreffen:

  • Ja – Wenn die Seiten, auf denen BVSEO implementiert wird, ein Cache auf Seitenebene nutzen, erhöhen Sie EXECUTION_TIMEOUT auf 2000 ms. Dadurch stellen Sie sicher, dass SEO-freundliche Inhalte immer in die zwischengespeicherte Version miteinbezogen werden.
  • Nein – Es ist keine Aktion erforderlich.

3. Verwendet die Seite die komplette URL als Cache Key?

Möglicherweise wird Caching zur Verbesserung der Geschwindigkeit und Effizienz verwendet, was einen Einfluss auf die BVSEO-Integration haben kann. Befassen Sie sich mit den folgenden Fragen, die das Caching betreffen:

BVSEO verwendet bvrrp, bvqap, bvsyp und bvpage als URL-Parameter zur Verwaltung der Pagination. http://example.com und http://example.com?bvrrp=stuff sind eindeutige Seiten und müssen durch die Caching-Systeme auf Seitenebene als eindeutige Seiten behandelt werden.

  • Ja – Es ist keine Aktion erforderlich.
  • Nein – Das Cache-System oder das URL-Masking-System muss im Rahmen der Implementierung aktualisiert werden.

4. Wird zur Reduzierung der serverseitigen Aufrufe der Cloud ein lokaler Cache verwendet?

BVSEO stellt eine HTTP- oder HTTPS-Anfrage an seo.bazaarvoice.com (seo-stg.bazaarvoice.com für Staging), wodurch formatiertes HTML als String wiedergegeben wird. Unser Cloud-Service enthält zwar einen Cache für eine außerordentlich effiziente Übertragung (bis zu unter 20 ms), manche Kunden möchten jedoch eine zusätzliche lokale Caching-Ebene hinzufügen.

  • Ja – Wird ein lokaler Cache verwendet, empfiehlt Bazaarvoice eine maximale TTL von einer Stunde.
  • Nein – Es ist keine Aktion erforderlich.

5. Wird ein Proxy benötigt?

BVSEO muss via HTTP oder HTTPS auf seo.bazaarvoice.com (seo-stg.bazaarvoice.com für Staging) zugreifen können. IP-Adressen sind nicht verfügbar. Da BVSEO virtuelle IP-Adressen in der Cloud nutzt, garantieren wir nicht, dass IP-Adressen konstant bleiben. Erfordert die Firewall eine IP-Adresse, muss für die Bereitstellung einer konstanten IP-Adresse ein Proxy eingerichtet werden. Die SDKs enthalten Optionen für die Proxy-Konfiguration.

  • Ja – Es muss ein Proxy eingerichtet werden. Verwenden Sie bei der Implementierung des SDKs BVClientConfig.PROXY_HOST und PROXY_PORT, um es auf das Proxy zu verweisen.
  • Nein – Es ist keine Aktion erforderlich.

6. Müssen Firewall-Einstellungen angepasst werden?

BVSEO muss via HTTP oder HTTPS auf seo.bazaarvoice.com (seo-stg.bazaarvoice.com für Staging) zugreifen können. Verwehrt die Firewall den Zugriff auf diese Adresse, müssen Anpassungen vorgenommen werden.

  • Ja – Der Zugriff muss ermöglicht werden.
  • Nein – Es ist keine Aktion erforderlich.

7. Sind SSL-Verbindungen erforderlich?

Die von seo.bazaarvoice.com abgerufenen Inhalte enthalten zwar keine Daten, die geschützt werden müssen, vorliegende Sicherheitsrichtlinien könnten jedoch erfordern, dass alle serverseitigen Verbindungen einen SSL-Schutz aufweisen. SSL-Support ist für das Java SDK v2.1 (und höher) und .NET SDK v2.1 (und höher) verfügbar.

  • Ja – Setzen Sie BVClientConfig.SSL_ENABLED bei der Implementierung des SDKs auf „wahr“.
  • Nein – Es ist keine Aktion erforderlich.

8. Nutzen die Seiten schema.org-Markup?

Bazaarvoice unterstützt sowohl Mikrodaten- als auch JSON-LD-Markup. Google bevorzugt allerdings JSON-LD-Markup. Bazaarvoice orientiert sich an der Seite schema.org für Anleitungen zu schema-Markups.

9. Enthalten die Seiten bereits schema.org-Markup?

Enthält die Seite, auf der BVSEO implementiert ist, irgendein schema.org Markup, muss sorgfältig sichergestellt werden, dass das schema-Markup nicht im Widerspruch steht.

  • Ja – Das schema.org-Markup muss korrekt in einer einzelnen Hierarchie verschachtelt werden. Überprüfen Sie den HTML-Output, um sicherzustellen, dass eine korrekte schema.org-Code-Hierarchie vorhanden ist.
  • Nein – In diesen Anweisungen erfahren Sie, wie Sie schema.org-Markup in Ihren Webseiten integrieren.

10. Enthalten die Seiten bereits einen schema.org-Typ?

Seiten dürfen nur einen einzigen schema.org-Typ enthalten.

  • Ja – Stellen Sie sicher, dass der schema.org-Tag <script> die Module Rating Summary (Bewertungsübersicht) und Reviews (Rezensionen) enthält.
  • Nein – Fügen Sie der Seite einen Typ hinzu. Bazaarvoice empfiehlt das Hinzufügen von schema.org/Product (Mikrodaten-Format). Weitere Beispiele für Beispielcode finden Sie unter Java, .NET oder PHP
    • Fügen Sie die schema.org/Product-Klasse in ein <div>-Tag ein, das die Module Bewertungsübersicht und Beurteilungenenthält.
    • Fügen Sie den Produktnamen in die schema.org/Product ein, Kategorie unter Verwendung von

      <div itemprop=name>[ProductName]</div> or <meta itemprop="name" content="[ProductName]" />

      Hinweis: Dies gilt ausschließlich für mit Mikrodaten strukturierte Daten.

11. Weisen die Seiten Canonical Tags auf?

Wenn Canonical Tags auf Seiten mit implementiertem BVSEO verwendet werden, müssen diese Tags entweder aktualisiert oder entfernt werden, wenn das Produkt mehr als eine Seite an Bewertungen aufweist (also mehr als 8 Bewertungen). Die Canonical Tags müssen entfernt werden, da BVSEO die Produktseite paginiert, damit sich alle Bewertungen im Index der Suchmaschine befinden. Canonical Tags, die nicht auf eine Paginierungs-URL verweisen, führen dazu, dass Suchmaschinen die paginierten Inhalte ignorieren.

Hinweis: Unter Optimale Verfahren finden Sie weitere Informationen zur Pagination.
  • Ja – Wenn irgendein BVSEO Paginierungsparameter (bvstate, bvrrp, bvqap, bvsyp, bvpage) vorhanden ist, führen Sie einen der folgenden Schritte aus:

    1. Entfernen Sie den Canonical Tag. Dies ist die gängigste Lösung.
    2. Hängen Sie das „name=value“-Paar an die Canonical URL an.
  • Nein – Es ist keine Aktion erforderlich.

Stellen Sie danach sicher, dass Sie die folgenden Voraussetzungen erfüllen:

  • Überprüfen Sie, ob eines der folgenden Frameworks installiert ist:
    • Java Framework 5 (1.5) oder höher
    • .NET Framework 2.0 oder höher
    • PHP 5.5 oder höher mit cURL- und Mbstring-Bibliothek

  • die von Bazaarvoice gehostete Anzeige verwenden, wie z. B. JavaScript oder iFrame.
  • Stellen Sie Bazaarvoice einen Produktkatalog bereit.
  • sicherstellen, dass Ihre Produktseiten das schema.org-Markup integrieren.
  • mindestens ein Produkt mit Bewertungen im System haben.

Um den Einrichtungsprozess abzuschließen, müssen Ihnen folgende BVSEO-Informationen vorliegen:

  • Cloud-Schlüssel
  • Stammordner
  • Produkt-IDs

Wenn Sie diese Werte nicht kennen, wenden Sie sich an den Bazaarvoice-Support, um die Informationen anzufordern.

SEO-Optionen konfigurieren

Befolgen Sie diese Schritte, um die SEO-Optionen zu konfigurieren:

  1. Melden Sie sich im Bazaarvoice-Portal an.
  2. Wählen Sie im Portal-Menü Configuration (Konfiguration) aus.
  3. Wählen Sie die Instanz.
  4. Wählen Sie Go to Configuration (Zur Konfiguration gehen). Der Site Manager wird angezeigt und listet die verfügbaren Implementierungszonen und Implementierungen auf.
  5. Suchen Sie in der Liste der Implementierungen nach der Implementierung, für die Sie die SEO-Einstellungen konfigurieren möchten. Wählen Sie neben der Implementierung, die Sie konfigurieren möchten, die Option Edit (Bearbeiten).
  6. Wählen Sie links auf der Seite unter Settings (Einstellungen) SEO aus. Die SEO-Seite wird geöffnet.
  7. Treffen Sie eine Auswahl oder geben Sie Werte für jede der folgenden SEO-Optionen ein:
    • SEO-Dateiveröffentlichung aktivieren – Wählen Sie Aktiviert (Standardeinstellung), um SEO-Inhalte in die Cloud oder in einem komprimiertes SEO-Dateiarchiv zu veröffentlichen. Geben Sie außerdem Werte für den Cloud Key oder den ZIP/GZIP-Dateinamen ein.
    • Stammordner – Geben Sie die zu verwendende Syntax für den Namen des Stammordners in der Cloud und/oder der komprimierten Datei ein. Verwenden Sie diese Tokens, um dynamische Eigenschaften in den Dateinamen aufzunehmen: {clientname}, {displaycode}, {deploymentzone}, {locale}. Beispiel: bv-acmeinc-7012-MainSite-en_US.
    • SEO-freundlicher Seitenumbruch – Benutzer und Suchmaschinen reagieren positiv darauf, wenn Ihre Webseite mehrere Seiten für ein Produkt aufweist, und wenn die Seiten nach der Produktübersicht jeweils etwa 30 Bewertungen enthalten. Wählen Sie Aktiviert (Standardeinstellung), um mehrere Seiten für Ihre Produktseiten zu verwenden.
    • Cloud Key – Geben Sie Ihren Cloud Key ein, um das BVSEO-SDK zu konfigurieren. Geben Sie dabei unbedingt den gesamten Wert ein, nicht nur den verschlüsselten Teil. Wenn Sie keinen Cloud Key haben, fordern Sie ihn an, indem Sie eine Supportanfrage an die Support Community senden.
    • schema.org/Product type – ignorieren Sie diese Option, sie wurde eingestellt und wird nicht mehr verwendet.
    • Komprimierungstyp – Wählen Sie den Komprimierungstyp für SEO-Feeds aus. Wählen Sie ZIP (Windows) oder GZIP (UNIX) aus. Bei einer Deaktivierung werden die Archivdateien nicht auf dem SFTP-Server veröffentlicht.
    • ZIP/GZIP-Dateiname – Diese Option ist für die Veröffentlichung komprimierter Dateien erforderlich. Geben Sie die zu verwendende Syntax für den komprimierten SEO-Dateinamen ein. Verwenden Sie diese Tokens, um dynamische Eigenschaften in den Dateinamen aufzunehmen: {clientname}, {displaycode}, {deploymentzone}. Die Dateierweiterung wird automatisch an den von Ihnen ausgewählten Komprimierungstyp angepasst. Beispiel: bv_acmeinc_7012_MainSite-en_US.zip.
    • Position des AggregateRating-Tags – Google zeigt nur Rich Snippet-Sterne auf Seiten mit einem schema.org AggregateRating-Tag an. Wählen Sie aus den folgenden Optionen eine Position aus, an der Sie den Tag einfügen möchten:
      • Zusammenfassung der Primärbewertungen (Standardeinstellung) – Fügt das AggregateRating-Tag in die Zusammenfassungsseite der Primärbewertungen ein. Bazaarvoice empfiehlt diese Option.
      • Bewertungs-Container – Fügt das AggregateRating-Tag oben in den Bewertungs-Container ein.
      • AggregateRating-Tag entfernen – Schließt das AggregateRating-Tag aus.

Code mithilfe des Java SDKs hinzufügen

Die folgenden Anforderungen sind für die Installation des Java SDKs erforderlich.

  • Kenntnisse bei der Entwicklung und Bereitstellung von Java und Java EE an Anwendungsserver
  • Java 1.6 oder höher
  • BVSEO SDK-Bibliothek für Java

Bazaarvoice befolgt die Oracle Support-Level der durch das Java SDK unterstützten Laufzeitumgebung für JRE. Weitere Informationen finden Sie im Support-Plan zu Oracle Java SE .

Das SDK herunterladen

Laden Sie die entsprechende Java-SDK-Datei hier herunter: BVSEO Java SDK .

Nachdem Sie die Datei entpackt haben, wählen Sie über die folgende Tabelle das Paket aus, das am besten zu Ihrer Umgebung passt:

Java SDK Beschreibung
Bv-seo-sdk-{version}-jar-with-dependencies.jar Alle Abhängigkeiten sind in der Datei enthalten.
Bv-seo-sdk-{version}.jar Es sind keine Abhängigkeiten in der Datei enthalten.
Bv-seo-sdk-{version}-osgi.jar Dieses SDK eignet sich nur für OSGi-unterstützte Umgebungen.

Wenn Sie sich nicht sicher sind, welches SDK Sie nutzen sollten, wählen Sie auf der Grundlage der folgenden Szenarien eines aus.

  • Meine Umgebung unterstützt OSGi – Verwenden Sie das SDK Bv-seo-sdk-{version}-osgi.jar. Diese Bibliothek wird für OSGi-Umgebungen empfohlen.
  • Meine Umgebung unterstützt OSGi nicht – Verwenden Sie die Datei Bv-seo-sdk-{version}-jar-with-dependencies.jar, sofern es aufgrund der in Ihrer Umgebung verwendeten SDK-Bibliotheken zu keinen Versionskonflikten kommt.
  • Meine Umgebung unterstützt OSGi nicht und es kommt zu Versionskonflikten – Verwenden Sie die Datei bv-seo-sdk-{version}.jar. Diese Bibliothek enthält keine Abhängigkeiten, sodass Sie fehlende Bibliotheken ermitteln und manuell bereitstellen müssen. Dies können Sie während der Kompilierung tun, wenn Kompilierungsfehler auftreten, oder während der Laufzeit, wenn „Klasse nicht gefunden“-Fehler auftreten.

Das SDK anpassen

Die BVSEO-SDKs eignen sich für die meisten Umgebungen. Allerdings basieren die BVSEO-SDKs auf einer Open-Source-Apache-Lizenz und können an Ihre Bedürfnisse angepasst werden. Jegliche Anpassungen erfolgen auf eigenes Risiko und werden nicht vom Bazaarvoice-Support unterstützt.

Zweigen Sie vom folgenden Link ab, um Anpassungen vorzunehmen: github.com/bazaarvoice/seo_sdk_java

Das Projekt einrichten

Folgen Sie diesen Schritten, um Ihr Projekt einzurichten.

Konfigurieren Sie die Einstellungen in Ihrer serverseitigen Java-Umgebung und bereiten Sie Ihre Entwicklungsumgebung vor, um Ihr Projekt einzurichten.

Die Serverumgebung konfigurieren

Hinweis: Dieser Abschnitt gilt nur für Kunden, die Java EE zur Implementierung ihrer Webseite nutzen.

Das Java SDK unterstützt die Erfassung von User-Agent-Strings, mit denen wir benutzergenerierte Inhalte (UDC) anbieten können, die noch besser auf Verbraucher abgestimmt sind. Wenn Ihr Unternehmen Java EE zum Hosten Ihrer Webseite verwendet, müssen Sie Ihre web.xml-Datei aktualisieren, die sich in Ihrem WEB-INF-Ordner befindet.

Kopieren Sie den folgenden Text und fügen Sie ihn in das <web-app>-Element in Ihrer web.xml-Datei ein:

<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>

Entwicklungsumgebung konfigurieren

Folgen Sie diesen Schritten, um Ihre Entwicklungsumgebung zu konfigurieren. Beispielwerte werden für jeden Schritt zusammen mit dem Beispielcode bereitgestellt. Unter Java-Code-Beispiele finden Sie einen vollständigen Beispielcode für verschiedene Szenarien, den Sie an Ihre Bedürfnisse anpassen können.

  1. Erstellen Sie ein Webprojekt über Ihre IDE.

    Beispiel: sampleweb

  2. Fügen Sie die SDK-Bibliothek unter WebContent/WEB-INF/lib ein.

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

  3. Erstellen Sie im Ordner WebContent eine JSP-Seite. Dies ist normalerweise Ihre Produktdetailseite (PDP).

    Beispiel: sample.jsp

  4. Richten Sie die JSP-Datei ein.

    Beispiel: Coding sample.jsp

  5. Exportieren Sie das Projekt als WAR-Datei und implementieren Sie sie in Tomcat .

    Beispiel: Das Projekt wird über die IDE ausgeführt, die Tomcat verwendet.

  6. Öffnen Sie die URL und zeigen Sie die Seitenquelle an, um die eingespeisten Inhalte zu entdecken.

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

Ihre Projektstruktur sollte wie das folgende Beispiel aussehen:

Die JSP-Datei einrichten

Folgen Sie diesen Schritten, um die JSP-Datei einzurichten, die Sie im vorherigen Vorgang erstellt haben.

  1. Konfigurieren Sie mit BVConfiguration.

    Der Beispielcode verwendet die Klasse BVSdkConfiguration, wobei es sich um eine Implementierung von BVConfiguration handelt. Stellen Sie sicher, dass com.bazaarvoice.seo.sdk.config.BVConfiguration in die Seite importiert wurde und fügen Sie mithilfe von addProperty die entsprechenden Konfigurationen hinzu. Im Abschnitt BVConfiguration unter Java SDK-Eingaben und Funktionen finden Sie weitere Details.

    Mithilfe der addProperty-Methode werden Konfigurationen/Eigenschaften zur BVSdkConfiguration hinzugefügt und Parameterwerte der Aufzählungstypen BVClientConfig und String erfasst. Das Beispiel zeigt verschiedene bereits hinzugefügte Eigenschaften.

  2. Legen Sie mithilfe von BVParametern die Parameter für Ihre Produktdetailseite fest.

    Dieser Schritt bietet für Produktseiteninhalte spezifische Details. Legen Sie Parameter mithilfe der BVParameters-Klasse fest, die aus com.bazaarvoice.seo.sdk.model.BVParameters importiert werden kann. Fügen Sie alle erforderlichen Felder ein, die in den Java-Code-Beispielen in diesem Abschnitt dargestellt werden.

  3. Holen Sie mithilfe von BVManagedUIContent die Inhalte ein.

    BVUIContent verfügt über drei APIs. Unter Java SDK-Eingaben und Funktionen finden Sie weitere Informationen zu den einzelnen APIs. Das Beispiel verwendet die API „getContent“ sowie „BVManagedUIContent“, eine Implementierung von BVUIContent. Geben Sie während der Instanziierung von „BVManagedUIContent“ die „BVSdkConfiguration“ an und rufen Sie die „getContent“- Übergabe-BVParameter auf. Diese API gibt einen String wider, der den BVSEO-Inhalt aufweist, den Sie in der JSP verwenden können.

Testen Ihrer Anwendung

Folgen Sie diesen Schritten, um Ihre Anwendung des Java SDKs zu testen und einen Debug vorzunehmen.

  1. Stellen Sie eine WAR-Datei bereit oder verwenden Sie einen Anwendungsserver wie Tomcat , um Ihre Anwendung auszuführen.
  2. Greifen Sie über die URL auf die Anwendung zu.

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

  3. Zeigen Sie die Seitenquelle an. Bewertungsinhalte und SEO <metadata> Tags sollten im BVRRContainer erscheinen.
  4. Verifizieren Sie, dass neben jeder Bewertung SEO-Metadaten-Tags angezeigt werden, wie in folgendem Codebeispiel dargestellt:
<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>

Stimmen die SEO-Metadaten-Tags nicht überein, nehmen Sie eine Fehlerbehebung vor und ergreifen Sie geeignete Maßnahmen basierend auf der Fehlermeldung innerhalb des SEO <metadata>-Tags.

Befolgen Sie die folgenden Schritte, um Ihre Anwendung zu debuggen:

Schritt 1: "bvreveal=debug" hinzufügen

  1. Fügen Sie den Parameter bvreveal=debug zur URL einer beliebigen Seite hinzu, auf der BVSEO implementiert wurde.

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

    Der Parameter bvreveal=debug fügt die Listen BVSEOSDK_meta und BVSEOSDK_DEBUG zum Quellcode hinzu. Diese enthalten Informationen zu Ihrer Implementierung. Wenn keine benutzergenerierten Inhalte vorhanden sind, liefert bvseo-msg weitere Einzelheiten.

    Hinweis: Wenn „pageurl“ nicht korrekt eingerichtet ist, funktioniert bvreveal=debug nicht. Wenn Sie keine Debug-Fußzeile angeben, werden Paginierungslinks möglicherweise falsch ausgegeben.
  2. Im Quellcode Ihrer Seite finden Sie Informationen zu Ihrer Implementierung. Diese Informationen finden sich in BVSEOSDK_meta und BVSEOSDK_DEBUG. Weitere Informationen finden Sie im vollständigen Beispielcode am Ende dieses Abschnitts.

Schritt 2: Suchen Sie nach Inhalten

Prüfen Sie, ob Inhalte für die angeforderte contentURL vorhanden sind, wie in den folgenden Schritten beschrieben:

  1. Suchen Sie die contentURL in der Liste BVSEOSDK_DEBUG. Beispiel: <li data-bvseo="contentURL">http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm</li>
  2. Führen Sie im Terminal den Befehl curl –i aus.
    Beispiel: curl –i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"

Wenn der curl-Befehl keine Inhalte ausgibt, könnte ein Problem mit der Firewall vorliegen oder es sind keine Inhalte für diese ProductID vorhanden. Wenden Sie sich zur weiteren Fehlerbehebung an Ihren Bazaarvoice-Ansprechpartner.

Fehlermeldungen

Folgende Fehlermeldungen können beim Debugging angezeigt werden.

  • HTTP-Statuscode 0 wurde ausgegeben (oder) Verbindung zu seo-stg.bazaarvoice.com abgelehnt – Zeigt an, dass in Ihrem Netzwerk eine Firewall aktiv ist. Ausgehende Anfragen von Ihrem Netzwerk werden möglicherweise von Ihrer Firewall blockiert. Wenden Sie sich zur Behebung von Firewall-Problemen an Ihr IT-Team.
  • Die Ressource für die URL oder Datei ist aktuell nicht verfügbar – Zeigt an, dass mit der Implementierungskonfiguration etwas nicht in Ordnung ist oder keine Inhalte für das angegebene Produkt erzeugt wurden.

Beispiel:

<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>

Java-SDK-Eingaben und Funktionen

Dieser Abschnitt enthält Details zu den wichtigsten Arten, die im BVSEO-SDK verwendet werden, sowie zu den Konfigurationsoptionen und deren Anwendungsmethoden mit der Java-Plattform.

BVConfiguration

BVConfiguration konfiguriert das BVSEO SDK. Es verfügt über zwei APIs:

  1. BVConfiguration.addProperty – Fügt Eigenschaften zu BVConfiguration hinzu.
  2. BVConfiguration.getProperty – ruft Eigenschaften von BVConfiguration ab.
    Hinweis: BVConfiguration.getProperty ist nur für den internen Gebrauch bei Bazaarvoice gedacht.

BVConfiguration ist eine Oberfläche unter com.bazaarvoice.seo.sdk.configund die bekannte Implementierungsklasse ist com.bazaarvoice.seo.sdk.config.BVSdkConfiguration.

Java-Nutzung

BVConfiguration bvConfiguration = new BVSdkConfiguration();

Eigenschaften mithilfe von BVConfiguration.addProperty hinzufügen

Wenn Sie Attribute in BVConfiguration hinzufügen und einstellen, ändern sich Funktionen und Verhalten des SDK. Die Konfigurationsoptionen sind in der Tabelle mit SDK-Konfigurationsattributen aufgeführt.

Legen Sie mithilfe von BVConfiguration.addProperty (BVClientConfig bvClientConfig, String value) Attribute fest.

Java-Nutzung

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

Attribut Art Beschreibung
CLOUD_KEY Erforderlich Cloud Key-String. Gibt den Key an, der zur Lokalisierung der Cloud-SEO-Dateien verwendet wird. Den Wert für diese Eigenschaft erfragen Sie bei Bazaarvoice. Dieses Attribut ist optional, wenn LOAD_LOCAL_FILES verwendet wird.
BV_ROOT_FOLDER Erforderlich Ordnerpfad-Deklaration. Gibt den Ordner an, in dem sich die SEO-Dateien befinden. Dieses Attribut wird auch als Anzeige-Code bezeichnet. Für jede Implementierungszone und jeden Standort werden eindeutige Stammordner angelegt. Den Wert für diese Eigenschaft erfragen Sie bei Bazaarvoice.

SEO_SDK_ENABLED

Optional Boolescher Wert. Legt fest, ob das SEO-SDK aktiviert (True) oder deaktiviert (False) wird.

Standard: True
EXECUTION_TIMEOUT Optional Zahlenwert. Legt die Zeit in Millisekunden (ms) zur Ausführung des SEO-Aufrufs für User Agents und Suchmaschinen-Bots (z.B. Browser) fest, die nicht in CRAWLER_AGENT_PATTERN aufgeführt sind.
Standard: 500
EXECUTION_TIMEOUT_BOT Optional Zahlenwert. Legt die Zeit in Millisekunden (ms) zur Ausführung des SEO-Aufrufs für Suchmaschinen-Bots fest, die mit CRAWLER_AGENT_PATTERN übereinstimmen.

Standard: 2000
CRAWLER_AGENT_PATTERN Optional Liste der User Agents von Suchmaschinen-Bots. Überschreibt die Standardliste der User Agents von Suchmaschinen-Bots. Sie können Agents zu dieser Liste hinzufügen und entfernen. Mehrere Werte werden durch „|“ getrennt.

Default: msnbot|google|teoma|bingbot|
yandexbot|yahoo
Staging Optional

Boolescher Wert. Legt fest, ob die SEO-Inhalte aus dem Staging (True) oder der Produktion (False) abgerufen werden sollen. Das trifft nicht zu, wenn Sie LOAD_SEO_FILES_LOCALLY nutzen.

Standard: False

Hinweis: Es wird häufig vergessen, die Staging-Daten zu deaktivieren. Überprüfen Sie, ob das SDK Staging-Daten abruft (True), wenn Sie keine Inhalte aus der Produktion erhalten.
SOCKET_TIMEOUT Optional

Zahlenwert. Legt eine Zeitüberschreitung für die Herstellung einer Verbindung und das Auslesen der gesamten Inhalte fest. Wird intern vom SDK verwendet.

Bearbeiten Sie diesen Wert nur, wenn ein Netzwerk- oder Bandbreitenproblem ständig Socket- oder Lese-Zeitüberschreitungen verursacht. Dieser Wert wird nur für die Cloud-SEO verwendet und gilt nicht, wenn Sie LOAD_SEO_FILES_LOCALLY benutzen.

Standard: 2000 ms

CONNECT_TIMEOUT Optional Zahlenwert. Legt eine Zeitüberschreitung für die Herstellung einer Verbindung zur Cloud-SEO fest. Wird intern vom SDK verwendet. Nur bei Bedarf bearbeiten.

Standard: 2000 ms
CHARSET Optional Zeichensatzdeklaration. Legt einen Zeichensatz fest. Wenn keiner angegeben wird, ist der Standardwert UTF-8. Verwenden Sie zum Beispiel „shift_jis“, wenn der Zeichensatz Shift JIS benutzt wird.

Standard: Verwendet den Standardwert, der von Ihrem Betriebssystem vorgegeben wird.
SSL_ENABLED Optional

Boolescher Wert. Legt fest, ob SSL-Verbindungen erforderlich sind (True). Nicht gültig, wenn LOAD_SEO_FILES_LOCALLY verwendet wird.
Standard::False

PROXY_HOST Optional Proxy-Host-Deklaration. Legt einen Proxy-Host fest, der bei manchen Clients aus Sicherheitsgründen erforderlich ist. Der häufigste Anwendungsfall sind Firewall-Richtlinien, die nur für eine IP-Adresse und nicht für eine Domain festgelegt werden können. Cloud SEO nutzt einen großen IP-Adressenbereich, der sich jederzeit ändern kann. Deshalb stellt Bazaarvoice den Clients keine Cloud SEO-IP-Adressen bereit. Das trifft nicht zu, wenn Sie LOAD_SEO_FILES_LOCALLY nutzen.
Hinweis: Zur Aktivierung des Proxy müssen sowohl PROXY_HOST als auch PROXY_PORT festgelegt werden.
PROXY_PORT Optional Zahlenwert. Legt die Port-Nummer fest, den das Proxy-/Gateway-System überwacht. Mit PROXY_HOST verwenden.
LOAD_SEO_FILES_LOCALLY Optional (Nicht empfohlen.) Boolescher Wert. Legt fest, ob die SEO-Dateien lokal (True) oder anderweitig (False) geladen werden. Lokale Dateikonfigurationen können bei der Bewältigung von Systembeschränkungen helfen. Ein lokales Dateisystem kann sich als fragil erweisen, da Bazaarvoice nicht für das tägliche Abrufen, Entpacken und Verteilen der SEO-Dateien zuständig ist. Zur Aktivierung lokaler Dateien müssen Sie LOCAL_SEO_FILE_ROOT festlegen.
LOCAL_SEO_FILE_ROOT Optional

(Nicht empfohlen.) Boolescher Wert. Legt fest, ob sich der Stammpfad der extrahierten SEO-Inhalte für BV_ROOT_FOLDER auf dem lokalen Dateisystem befindet (True) oder nicht (False). Mit LOAD_SEO_FILES_LOCALLY verwenden.

BVParameters

BVParameters sind die Parameter für die Seiten- oder Produktanzeige auf Seitenebene, die auf die SEO-Inhalte eines bestimmten Produktes zugreifen. Nutzen Sie die in der folgenden SDK-Parametertabelle aufgeführten Attribute, um Feldwerte festzulegen.

Dieses Modell wird vom SDK in der Klasse com.bazaarvoice.seo.sdk.model.BVParameters verwendet.

Java-Nutzung

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

Attribut Art Beschreibung
setUserAgent Erforderlich Kopfzeileninformationen zum User Agent eines Browsers. Dieser Parameter wird vom SDK verwendet, um herauszufinden, ob es sich um einen Suchmaschinen-Bot oder einen normalen Benutzer handelt. Diese Informationen können in Java aus dem HTTOPServletRequest ausgelesen werden. Dieser Suchmaschinen-Bot wird anhand der Konfiguration in CRAWLER_AGENT_PATTERN erkannt.
setBaseURI Erforderlich URL, die zur Erstellung von Paginierungs-Links verwendet wird. Bazaarvoice fügt den Parameter bvstate zur base_url hinzu. In den meisten Fällen sollte diese die Canonical URL der Produkt- oder Service-Seite beinhalten.

Erforderlich für Produktbewertungen. Die URL kann absolut, relativ oder leer (null ist zulässig) sein.
setPageURI Erforderlich Sendet alle Abfrageparameter, die an die aktuelle URL angehängt sind. Bazaarvoice nutzt diese Parameter, um festzustellen, welche Seite mit Bewertungsinhalten oder Fragen und Antworten eingebunden werden soll. Sie müssen die vollständige URL senden.
setSubjectID Erforderlich Kennung für den SEO-Betreff zum Abrufen der Inhalte, die vom ausgewählten SubjectType abhängen. Wenn der SubjectType zum Beispiel Product lautet, heißt dieser Wert productId. Wenn der SubjectType dagegen Category lautet, heißt der Wert reviewId.
setContentType Erforderlich Enum-Typ, der in ContentType definiert wird und SEO-Inhalte abruft. Zu den möglichen Werten gehören REVIEWS, REVIEWSPAGE, QUESTIONS, QUESTIONSPAGE und UNIVERSAL.
setSubjectType Erforderlich Enum-Typ, der in SubjectType definiert wird und Inhalte für einen spezifischen Betreffstyp abruft. Mögliche Werte sind PRODUCT, CATEGORY, ENTRY oder DETAIL.

BVUIContent

BVUIContent wird verwendet, um SEO-Inhalte abzurufen, nachdem Sie die korrekte(n) BVConfiguration und BVParameters angegeben haben.

BVUIContent zeigt drei APIs: getContent, getReviews, and getAggregateRating. Jede dieser APIs erfordert gültige BVParameters. In der folgenden Tabelle, BVUIContent APIs, wird die Verwendung dieser APIs erklärt.

BVUIContent ist die Schnittstelle innerhalb des Pakets com.bazaarvoice.seo.sdk. Die Implementierungsklasse lautet com.bazaarvoice.seo.sdk.BVManagedUIContent.

Java-Nutzung

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

API Zweck
getContent(BVParameters) Ruft den gesamten Inhalt des Betreffs ab. Die unterstützten Inhaltstypen umfassen REVIEWS und QUESTIONS. Inhaltstypen werden in BVParameters festgelegt. Sie können diese Inhalte in den Abschnitt Bewertungsübersicht auf der Produktseite einspeisen. Die erfassten Inhalte werden als einzelner Markup-Block eingespeist. Das Markup umfasst den Hauptinhalt und kumulierte Inhalte (soweit zutreffend).
getReviews(BVParameters) Ruft den Bewertungsabschnitt ab und lässt den kumulierten Abschnitt des Inhaltstyps REVIEWS aus. Diese Inhalte werden in den Abschnitt Bewertungen auf der Produktseite eingespeist.
getAggregateRating(BVParameters) Ruft den Abschnitt kumulierte Bewertung des Inhaltstyps REVIEWS ab. Sie können diese Inhalte in den Abschnitt Bewertungsübersicht auf der Produktseite einspeisen.

Java-Code-Beispiele

Die in diesem Themenbereich aufgeführten Beispiele implementieren die SDKs direkt in die Präsentationsebene, wodurch der Code vereinfacht wird. Dies wird jedoch nicht empfohlen. Dieses Beispiel dient der Veranschaulichung einer SDK-Integration. Stellen Sie sicher, dass Sie Ihren Code mit den richtigen Werten aktualisieren.

Hinweis: Sofern nicht anders angegeben, zeigen alle Beispiele eine Integration, bei der die Dateien aus der Cloud abgerufen werden.

Dieses Beispiel zeigt die Integration durch Ratings & Reviews von 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"%><% //Bestimmen Sie eine neue BVConfiguration. Eigenschaften innerhalb dieser Konfiguration befinden sich typischerweise in „bvconfig.properties“. //„addProperty“ kann zur Überschreibung von Konfigurationen verwendet werden, die in „bvconfig.properties“ festgelegt wurden. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //Für jeden Standort anpassen _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Bereiten Sie die Werte für pageURL und SubjectID/ProductID vor. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Legen Sie BV-Parameter fest, die für die Seite und den Inhaltstyp spezifisch sind. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); //Dieser Wert wird zur Erstellung von Paginierungs-Links verwendet _bvParam.setPageURI(pageURL); //Dieser Wert wird zur Entnahme der Seitennummer aus bv-URL-Parametern verwendet _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Erfassen Sie Inhalte und fügen Sie sie in die Strings ein, deren Output über die einspeisenden divs erfolgt. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //„getAggregateRating“ liefert nur den Abschnitt „AggregateRating“ String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //„getReviews“ liefert ausschließlich bei der Paginierung Bewertungsinhalte%> <!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>Einbindung von Ratings & Reviews in BVSEO</h1> <h2>Die Cloud für den Abruf von Dateien benutzen</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>

Dieses Beispiel zeigt die Integration durch Ratings & Reviews von BVSEO mit optionalen Konfigurationsparametern.

<%@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"%><% //Bestimmen Sie eine neue BVConfiguration. Eigenschaften innerhalb dieser Konfiguration befinden sich typischerweise in „bvconfig.properties“. //„addProperty“ kann zur Überschreibung von Konfigurationen verwendet werden, die in „bvconfig.properties“ festgelegt wurden. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //Für jeden Standort anpassen//Optionale Konfigurationsparameter _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"); //Legen Sie Ihre eigene Bot-Liste fest _bvConfig.addProperty(BVClientConfig.SSL_ENABLED, "false"); _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Bereiten Sie die Werte für pageURL und SubjectID/ProductID vor. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Legen Sie BV-Parameter fest, die spezifisch für die Seite und den Inhaltstyp sind. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); //Dieser Wert wird zur Erstellung von Paginierungs-Links verwendet _bvParam.setPageURI(pageURL); //Dieser Wert wird zur Entnahme der Seitennummer aus bv-URL-Parametern verwendet _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Erfassen Sie Inhalte und fügen Sie sie in die Strings ein, deren Output über die einspeisenden divs erfolgt. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //„getAggregateRating“ liefert nur den Abschnitt „AggregateRating“ String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //„getReviews“ liefert ausschließlich bei der Paginierung Bewertungsinhalte%> <!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>Einbindung von Ratings & Reviews in BVSEO</h1> <h2>Die Cloud für den Abruf von Dateien mit optionalen Konfigurations-Parametern benutzen</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>

Dieses Beispiel zeigt die Integration von Seller Ratings durch 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); //Überschreiben Sie die Standardeinstellung für „PRODUCT“ mit „SELLER“ _bvParam.setSubjectType(SubjectType.SELLER); //Legen Sie die „subjectId“ fest als „seller _bvParam.setSubjectId("seller")“; BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); String srdContent = _bvOutput.getContent(_bvParam);%> <html> <body> <div id="BVSellerRatingsContainer"> <%=srdContent%> </div> </body> </html>

Dieses Beispiel zeigt die Integration durch Ratings & Reviews von BVSEO mithilfe des lokalen Dateisystems zum Abruf von Dateien, anstatt durch Cloud. Unter Eine Dateimethode auswählen unter „Optimale Verfahren“ finden Sie weitere Informationen.

<%@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"%> <% //Bestimmen Sie eine neue BVConfiguration. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY, "true"); //Bei Verwendung von cloud-basierten Inhalten auf „false“ setzen _bvConfig.addProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT, "/"); //Fügen Sie Ihren Pfad ein _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //Für jeden Standort anpassen _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Bereiten Sie die Werte für pageURL und SubjectID/ProductID vor. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Legen Sie BV-Parameter fest, die spezifisch für die Seite und den Inhaltstyp sind. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); //Dieser Wert wird zur Erstellung von Paginierungs-Links verwendet _bvParam.setPageURI(pageURL); //Dieser Wert wird zur Entnahme der Seitennummer aus bv-URL-Parametern verwendet _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Erfassen Sie Inhalte und fügen Sie sie in die Strings ein, deren Output über die einspeisenden divs erfolgt. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //„getAggregateRating“ liefert nur den Abschnitt „AggregateRating“ String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //„getReviews“ liefert ausschließlich bei der Paginierung Bewertungsinhalte %> <!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>Einbindung von Ratings & Reviews in BVSEO</h1> <h2>Das lokale Dateisystem statt der Cloud für den Abruf von Dateien benutzen</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>

Dieses Beispiel zeigt die Integration durch Ratings & Reviews von BVSEO mittels eines 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"%> <% //Bestimmen Sie eine neue BVConfiguration. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //Für jeden Standort anpassen _bvConfig.addProperty(BVClientConfig.PROXY_HOST, "00.000.000.000"); _bvConfig.addProperty(BVClientConfig.PROXY_PORT, "80"); _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Bereiten Sie die Werte für pageURL und SubjectID/ProductID vor. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Legen Sie BV-Parameter fest, die spezifisch für die Seite und den Inhaltstyp sind. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); //Dieser Wert wird zur Erstellung von Paginierungs-Links verwendet _bvParam.setPageURI(pageURL); //Dieser Wert wird zur Entnahme der Seitennummer aus bv-URL-Parametern verwendet _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Erfassen Sie Inhalte und fügen Sie sie in die Strings ein, deren Output über die einspeisenden divs erfolgt. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //„getAggregateRating“ liefert nur den Abschnitt „AggregateRating“ String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //„getReviews“ liefert ausschließlich bei der Paginierung Bewertungsinhalte %> <!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>Einbindung von Ratings & Reviews in BVSEO</h1> <h2>Die Cloud für den Abruf von Dateien über ein Proxy benutzen</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>

Dieses Beispiel zeigt die Integration durch Ratings & Reviews und Questions & Answers von 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"%> <% //Bestimmen Sie eine neue BVConfiguration. Eigenschaften innerhalb dieser Konfiguration befinden sich typischerweise in „bvconfig.properties“. //„addProperty“ kann zur Überschreibung von Konfigurationen verwendet werden, die in „bvconfig.properties“ festgelegt wurden. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //Für jeden Standort anpassen _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Bereiten Sie die Werte für pageURL und SubjectID/ProductID vor. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Legen Sie BV-Parameter fest, die spezifisch für die Seite und den Inhaltstyp sind. //BV-Parameter für Ratings & Reviews BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); //Dieser Wert wird zur Erstellung von Paginierungs-Links verwendet _bvParam.setPageURI(pageURL); //Dieser Wert wird zur Entnahme der Seitennummer aus bv-URL-Parametern verwendet _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Erfassen Sie Inhalte und fügen Sie sie in die Strings ein, deren Output über die einspeisenden divs erfolgt. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //„getAggregateRating“ liefert nur den Abschnitt „AggregateRating“ String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //„getReviews“ liefert nur bei vorhandener Pagination Bewertungsinhalte //BVQAParameter für Questions & Answers BVParameters _bvQAParam = new BVParameters(); _bvQAParam.setBaseURI(request.getRequestURI()); //Dieser Wert wird zur Erstellung von Paginierungs-Links verwendet _bvQAParam.setPageURI(pageURL); //Dieser Wert wird zur Entnahme der Seitennummer aus bv URL-Parametern verwendet _bvQAParam.setContentType(ContentType.QUESTIONS); _bvQAParam.setSubjectType(SubjectType.PRODUCT); _bvQAParam.setSubjectId(subjectID); BVUIContent _bvQAOutput = new BVManagedUIContent(_bvConfig); //Erfassen Sie Inhalte und fügen Sie sie in die Strings ein, deren Output über die einspeisenden divs erfolgt. String sBvOutputQAContent = _bvQAOutput.getContent(_bvQAParam); //Für Questions & Answers sollte immer getContent verwendet werden. %> <!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>Einbindung von Ratings & Reviews sowie Questions & Answers in BVSEO</h1> <h2>Die Cloud für den Abruf von Dateien benutzen</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>

Code mithilfe des .NET-SDKs hinzufügen

Die folgenden Anforderungen sind für die Installation des .NET SDKs erforderlich:

  • Kenntnisse bei der .NET-Entwicklung und Visual Studio IDE
  • .NET Framework 3.5 oder höher
  • Visual Studio
  • BVSEO SDK library for .NET

Das SDK herunterladen

Laden Sie die entsprechende .NET-SDK-Datei hier herunter: BVSEO-.NET-SDK .

In der folgenden Tabelle werden die Dateien beschrieben, die in Ihrem Download enthalten sind.

Dateiname Beschreibung
BVSeoSdkDotNet.dll BVSEO-Bibliothek, die sowohl die Cloud-SEO- als auch die lokale Dateimethode unterstützt.
Commons.dll Bibliotheksabhängigkeit bei Apache Commons.
log4net.dll Bibliotheksabhängigkeit bei der Protokollierung.
NVelocity.dll Bibliotheksabhängigkeit bei Apache NVelocity, was für das Templating verantwortlich ist.
BVSeoSdkDotNet.pdb Enthält Debugging-Informationen.

Das SDK anpassen

Die BVSEO-SDKs eignen sich für die meisten Umgebungen. Allerdings basieren die BVSEO-SDKs auf einer Open-Source-Apache-Lizenz und können an Ihre Bedürfnisse angepasst werden. Jegliche Anpassungen erfolgen auf eigenes Risiko und werden nicht vom Bazaarvoice-Support unterstützt.

Zweigen Sie vom folgenden Link ab, um Anpassungen vorzunehmen: github.com/bazaarvoice/seo_sdk_dotnet

Das Projekt einrichten

Folgen Sie diesen Schritten, um Ihr Projekt einzurichten. Jeder Schritt beinhaltet einen Beispielwert.

  1. Erstellen Sie innerhalb von Visual Studio IDE ein ASP.NET-Webanwendungsprojekt und wählen Sie eine leere Vorlage aus.

    Beispiel: SampleWebApplication

  2. Entpacken Sie die Inhalte der heruntergeladenen Zip-Datei der SDK-Bibliothek.

  3. Klappen Sie das neue Projekt im Solution Explorer aus und führen Sie einen Rechtsklick auf „Referenzen“ aus, um die folgenden Bibliotheken aus dem SDK-Binärprogramm hinzuzufügen: BVSeoSdkDotNet.dll, Commons.dll, log4net.dll und NVelocity.dll.
  4. Fügen Sie eine neue aspx-Seite zu Ihrer Anwendung hinzu. Dies ist normalerweise Ihre Produktdetailseite (PDP).

    Beispiel: Sample.aspx Beispielcode

  5. Fügen Sie den erforderlichen Code in Sample.aspx und Sample.aspx.cs hinzu, so wie im Beispielcode dargestellt.
  6. Führen Sie einen Rechtsklick auf Sample.aspx aus und fügen Sie es als Startseite hinzu.
    Hinweis: Stellen Sie für die Schritte 6 und 7 sicher, dass „SampleWebApplication“ Ihr Startprojekt ist, wenn es mehr als ein Projekt in Ihrer Lösung gibt.
  7. Drücken Sie Strg+F5, um Ihre Anwendung auszuführen, oder öffnen Sie das Debugging-Menü und wählen Sie Ohne Debugging starten.

Den .NET-Code einrichten

Folgen Sie diesen Schritten, um den .NET-Code einzurichten:

  1. Konfigurieren Sie mit BVConfiguration.
  2. Legen Sie mithilfe von BVParameters die Parameter für Ihre Produktdetailseite fest.

  3. Holen Sie mithilfe von BVManagedUIContent die Inhalte ein.

Unter .NET-SDK-Eingaben und -Funktionen finden Sie weitere Informationen zu den einzelnen Schritten.

Unter .NET-Codebeispiele finden Sie Beispielcodes.

Testen Ihrer Anwendung

Folgen Sie diesen Schritten, um Ihre Anwendung des .NET SDKs zu testen und einen Debug vorzunehmen:

  1. Greifen Sie über die URL auf die Anwendung zu. Durch Ausführen Ihrer Anwendung unter Verwendung der IDE sollte sich Ihre Seite automatisch öffnen, wenn Sie diese als Startseite festgelegt haben.

    Beispiel: http://localhost:8080/Sample.aspx

  2. Zeigen Sie die Seitenquelle an. Bewertungsinhalte und SEO <metadata> Tags sollten im BVRRContainer erscheinen.
  3. Stellen Sie sicher, dass die SEO <metadata>-Tags nach jeder Bewertung angezeigt werden, wie im folgenden Codebeispiel dargestellt:
<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>

Stimmen die SEO <metadata>-Tags nicht wie im Codebeispiel dargestellt überein, nehmen Sie eine Fehlerbehebung vor und ergreifen Sie geeignete Maßnahmen basierend auf der innerhalb des SEO <metadata>-Tags angezeigten Fehlermeldung.

Befolgen Sie die folgenden Schritte, um Ihre Anwendung zu debuggen:

Schritt 1: "bvreveal=debug" hinzufügen

  1. Fügen Sie den Parameter bvreveal=debug zur URL einer beliebigen Seite hinzu, auf der BVSEO implementiert wurde.

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

    Der Parameter bvreveal=debug fügt die Listen BVSEOSDK_meta und BVSEOSDK_DEBUG zum Quellcode hinzu. Diese enthalten Informationen zu Ihrer Implementierung. Wenn keine benutzergenerierten Inhalte vorhanden sind, liefert bvseo-msg weitere Einzelheiten.

    Hinweis: Wenn „pageurl“ nicht korrekt eingerichtet ist, funktioniert bvreveal=debug nicht. Wenn Sie keine Debug-Fußzeile angeben, werden Paginierungslinks möglicherweise falsch ausgegeben.
  2. Im Quellcode Ihrer Seite finden Sie Informationen zu Ihrer Implementierung. Diese Informationen finden sich in BVSEOSDK_meta und BVSEOSDK_DEBUG. Weitere Informationen finden Sie im vollständigen Beispielcode am Ende dieses Abschnitts.

Schritt 2: Suchen Sie nach Inhalten

Prüfen Sie, ob Inhalte für die angeforderte contentURL vorhanden sind, wie in den folgenden Schritten beschrieben:

  1. Suchen Sie die contentURL in der Liste BVSEOSDK_DEBUG. Beispiel: <li data-bvseo="contentURL">http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm</li>
  2. Führen Sie im Terminal den Befehl curl –i aus.
    Beispiel: curl –i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"

Wenn der curl-Befehl keine Inhalte ausgibt, könnte ein Problem mit der Firewall vorliegen oder es sind keine Inhalte für diese ProductID vorhanden. Wenden Sie sich zur weiteren Fehlerbehebung an Ihren Bazaarvoice-Ansprechpartner.

Fehlermeldungen

Folgende Fehlermeldungen können beim Debugging angezeigt werden.

  • HTTP-Statuscode 0 wurde ausgegeben (oder) Verbindung zu seo-stg.bazaarvoice.com abgelehnt – Zeigt an, dass in Ihrem Netzwerk eine Firewall aktiv ist. Ausgehende Anfragen von Ihrem Netzwerk werden möglicherweise von Ihrer Firewall blockiert. Wenden Sie sich zur Behebung von Firewall-Problemen an Ihr IT-Team.
  • Die Ressource für die URL oder Datei ist aktuell nicht verfügbar – Zeigt an, dass mit der Implementierungskonfiguration etwas nicht in Ordnung ist oder keine Inhalte für das angegebene Produkt erzeugt wurden.

Beispiel:

<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>

.NET SDK-Eingaben und Funktionen

Dieser Abschnitt enthält Details zu den wichtigsten Arten, die im BVSEO-SDK verwendet werden, sowie zu den Konfigurationsoptionen und deren Anwendungsmethoden mit der .NET-Plattform.

BVConfiguration

BVConfiguration konfiguriert das BVSEO SDK. Es verfügt über zwei APIs:

  1. BVConfiguration.addProperty – Fügt Eigenschaften zu BVConfiguration hinzu.
  2. BVConfiguration.getProperty – ruft Eigenschaften von BVConfiguration ab.
    Hinweis: BVConfiguration.getProperty ist nur für den internen Gebrauch bei Bazaarvoice gedacht.

BVSdkConfiguration ist eine Implementierungsschnittstelle für BVConfiguration. Bitte unter Verwendung von BVSeoSdkDotNet.Config hinzufügen.

.NET-Nutzung

BVConfiguration bvConfig = new BVSdkConfiguration();

Eigenschaften hinzufügen

Wenn Sie Attribute in BVConfiguration hinzufügen und einstellen, ändern sich Funktionen und Verhalten des SDK. Die Konfigurationsoptionen sind in der folgenden Tabelle mit SDK-Konfigurationsattributen aufgeführt.

Legen Sie diese Attribute unter Verwendung der addProperty-Methode für BVConfiguration fest.

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

Tabelle der SDK-Konfigurationsattribute

Attribut Art Beschreibung
CLOUD_KEY Erforderlich Cloud Key-String. Gibt den Key an, der zur Lokalisierung der Cloud-SEO-Dateien verwendet wird. Den Wert für diese Eigenschaft erfragen Sie bei Bazaarvoice. Dieses Attribut ist optional, wenn LOAD_LOCAL_FILES verwendet wird.
BV_ROOT_FOLDER Erforderlich Ordnerpfad-Deklaration. Gibt den Ordner an, in dem sich die SEO-Dateien befinden. Dieses Attribut wird auch als Anzeige-Code bezeichnet. Für jede Implementierungszone und jeden Standort werden eindeutige Stammordner angelegt. Den Wert für diese Eigenschaft erfragen Sie bei Bazaarvoice.

SEO_SDK_ENABLED

Optional Boolescher Wert. Legt fest, ob das SEO-SDK aktiviert (True) oder deaktiviert (False) wird.

Standard: True
EXECUTION_TIMEOUT Optional Zahlenwert. Legt die Zeit in Millisekunden (ms) zur Ausführung des SEO-Aufrufs für User Agents und Suchmaschinen-Bots (z.B. Browser) fest, die nicht in CRAWLER_AGENT_PATTERN aufgeführt sind.
Standard: 500
EXECUTION_TIMEOUT_BOT Optional Zahlenwert. Legt die Zeit in Millisekunden (ms) zur Ausführung des SEO-Aufrufs für Suchmaschinen-Bots fest, die mit CRAWLER_AGENT_PATTERN übereinstimmen.

Standard: 2000
CRAWLER_AGENT_PATTERN Optional Liste der User Agents von Suchmaschinen-Bots. Überschreibt die Standardliste der User Agents von Suchmaschinen-Bots. Sie können Agents zu dieser Liste hinzufügen und entfernen. Mehrere Werte werden durch „|“ getrennt.

Default: msnbot|google|teoma|bingbot|
yandexbot|yahoo
Staging Optional

Boolescher Wert. Legt fest, ob die SEO-Inhalte aus dem Staging (True) oder der Produktion (False) abgerufen werden sollen. Das trifft nicht zu, wenn Sie LOAD_SEO_FILES_LOCALLY nutzen.

Standard: False

Hinweis: Es wird häufig vergessen, die Staging-Daten zu deaktivieren. Überprüfen Sie, ob das SDK Staging-Daten abruft (True), wenn Sie keine Inhalte aus der Produktion erhalten.
SOCKET_TIMEOUT Optional

Zahlenwert. Legt eine Zeitüberschreitung für die Herstellung einer Verbindung und das Auslesen der gesamten Inhalte fest. Wird intern vom SDK verwendet.

Bearbeiten Sie diesen Wert nur, wenn ein Netzwerk- oder Bandbreitenproblem ständig Socket- oder Lese-Zeitüberschreitungen verursacht. Dieser Wert wird nur für die Cloud-SEO verwendet und gilt nicht, wenn Sie LOAD_SEO_FILES_LOCALLY benutzen.

Standard: 2000 ms

CONNECT_TIMEOUT Optional Zahlenwert. Legt eine Zeitüberschreitung für die Herstellung einer Verbindung zur Cloud-SEO fest. Wird intern vom SDK verwendet. Nur bei Bedarf bearbeiten.

Standard: 2000 ms
CHARSET Optional Zeichensatzdeklaration. Legt einen Zeichensatz fest. Wenn keiner angegeben wird, ist der Standardwert UTF-8. Verwenden Sie zum Beispiel „shift_jis“, wenn der Zeichensatz Shift JIS benutzt wird.

Standard: Verwendet den Standardwert, der von Ihrem Betriebssystem vorgegeben wird.
SSL_ENABLED Optional

Boolescher Wert. Legt fest, ob SSL-Verbindungen erforderlich sind (True). Nicht gültig, wenn LOAD_SEO_FILES_LOCALLY verwendet wird.
Standard::False

PROXY_HOST Optional Proxy-Host-Deklaration. Legt einen Proxy-Host fest, der bei manchen Clients aus Sicherheitsgründen erforderlich ist. Der häufigste Anwendungsfall sind Firewall-Richtlinien, die nur für eine IP-Adresse und nicht für eine Domain festgelegt werden können. Cloud SEO nutzt einen großen IP-Adressenbereich, der sich jederzeit ändern kann. Deshalb stellt Bazaarvoice den Clients keine Cloud SEO-IP-Adressen bereit. Das trifft nicht zu, wenn Sie LOAD_SEO_FILES_LOCALLY nutzen.
Hinweis: Zur Aktivierung des Proxy müssen sowohl PROXY_HOST als auch PROXY_PORT festgelegt werden.
PROXY_PORT Optional Zahlenwert. Legt die Port-Nummer fest, den das Proxy-/Gateway-System überwacht. Mit PROXY_HOST verwenden.
LOAD_SEO_FILES_LOCALLY Optional (Nicht empfohlen.) Boolescher Wert. Legt fest, ob die SEO-Dateien lokal (True) oder anderweitig (False) geladen werden. Lokale Dateikonfigurationen können bei der Bewältigung von Systembeschränkungen helfen. Ein lokales Dateisystem kann sich als fragil erweisen, da Bazaarvoice nicht für das tägliche Abrufen, Entpacken und Verteilen der SEO-Dateien zuständig ist. Zur Aktivierung lokaler Dateien müssen Sie LOCAL_SEO_FILE_ROOT festlegen.
LOCAL_SEO_FILE_ROOT Optional

(Nicht empfohlen.) Boolescher Wert. Legt fest, ob sich der Stammpfad der extrahierten SEO-Inhalte für BV_ROOT_FOLDER auf dem lokalen Dateisystem befindet (True) oder nicht (False). Mit LOAD_SEO_FILES_LOCALLY verwenden.

BVParameters

BVParameters sind die Parameter für die Seiten- oder Produktanzeige auf Seitenebene, die auf die SEO-Inhalte eines bestimmten Produktes zugreifen. Nutzen Sie die in der folgenden SDK-Parametertabelle aufgeführten Attribute, um Feldwerte festzulegen.

Dieses Modell wird vom SDK beim Hinzufügen unter Verwendung von BVSeoSdkDotNet.Model verwendet.

.NET-Nutzung

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

SubjectId = “exampleExternalId”
};

Oder

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

SDK-Parameter

Attribut Art Beschreibung
setUserAgent Erforderlich Kopfzeileninformationen zum User Agent eines Browsers. Dieser Parameter wird vom SDK verwendet, um herauszufinden, ob es sich um einen Suchmaschinen-Bot oder einen normalen Benutzer handelt. Diese Informationen können in Java aus dem HTTOPServletRequest ausgelesen werden. Dieser Suchmaschinen-Bot wird anhand der Konfiguration in CRAWLER_AGENT_PATTERN erkannt.
setBaseURI Erforderlich URL, die zur Erstellung von Paginierungs-Links verwendet wird. Bazaarvoice fügt den Parameter bvstate zur base_url hinzu. In den meisten Fällen sollte diese die Canonical URL der Produkt- oder Service-Seite beinhalten.

Erforderlich für Produktbewertungen. Die URL kann absolut, relativ oder leer (null ist zulässig) sein.
setPageURI Erforderlich Sendet alle Abfrageparameter, die an die aktuelle URL angehängt sind. Bazaarvoice nutzt diese Parameter, um festzustellen, welche Seite mit Bewertungsinhalten oder Fragen und Antworten eingebunden werden soll. Sie müssen die vollständige URL senden.
setSubjectID Erforderlich Kennung für den SEO-Betreff zum Abrufen der Inhalte, die vom ausgewählten SubjectType abhängen. Wenn der SubjectType zum Beispiel Product lautet, heißt dieser Wert productId. Wenn der SubjectType dagegen Category lautet, heißt der Wert reviewId.
setContentType Erforderlich Enum-Typ, der in ContentType definiert wird und SEO-Inhalte abruft. Zu den möglichen Werten gehören REVIEWS, REVIEWSPAGE, QUESTIONS, QUESTIONSPAGE und UNIVERSAL.
setSubjectType Erforderlich Enum-Typ, der in SubjectType definiert wird und Inhalte für einen spezifischen Betreffstyp abruft. Mögliche Werte sind PRODUCT, CATEGORY, ENTRY oder DETAIL.

BVUIContent

BVUIContent wird verwendet, um SEO-Inhalte abzurufen, nachdem Sie die korrekte(n) BVConfiguration und BVParameters angegeben haben.

BVUIContent zeigt drei APIs: getContent, getReviews, and getAggregateRating. Jede dieser APIs erfordert gültige BVParameters. In der folgenden Tabelle, BVUIContent APIs, wird die Verwendung dieser APIs erklärt.

BVManagedUIContent ist eine Implementierung für BVUIContent und wird unter Verwendung von BVSeoSdkDotNet.Content hinzugefügt.

.NET-Nutzung

BVUIContent bvUIContent = new BVManagedUIContent(bvConfig);

string theContent = bvUIContent.getContent(bvParameters);

BVUIContent-API

API Zweck
getContent(BVParameters) Ruft den gesamten Inhalt des Betreffs ab. Die unterstützten Inhaltstypen umfassen REVIEWS und QUESTIONS. Inhaltstypen werden in BVParameters festgelegt. Sie können diese Inhalte in den Abschnitt Bewertungsübersicht auf der Produktseite einspeisen. Die erfassten Inhalte werden als einzelner Markup-Block eingespeist. Das Markup umfasst den Hauptinhalt und kumulierte Inhalte (soweit zutreffend).
getReviews(BVParameters) Ruft den Bewertungsabschnitt ab und lässt den kumulierten Abschnitt des Inhaltstyps REVIEWS aus. Diese Inhalte werden in den Abschnitt Bewertungen auf der Produktseite eingespeist.
getAggregateRating(BVParameters) Ruft den Abschnitt kumulierte Bewertung des Inhaltstyps REVIEWS ab. Sie können diese Inhalte in den Abschnitt Bewertungsübersicht auf der Produktseite einspeisen.

.NET Code-Beispiele

Die Beispiele in diesem Abschnitt implementieren das SDK direkt in ein leeres ASP.NET-Projekt mit aspx-Webformularcode hinter einer Seite, wodurch der Code vereinfacht wird. Dies wird jedoch nicht empfohlen. Diese Beispiele dienen der Veranschaulichung einer SDK-Integration. Stellen Sie sicher, dass Sie Ihren Code mit den richtigen Werten aktualisieren.

Hinweis: Wenn Sie ein Webseitenprojekt nutzen, schalten Sie die Seitenrichtlinie „CodeBehind” unbedingt auf „CodeFile” um, bevor Sie die Beispiele kopieren.

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); } } }

Dieses Beispiel zeigt die Integration durch Ratings & Reviews von 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; } } }

Sie können außerdem das folgende HTML-Code-Snippet verwenden.

<%@ 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>

Dieses Beispiel zeigt die Integration durch Ratings & Reviews von BVSEO mit optionalen Konfigurationsparametern.

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; } } }

Sie können außerdem das folgende HTML-Code-Snippet verwenden.

<%@ 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>

Dieses Beispiel zeigt die Integration von Seller Ratings durch 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(); } } }

Sie können außerdem das folgende HTML-Code-Snippet verwenden.

<%@ 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>Integration der Anzeige von Seller Ratings</h1> <div> <div id="BVSellerRatingsContainer" runat="server"></div> </div> </body>

Dieses Beispiel zeigt die Integration durch Ratings & Reviews von BVSEO mithilfe des lokalen Dateisystems zum Abruf von Dateien, anstatt durch Cloud. Unter Eine Dateimethode auswählen finden Sie weitere Informationen.

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; } } }

Sie können außerdem das folgende HTML-Code-Snippet verwenden.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ex-simple-rr-local-file.aspx.cs" Inherits="Aspx_Examples.ex_simple_rr_cloud" %> <!DOCTYPE html> <head runat="server"> <title></title> </head> <body> <h1>Einbindung von Bewertungen in BVSEO</h1> <h2>Ein lokales Datensystem anstelle die Cloud für den Abruf von Dateien benutzen</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>

Dieses Beispiel zeigt die Integration durch Ratings & Reviews von BVSEO mittels eines 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; } } }

Sie können außerdem das folgende HTML-Code-Snippet verwenden.

<%@ 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>

Dieses Beispiel zeigt die Integration durch Ratings & Reviews und Questions & Answers von 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; } } }

Sie können außerdem das folgende HTML-Code-Snippet verwenden.

<%@ 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>

Code mithilfe des PHP-SDK hinzufügen

Die folgenden Anforderungen sind für die Installation des PHP SDKs erforderlich:

  • HTTP-Server oder PHP integrierter Webserver
  • PHP 5.5 oder höher mit cURL- und mbstring-Bibliothek

  • BVSEO SDK-Bibliothek für PHP
Hinweis: Bazaarvoice unterstützt nur die auf der Seite Von php.net unterstützte Versionen aufgelisteten aktuellen PHP-Versionen.

Das SDK herunterladen

Laden Sie die entsprechende PHP-SDK-Datei hier herunter: BVSEO PHP-SDK .

Die folgenden Dateien sind in Ihrem Download enthalten:

Dateiname Beschreibung
Bvseosdk.php BVSEO-Bibliothek, die sowohl die Cloud-SEO- als auch die lokale Dateimethode unterstützt.
BVFooter.php Wird zur Generierung von Inhalten und zum Debugging der SDK-Fußzeile verwendet.
BVUtility.php Häufige, von der BVSEO SDK-Bibliothek verwendete, Nutzenfunktionen.

Das SDK anpassen

Die BVSEO-SDKs eignen sich für die meisten Umgebungen. Allerdings basieren die BVSEO-SDKs auf einer Open-Source-Apache-Lizenz und können an Ihre Bedürfnisse angepasst werden. Jegliche Anpassungen erfolgen auf eigenes Risiko und werden nicht vom Bazaarvoice-Support unterstützt.

Zweigen Sie vom folgenden Link ab, um Anpassungen vorzunehmen: github.com/bazaarvoice/seo_sdk_php

Das Projekt einrichten

Folgen Sie diesen Schritten, um Ihr Projekt einzurichten. Beispielwerte werden für jeden Schritt zusammen mit dem Beispielcode bereitgestellt. Unter PHP-Codebeispiele finden Sie einen vollständigen Beispielcode für verschiedene Szenarien, den Sie an Ihre Bedürfnisse anpassen können.

  1. Erstellen Sie eine Datei.

    Beispiel: sampleweb.php

  2. Fügen Sie bvseosdk.php ein.
  3. Erstellen Sie eine Instanz für das BV-Objekt.
  4. Rufen Sie $bv->reviews->getReviews() innerhalb von <div data-bv-show="reviews" data-bv-product-id="ExternalId"></div> auf, um die BVSEO Inhalte zu erfassen. Dieser Aufruf gibt den BVSEO HTML-Code als String wider.

Testen Ihrer Anwendung

Folgen Sie diesen Schritten, um Ihre Anwendung des PHP SDKs zu testen.

  1. Laden Sie die Beispieldatei in einen Host-Ordner hoch und greifen Sie mithilfe der URL auf die Beispiel-Anwendung zu.

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

  2. Zeigen Sie die Seitenquelle an. Bewertungsinhalte und SEO <metadata> Tags sollten im BVRRContainer erscheinen.
  3. Stellen Sie sicher, dass die SEO <metadata>-Tags nach jeder Bewertung angezeigt werden, wie im folgenden Codebeispiel dargestellt:
<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>

Stimmen die SEO <metadata>-Tags nicht wie im Codebeispiel dargestellt überein, nehmen Sie eine Fehlerbehebung vor und ergreifen Sie geeignete Maßnahmen basierend auf der innerhalb des SEO <metadata>-Tags angezeigten Fehlermeldung.

PHP-SDK-Eingaben und Funktionen

Dieser Abschnitt enthält Details zu den wichtigsten Klassen, die im BVSEO-SDK verwendet werden, sowie zu den Konfigurationsoptionen und deren Anwendungsmethoden mit der PHP-Plattform.

Konfiguration

Konfigurationseinstellungen werden als Konstruktor-Parameter der BV-Klasse hinzugefügt. Legen Sie Konfigurationseigenschaften fest, indem Sie diese in das Optionen-Array platzieren, wobei das Attribut kleingeschrieben als Schlüssel und Wert dient.

PHP-Nutzung

Setzen Sie EXECUTION_TIMEOUT auf 5000 fest, indem Sie es zum Optionen-Arrayschlüssel mit dem Wert execution_timeout => 5000 hinzufügen.

$bv = new BV(array(
//Erforderliche Felder
'cloud_key' => 'myshco-3e3001e88d9c32d19a17cafacb81bec7',
'bv_root_folder' => 'Main_Site-ja_JP',
'subject_id' =>’5000001’,
//Unsere optionalen Parameter
'execution_timeout' => 5000,
));

Eigenschaften hinzufügen

Wenn Sie Attribute hinzufügen und einstellen, ändern sich Funktionen und Verhalten des SDK. Die Konfigurationsoptionen sind in den folgenden Tabellen mit PHP-DK-Konfigurationsattributen und PHP-SDK-Parametern aufgeführt.

Alle Konfigurationseinstellungen werden hinzugefügt, wenn Sie eine Instanz für die BV-Klasse erstellen.

PHP-SDK-Konfigurationsattribute

Attribut Art Beschreibung
CLOUD_KEY Erforderlich Wird zur Lokalisierung der Cloud-SEO-Dateien genutzt. Den Wert für diese Eigenschaft erfragen Sie bei Bazaarvoice. Dieses Attribut ist optional, wenn LOAD_LOCAL_FILES verwendet wird.
BV_ROOT_FOLDER Erforderlich Der Ordner, in dem sich die SEO-Dateien befinden. Dieses Attribut wird auch als Anzeige-Code bezeichnet. Für jede Implementierungszone und jeden Standort werden eindeutige Stammordner angelegt. Den Wert für diese Eigenschaften erfragen Sie bei Bazaarvoice.
base_url Erforderlich URL, die zur Erstellung von Paginierungs-Links verwendet wird. Bazaarvoice fügt den Parameter bvstate zur base_url hinzu. In den meisten Fällen sollte diese die Canonical URL der Produkt- oder Service-Seite beinhalten.

Erforderlich für Produktbewertungen. Die URL kann absolut, relativ oder leer (null ist zulässig) sein.
page_url Erforderlich Sendet alle Abfrageparameter, die an die aktuelle URL angehängt sind. Bazaarvoice nutzt diese Parameter, um festzustellen, welche Seite mit Bewertungsinhalten oder Fragen und Antworten eingebunden werden soll. Sie müssen nicht die vollständige URL senden.
subject_id Erforderlich Kennung für den SEO-Betreff zum Abrufen der Inhalte, die vom Inhalt abhängt, den Sie abrufen wollen. Für Bewertungen und Fragen ist das die „ProductID“

SEO_SDK_ENABLED

Optional Boolescher Wert, der für die Aktivierung (True) oder Deaktivierung (False) des SEO SDK genutzt wird.Standard: True
EXECUTION_TIMEOUT Optional Zeit in Millisekunden (ms) zur Ausführung des SEO-Aufrufs für User Agents und Suchmaschinen-Bots (z.B. Browser), die nicht in CRAWLER_AGENT_PATTERN aufgeführt sind.
Standard: 500
EXECUTION_TIMEOUT_BOT Optional Zeit in Millisekunden (ms) zur Ausführung des SEO-Aufrufs für Suchmaschinen-Bots, die mit CRAWLER_AGENT_PATTERN übereinstimmen.

Standard: 2000.
CRAWLER_AGENT_PATTERN Optional Überschreibt die Standardliste der User Agents von Suchmaschinen-Bots. Sie können Agents zu dieser Liste hinzufügen und entfernen. Mehrere Werte werden durch ein „|“ getrennt.
Default:msnbot|google|teoma|bingbot|yandexbot|yahoo.
Staging Optional

Setzen Sie dieses Attribut auf True, um SEO-Inhalte aus dem Staging abzurufen, oder auf False, um SEO-Inhalte aus der Produktion abzurufen. Das trifft nicht zu, wenn Sie LOAD_SEO_FILES_LOCALLY nutzen.

Standard False:

Hinweis: Passen Sie auf, wenn Sie das SDK auf den Abruf von Staging-Daten einstellen (True). Es wird häufig vergessen, die Staging-Daten wieder zu deaktivieren.
SOCKET_TIMEOUT Optional

Wird vom SDK intern als Zeitüberschreitung für die Herstellung einer Verbindung und das Auslesen der gesamten Inhalte genutzt.

Bearbeiten Sie diesen Wert nur, wenn ein Netzwerk- oder Bandbreitenproblem ständig Socket- oder Lese-Zeitüberschreitungen verursacht. Dies wird nur für die Cloud-SEO verwendet und gilt nicht, wenn Sie LOAD_SEO_FILES_LOCALLY benutzen.

Standard: 2000 ms

CONNECT_TIMEOUT Optional Wird vom SDK intern als Zeitüberschreitung für die Herstellung einer Verbindung zur Cloud-SEO genutzt. Nur bei Bedarf bearbeiten.
Standard: 2000 ms
CHARSET Optional Nutzen Sie diese Zeichenketteneingabe, wenn andere Zeichensätze als UTF-8 verwendet werden. Wenn beispielsweise der Shift JIS-Zeichensatz genutzt wird, sollten Sie hier „shift_jis“ eingeben.

Standard: Verwendet den Standardwert, der von Ihrem OS festgelegt wird.
SSL_ENABLED Optional

Setzen Sie diesen Wert auf „true“, wenn SSL-Verbindungen erforderlich sind. Das trifft nicht zu, wenn Sie LOAD_SEO_FILES_LOCALLY nutzen.

Standard False:

PROXY_HOST Optional Die Proxy-Unterstützung ist bei manchen Clients aus Sicherheitsgründen erforderlich. Der häufigste Anwendungsfall sind Firewall-Richtlinien, die nur für eine IP-Adresse und nicht für eine Domain festgelegt werden können. Cloud SEO nutzt einen großen IP-Adressenbereich, der sich jederzeit ändern kann. Deshalb stellt Bazaarvoice den Clients keine Cloud SEO-IP-Adressen bereit. Zur Aktivierung des Proxy müssen PROXY_HOST und PROXY_PORT festgelegt werden. Das trifft nicht zu, wenn Sie LOAD_SEO_FILES_LOCALLY nutzen.
PROXY_PORT Optional Port-Nummer, die das Proxy-/Gateway-System überwacht. Zusammen mit PROXY_HOST verwenden.
LOAD_SEO_FILES_LOCALLY Optional (Nicht empfohlen.) Lokale Dateikonfigurationen können zur Bewältigung von Systembeschränkungen erforderlich sein. Ein lokales Dateisystem kann sich als fragil erweisen, da Bazaarvoice nicht für das tägliche Abrufen, Entpacken und Verteilen der SEO-Dateien zuständig ist. Zur Aktivierung lokaler Dateien müssen Sie LOCAL_SEO_FILE_ROOT festlegen. Die möglichen Werte sind True und False.
LOCAL_SEO_FILE_ROOT Optional

(Nicht empfohlen.) Attribut zur Festlegung des Stammpfads der extrahierten SEO-Inhalte für BV_ROOT_FOLDER auf dem lokalen Dateisystem. Sollte zusammen mit LOAD_SEO_FILES_LOCALLY verwendet werden.

content_type Optional Einstellung je nach aufgerufener Methode. Mit SEOGetContent verwenden.
subject_type Optional Einstellung je nach aufgerufener Methode.

Inhalte abrufen

Nachdem Sie eine BV-Klasseninstanz erstellt haben, können Sie darüber Fragen und Bewertungen abrufen.

PHP-Nutzung

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

BVUIContent-APIs

API Zweck
getContent() Ruft den gesamten Inhalt des Betreffs ab. Die unterstützten Inhaltstypen umfassen REVIEWS und QUESTIONS. Diese werden in BVParameters festgelegt. Sie können diese Inhalte in den Abschnitt Bewertungsübersicht auf der Produktseite einspeisen. Die erfassten Inhalte werden als einzelner Markup-Block eingespeist. Dies umfasst den Hauptinhalt und kumulierte Inhalte (soweit zutreffend).
getReviews() Ruft den Bewertungsabschnitt ab und lässt den kumulierten Abschnitt des Inhaltstyps REVIEWS aus. Diese Inhalte sollten in den Abschnitt Bewertungen auf der Produktseite eingespeist werden.
getAggregateRating() Ruft den Abschnitt kumulierte Bewertung des Inhaltstyps REVIEWS ab. Sie können diese Inhalte in den Abschnitt Bewertungsübersicht auf der Produktseite einspeisen.

PHP-Codebeispiele

Die folgenden Code-Beispiele zeigen die Verwendung von BVSEO in PHP. Stellen Sie sicher, dass Sie Ihren Code mit den richtigen Werten aktualisieren.

Mit diesem Beispielcode können Sie kumulierte Inhalte aus Bewertungen und Beurteilungen zurückgeben lassen. Bazaarvoice empfiehlt diesen Code für PDPs.

<?php //Definieren Sie die Basis- und Seiten-URLs; stellen Sie sicher, dass das Protokoll (http oder https) mit jenem der Produktionswebsite übereinstimmt $base = 'http://' . $_SERVER['HTTP_HOST']; $page = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //Geben Sie an: cloud_key, bv_root_folder und 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“ MUSS sämtliche URL-Parameter aufweisen, die bei der Seitenanfrage vorlagen; ansonsten kann nur Seite 1 des Inhalts indexiert werden 'page_url' => $page, //„base_url“ ist die kürzestmögliche URL, die auf diese spezifische Produktseite verweist 'base_url' => $base )); ?> <!DOCTYPE html> <html> <head> <title>BV SDK PHP Beispiel – Einfache Ratings & Reviews (empfohlene Methode)</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>

Mit diesem Beispielcode können Sie Inhalte aus Questions & Answers zurückgeben lassen.

<?php //Bitte geben Sie an: cloud_key, bv_root_folder und 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“ MUSS sämtliche URL-Parameter aufweisen, die bei der Seitenanfrage vorlagen; ansonsten kann nur Seite 1 des Inhalts indexiert werden. 'page_url' => 'http://www.company.com/category/sub-category?query=value', //„base_url“ ist die kürzestmögliche URL, die auf diese spezifische Produktseite verweist 'base_url' => 'http://www.company.com/category/sub-category', //Stellen Sie sicher, dass das Protokoll, http:// oder https:// mit der Produktionswebseite übereinstimmt. )); ?><!DOCTYPE html> <html> <head> <title>BV SDK PHP Example - Questions: GetContent</title> </head> <body> Dies ist eine Testseite für Fragen: getContent<br> Dies wird Questions & Answers-Inhalte aufrufen<br><br> <div data-bv-show="questions" data-bv-product-id="ExternalId"> <?php echo $bv->questions->getContent(); ?> </div> </body> </html>

Mit diesem Beispielcode können Sie Inhalte aus Seller Ratings abrufen.

<?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>

Mit diesem Beispielcode können Sie Inhalte aus Ratings & Reviews und kumulierten Bewertungen zurückgeben lassen.

<?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>

Optimale Verfahren

Mit den folgenden optimalen Verfahren können Sie den SEO-Vorteil auf Ihren Produktbewertungsseiten maximieren.

Hinweis: Die Standardeinstellungen für BVSEO unterstützen diese Verfahren.

Auch wenn Sie einen Tab mit Bewertungen auf der Produktübersichtsseite haben, schätzen es Kunden, wenn beim Herunterscrollen auf der Seite Bewertungsinhalte angezeigt werden. Ohne Bewertungen auf der Übersichtsseite stufen Suchmaschinen diese als veraltet ein. Indem Sie acht Bewertungen zur Seite hinzufügen, erhöhen Sie deren Aktualitätswert für den Google-Algorithmus ungemein. Seiten mit sichtbaren Bewertungen (nicht innerhalb eines Tabs) erhalten außerdem nachhaltig mehr Rich-Snippet-Sterne in den Google-Suchergebnissen.

Befolgen Sie diese Schritte, um die Anzahl der Bewertungen auf der Produktübersichtsseite festzulegen:

  1. Suchen Sie im Site Manager nach der Implementierung, die Sie konfigurieren möchten.
  2. Klicken Sie auf die Schaltfläche Edit (Bearbeiten) neben der Implementierung, um die Konfiguration zu öffnen.
  3. Wählen Sie unter Benutzererlebnis die Option Anzeigeoptionen und gehen Sie zum Tab Ratings & Reviews.
  4. Scrollen Sie zur Textbox Bewertungen auf der ersten Seite herunter. Geben Sie die Anzahl der Bewertungen an, die auf der Seite angezeigt werden sollen.

Wenn Sie keinen Zugriff auf die Konfiguration in Bazaarvoice-Portal haben, senden Sie eine Supportanfrage, um die Anzahl der Bewertungen festzulegen.

Dieses Element der BVSEO-Strategie hilft dabei am ehesten, Ihre bestehenden Seiten in den Suchergebnissen für Zielphrasen nach oben zu platzieren.

Eine Sortierung nach Relevanz ist sowohl für die SEO als auch Conversions besser. Der Relevanz-Algorithmus sucht nach Bewertungen, die inhaltsreich und aktuell sind, sodass es Ihre ursprünglich angezeigten Bewertungen zusammen mit Inhalten anzeigt, die besonders suchmaschinen-freundlich sind. Dieses Element der BVSEO-Strategie verbessert die Relation des Inhalts und des Links einer Webseite, die Dichte der Ziel-Keywords sowie das Volumen der Synonyme und Adjektive, welche die Ziel-Keywords unterstützen.

Befolgen Sie diese Schritte, um festzulegen, welche Sortiermethoden den Benutzern zur Verfügung stehen.

  1. Suchen Sie im Site Manager nach der Implementierung, die Sie konfigurieren möchten.
  2. Klicken Sie auf die Schaltfläche Edit (Bearbeiten) neben der Implementierung, um die Konfiguration zu öffnen.
  3. Wählen Sie unter Benutzererlebnis die Option Anzeigeoptionen und gehen Sie zum Tab Ratings & Reviews.
  4. Scrollen Sie hinunter zu Sortierfunktion für Bewertungen. Setzen Sie unter der Liste Sortieroptionen für Bewertungen ein Häkchen in die Box Höchste Relevanz, um die Sortierung nach Relevanz zu aktivieren.

Wenn Sie keinen Zugriff auf die Konfiguration in Bazaarvoice-Portal haben, senden Sie eine Supportanfrage, um die Sortiermethoden festzulegen.

Umfangreiche Tests haben bestätigt, dass Benutzer und Suchmaschinenbots am positivsten darauf reagieren, wenn Ihre Webseite mehrere Seiten für ein Produkt aufweist und die Seiten nach der Übersicht jeweils etwa 30 Bewertungen enthalten. Stellen Sie sicher, dass auf jeder Seite nicht mehr als 30 Bewertungen angezeigt werden, obgleich Sie BVSEO-SDKs nutzen oder Ihre eigene Lösung implementieren.

Wenn Sie die Paginierung zuvor bereits in Erwägung gezogen hatten, diese jedoch als zu schwierig zu implementieren befunden haben, möchten wir Sie darauf hinweisen, dass der Vorgang durch die aktuelle BVSEO-Implementierungsmethode erheblich vereinfacht wurde. Dieses Strategieelement wird Ihren langfristigen Traffic am ehesten erhöhen.

Die paginierten Seiten eignen sich optimal für die Platzierung von Ziel-Keywords, die das Wort „Bewertungen“ enthalten. In den meisten Fällen hilft es, die Seiten in kompetitiven Suchanfragen wie „[Ihre Schuhmarke] Bewertungen“ oder „[Ihr Hotelname] Bewertungen“ gut abschneiden zu lassen, indem das Wort „Bewertungen“ an einem logischen Ort im Titel oder in den Kopfzeilen-Tags platziert wird.

Dieses Element der BVSEO-Strategie ist mit aller Wahrscheinlichkeit der beste Weg, um ihre Webseiten hoch einzuordnen für Phrasen die das Wort „Bewertung“ enthalten.

Google verleiht Rich-Snippet-Sterne an Webseiten, die bestimmte Bewertungsinhalte mit einem ordnungsgemäßen Schema.org enthalten und die keine wichtigen Details verbergen. Rich-Snippet-Sterne sind die Sterne, die in den Google-Suchergebnissen wie in der folgenden Abbildung dargestellt angezeigt werden:

Die folgenden Hinweise und Vorschläge basieren auf der Erfahrung des BVSEO-Teams mit Hunderten von Kunden seit der Einführung von Googles Rich-Snippet-Sterne.

  • Damit Rich-Snippet-Sterne erfolgreich angezeigt werden können, dürfen Googles Suchmaschinen-Bots Bewertungsübersichtsinhalte in keinerlei Weise durch CSS als verborgen erkennen. Möglicherweise müssen Sie die Implementierung der Registerkarten anpassen oder Bewertungen außerhalb einer Registerkarte implementieren, wenn 3–4 Wochen nach der Implementierung keine Rich-Snippet-Sterne in den Suchergebnissen angezeigt werden.

  • Das Test-Tool für strukturierte Daten von Google ist zwar sehr hilfreich, jedoch sehr viel großzügiger als die Google Websuche.
  • Als Google zum ersten Mal Rich-Snippet-Sterne einführte, unterhielt das Unternehmen eine Zulassungs- und Sperrliste (manchmal auch als „Whitelist“ und „Blacklist“ bezeichnet) für die Vergabe der Sterne. Spuren dieser Listen könnten weiterhin aktiv sein.

  • Die Entscheidung, ob Rich-Snippet-Sterne angezeigt werden oder nicht, liegt allein bei Google. Warten Sie nach der Implementierung des schema.org-Codes ein paar Wochen. Funktionieren die im Abschnitt „Strukturiertes Markup und Rich-Snippet-Sterne“ unter FAQ beschriebenen Schritte nicht, sehen Sie sich unter Rich Snippets werden nicht angezeigt die Google-Richtlinien zur Fehlerbehebung in Bezug auf Rich Snippets an.
  • Der BVSEO-Code ist bei all unseren Kunden einheitlich und operiert auf ihren Millionen von Webseiten ohne Probleme. Sollte ein Problem auftreten, stellen Sie sicher, dass BVSEO korrekt für den schema.org -Typ konfiguriert wurde und richten Sie ihr Hauptaugenmerk auf die Umgebung des BVSEO-Codes.

Die BVSEO-SDKs unterstützen sowohl Konfigurationen via Cloud-SEO als auch via lokaler Dateimethode (zuvor „Smart SEO“). Aus folgenden Gründen raten wir dringend zur Cloud-SEO-Methode anstelle der Konfiguration der lokalen Dateimethode:

  • Cloud-SEO-Daten sind aktueller.
  • Cloud-SEO ist verlässlicher und stabiler.
  • Bazaarvoice ist für die Veröffentlichungsprozesse von Cloud-SEO-Dateien verantwortlich, wodurch der interne Wartungsaufwand durch den Kunden reduziert wird.
  • Cloud-SEO ruft Inhalte oft schneller ab als das lokale Netzwerk- und Dateisystem.

Sollte die cloud-basierte Lösung aufgrund von technischen Einschränkungen nicht praktikabel für Ihre Webseite sein, bietet Bazaarvoice außerdem eine täglich herunterladbare .zip-Datei an, die alles enthält, was Sie brauchen, um Ihre Implementierung suchfreundlich zu machen.

Wenn Sie die lokale Dateimethode verwenden müssen, führen Sie die folgenden Schritte aus und richten Sie sich bei der lokalen SEO-Integration nach den lokalen Codebeispielen für Ihre Plattform.

Hinweis: Dieser Vorgang nutzt das für Windows standardmäßige ZIP-Komprimierungsformat. Alternativ können Sie Dateien im GZIP-Format erhalten, welches der Standard für UNIX-Systeme ist. Wenn Sie GZIP verwenden möchten, gehen Sie bei der Konfiguration zur SEO-Seite und wählen Sie für den Compression Type (Komprimierungstyp) die GZIP-Option aus. Wenn Sie keinen Zugriff auf die Konfiguration im Bazaarvoice-Portal haben, senden Sie eine Supportanfrage, um das GZIP-Format zu verwenden.
  1. Legen Sie fest, dass täglich eine ZIP-Datei heruntergeladen und entpackt werden soll, die die suchfreundlichen Inhalte für Ihre Produktseiten enthält.
  2. Stellen Sie sicher, dass über das Dateisystem Ihres Webservers auf die entpackten Dateien zugegriffen werden kann.
  3. Implementieren Sie das SDK der SEO-Integration mit der Variablen des internen Dateipfads, die auf den Standort der entpackten Dateien verweist. Unter BVSEO implementieren finden Sie Anweisungen zum Herunterladen und Implementieren des SDKs in der serverseitigen Programmiersprache, die Sie nutzen.
Hinweis: Es ist wichtig, dass Sie die ZIP-Datei täglich aktualisieren. Wenn Sie die Datei weniger oft herunterladen und implementieren, wird die Aktualität Ihrer Website-Inhalte für Suchmaschinen reduziert, wodurch der Wert der SEO-Implementierung sinkt.

FAQ

Nutzen Sie die in den folgenden Abschnitten dargestellten Informationen für die Fehlerbehebung bei Ihrer BVSEO-Implementierung.

Bazaarvoice empfiehlt die Verwendung des Webbrowsers Safari (erhältlich für Windows und Mac) für webbasierte Tests.

Ich verwende eine bestimmte E-Commerce-Plattform. Bietet Bazaarvoice Plug-ins an?

Ja, Bazaarvoice bietet Plug-ins für Demandware, Magento, Hybris und GSI für die Implementierung von BVSEO an. Kontaktieren Sie Ihren Bazaarvoice-Ansprechpartner für Vertrieb oder Technik, um mehr Informationen zu erhalten.

Meine Webseite basiert auf einer anderen Technologie, wie z. B. Ruby oder Perl. Kann ich die BVSEO SDKs verwenden?

Basiert Ihre Webseite auf einer anderen Technologie, müssen Sie eine benutzerdefinierte Lösung entwickeln. Die BVSEO-SDKs sind Open Source, werden in GitHub veröffentlicht und bieten eine verlässliche Anleitung für die Entwicklung einer benutzerdefinierten Lösung.

Wie verwende ich BVSEO mit einer API?

BVSEO unterstützt keine APIs. Unter developer.bazaarvoice.com finden Sie Unterlagen zum Thema API.

Sie können Caching zur Verbesserung der Geschwindigkeit und Effizienz verwenden, was einen Einfluss auf die BVSEO-Integration haben kann.

Ich verwende ein Cache auf Seitenebene. Wie kann ich sicherstellen, dass SEO-freundliche Inhalte immer in die zwischengespeicherte Version meiner Seite miteinbezogen werden?

Wird BVSEO auf Seiten implementiert und dabei ein Cache auf Seitenebene genutzt, erhöhen Sie EXECUTION_TIMEOUT auf 2000 ms.

Verwendet die Seite die komplette URL als Cache Key?

BVSEO verwendet bvrrp, bvqap, bvsyp und bvpage als URL-Parameter zur Verwaltung der Pagination. Die folgenden URLs müssen durch die Caching-Systeme auf Seitenebene als eindeutige Seiten behandelt werden:

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

Wenn Sie diese Methode nicht befolgen, muss das Cache-System und das URL-Masking-System im Rahmen Ihrer BVSEO-Implementierung aktualisiert werden.

Ich verwende ein lokales Cache. Wie stelle ich sicher, dass SEO-freundliche Inhalte immer miteinbezogen werden?

Es ist sehr geläufig, ein lokales Caching-System zu verwenden, um die Anzahl der Aufrufe der Cloud-SEO-Server durch das System zu reduzieren. Das SDK beinhaltet keine Caching-Dienste, die Antworten des SDKs können jedoch zwischengespeichert werden. Die TTL (Time-to-Live) für den lokalen Cache sollte drei Stunden nicht überschreiten.

Weist die Seite Canonical Tags auf?

Canonical Tags werden im Quellcode der Seite als <link rel="canonical" href= angezeigt. Auf Seiten mit implementiertem BVSEO müssen Canonical Tags entweder aktualisiert oder entfernt werden, wenn das Produkt mehr als eine Seite an Bewertungen aufweist. (Eine Seite beinhaltet acht Bewertungen.) BVSEO paginiert die Produktseite, damit sich alle Bewertungen im Index der Suchmaschine befinden. Canonical Tags, die nicht auf eine Paginierungs-URL verweisen, führen dazu, dass Suchmaschinen die paginierten Inhalte ignorieren.

Hinweis: Unter Optimale Verfahren finden Sie weitere Informationen zur Pagination.

BVSEO hängt Paginationsparameter in Form von Namen- und Wert-Paaren an Ihre URL an. Wenn einer der BVSEO-Paginationsparameter (bvstate, bvrrp, bvqap, bvsyp, bvpage) vorhanden ist, führen Sie bitte einen der folgenden Schritte aus:

  • Entfernen Sie den Canonical Tag. Dies ist die häufigste und empfohlene Lösung.
  • Aktualisieren Sie den Code, der den Canonical Tag für Ihre Seite generiert, damit Ihre Seite das Name-/Wert-Paar anhängen kann. Verwenden Sie den entsprechenden Paginationsparameter, wie er in Ihrer URL für den Namen angezeigt wird, und einen entsprechenden Wert, je nach Parameter. Wenn Ihre Seite zum Beispiel den Bvstate-Parameter verwendet, können Sie bvstate=pg:2/ct:r/st:p an den Canonical Tag in Ihrer Seite anhängen.

Wenn rel="canonical" auf der Seite vorhanden ist, stimmt die Canonical URL mit der URL der evaluierten Seite überein?

Es ist nicht ungewöhnlich, dass Canonical Tags auf eine andere URL verweisen. Sollte die Canonical URL nicht auf die zu prüfende Seite verweisen, erfassen Sie stattdessen den Code der Canonical Page und verwenden Sie diesen.

Können die Links rel="next" und rel="prev" zu meinen Paginationslinks hinzugefügt werden?

Das Hinzufügen von rel="next" und rel="prev" zu Links wird nicht empfohlen. Tests und Auswertungen von Googles Paginierungsrichtlinien durch Bazaarvoice belegen, dass diese Tags nicht auf eine Liste an Bewertungen angewendet werden sollten. Die Tags teilen Suchanfragen mit, dass automatisch nur auf die erste Seite der Bewertungen verwiesen werden soll, auch wenn sich relevante Inhalte auf einer nachfolgenden Seite befinden. Weitere Informationen zu dieser Empfehlung finden Sie in Googles Richtlinien für paginierte Inhalte .

Bazaarvoice empfiehlt die Verwendung der cloud-basierten Dateimethode. Sie ist weniger aufwändig und verlässlicher als die lokale Dateimethode, die langfristig verwaltet werden muss und mehr Aufwand erfordert. Im Abschnitt „Eine Dateimethode auswählen“ unter Optimale Verfahren finden Sie weitere Informationen.

Hinweis: Die Fragen und Lösungen in diesem Abschnitt beziehen sich auf die Cloud-basierte Dateimethode.

Wird zur Reduzierung der serverseitigen Aufrufe der Cloud ein lokaler Cache verwendet?

BVSEO stellt eine HTTP- oder HTTPS-Anfrage an seo.bazaarvoice.com (seo-stg.bazaarvoice.com für Staging), wodurch formatiertes HTML als String wiedergegeben wird. Der Cloud-Service enthält zwar Caches für eine außerordentlich effiziente Auslieferung (bis zu unter 20 ms), manche Kunden möchten jedoch eine zusätzliche lokale Caching-Ebene hinzufügen. Wird ein lokaler Cache verwendet, empfiehlt Bazaarvoice eine maximale TTL von einer Stunde.

Wird ein Proxy verwendet?

Erfordert die Firewall eine IP-Adresse, müssen Sie für die Bereitstellung einer konstanten IP-Adresse einen Proxy einrichten. BVSEO muss via HTTP oder HTTPS auf seo.bazaarvoice.com (seo-stg.bazaarvoice.com für Staging) zugreifen können. BVSEO verwendet virtuelle IP-Adressen in der Cloud, wodurch keine konstanten IP-Adressen garantiert werden können. Um ein Proxy einzurichten, verwenden Sie BVClientConfig.PROXY_HOST und PROXY_PORT, um das SDK auf das Proxy zu verweisen.

Müssen Firewall-Einstellungen angepasst werden?

BVSEO muss via HTTP oder HTTPS auf seo.bazaarvoice.com (seo-stg.bazaarvoice.com für Staging) zugreifen können. Verwehrt die Firewall den Zugriff auf diese Adresse, müssen Anpassungen vorgenommen werden.

Sind SSL-Verbindungen erforderlich?

Die von seo.bazaarvoice.com abgerufenen Inhalte enthalten zwar keine Daten, die geschützt werden müssen, vorliegende Sicherheitsrichtlinien könnten jedoch erfordern, dass alle serverseitigen Verbindungen einen SSL-Schutz aufweisen. SSL-Support ist für das Java SDK v2.1 (und höher) und .NET SDK v2.1 (und höher) verfügbar. Um SSL-Verbindungen zu aktivieren, setzen Sie BVClientConfig.SSL_ENABLED bei der Implementierung des SDKs auf „true“.

Wie funktionieren Ausführungszeitüberschreitungen?

Die SDK-Konfiguration beinhaltet zwei Einstellungen für die Ausführungszeitüberschreitung: EXECUTION_TIMEOUT und EXECUTION_TIMEOUT_BOT.

  • EXECUTION_TIMEOUT – Definiert die maximal erlaubte Zeitdauer für die Ausführung der BVSEO-Einspeisung für normale Endnutzer.
  • EXECUTION_TIMEOUT_BOT – Definiert die maximal erlaubte Zeitdauer für die im CRAWLER_AGENT_PATTERN-Feld definierten User Agents.
Hinweis: Wenn die BVSEO-Einspeisung über die erlaubte Zeitüberschreitung hinausgeht, fällt das System auf eine Einspeisung ausschließlich per JavaScript zurück.

Beinhaltet das SDK die Bot-Erfassung?

Ältere Versionen des BVSEO SDKs beinhalten eine Funktion zur Bot-Erfassung, welche die Einspeisung komplett blockierte, wenn ein User Agent erkannt wurde. Die BOT_DETECTION-Konfiguration war ab Version 2.1 nicht mehr im BVSEO SDK enthalten. Wenn Sie die Bot-Erfassung nachbilden möchten, setzen Sie EXECUTION_TIMEOUT auf 0.

Bazaarvoice unterstützt und empfiehlt schema.org-Mikrodaten für strukturiertes Markup, da dies die besten Ergebnisse aller von uns getesteten Formate liefert. Bazaarvoice nutzt die Seite schema.org/Product als Basis für sein Tagging.

Beantworten Sie folgende wichtige Fragen für sich, um sicherzustellen, dass Ihr schema.org-Markup richtig eingerichtet wurde.

Verwenden Sie die neueste Version von Ratings & Reviews?

Achten Sie darauf, immer die neueste Version von Ratings & Reviews zu nutzen, damit Sie keine wichtigen Updates verpassen. In den Konfigurationseinstellungen finden Sie alle Updates.

Enthält die Seite schema.org-Markup?

Enthält die Seite, auf der BVSEO implementiert ist, irgendein schema.org Markup, müssen Sie sorgfältig sicherstellen, dass das Schema-Markup nicht im Widerspruch steht. Das schema.org- Markup muss korrekt in einer einzelnen Hierarchie verschachtelt werden. Überprüfen Sie den HTML-Output, um sicherzustellen, dass eine korrekte Schema.org -Code-Hierarchie vorhanden ist.

Rich Snippet-Sterne sind die Sterne, die in den Google-Suchergebnissen angezeigt werden, wie in folgendem Bild dargestellt:

In diesem Blogeintrag erfahren Sie, wie man erfolgreich Rich-Snippet-Sterne anzeigen lassen kann.

Beziehen Sie sich auf folgende Fragen, um sicherzustellen, dass Googles Rich Snippet-Sterne in den Suchergebnissen Ihrer Produktseiten angezeigt werden.

Nutzt die Seite schema.org-Mikrodaten?

Für beste Ergebnisse sollten Seiten schema.org-Mikrodaten verwenden. Weitere Informationen finden Sie unter Erste Schritte mit schema.org-Mikrodaten .

Wenn es eine schema.org/WebPage-Deklaration gibt: Sind alle anderen schema.org-Elemente darin verschachtelt?

Die schema.org/WebPage-Deklaration ist zwar nicht erforderlich, viele Webseiten verwenden sie jedoch. WebPage muss der äußerste schema.org-verwandte Knoten sein.

Gibt es einen schema.org-Typ, der für die Inhalte relevant ist?

Fügen Sie einen schema.org-Typ auf der Seite ein, damit Rich-Snippet-Sterne angezeigt werden können. Der schema.org/Product -Typ funktioniert auf den meisten E-Commerce-Webseiten. Möglicherweise sind jedoch andere Arten, wie z. B. LocalBusiness-, Recipe-, Event- oder Restaurant-Hierarchien, zutreffender für ihre Seite.

Hinweis: „schema.org/Product“ wird standardmäßig im BVSEO-Markup ausgeschlossen, da es sich vor dem Bazaarvoice-Modul öffnen und nach ihm schließen muss. Bis Februar 2015 war diese Funktion standardmäßig durch Bazaarvoice aktiviert. Es wird jedoch nicht mehr empfohlen, schema.org/Product innerhalb der Bazaarvoice-Container aufzubewahren.

Ist der Produktname innerhalb der schema.org/Product-Klasse aufgelistet?

Der Produktname sollte sich innerhalb der schema.org/Product-Klasse mittels <div itemprop=name>[ProductName]</div> oder <meta itemprop="name" content="[ProductName]" /> befinden.

Weist die Seite einen schema.org/Organization-Typ auf?

Es erscheint zwar logisch, dass Google Rich-Snippet-Sterne für Organisationen anzeigt, beim letzten Test durch Bazaarvoice war dies jedoch nicht der Fall. Organisationen mit physischem Standort empfiehlt Bazaarvoice schema.org/LocalBusiness.

Gibt es nur einen schema.org-Typ?

Google zeigt Rich-Snippet-Sterne nur für Webseiten an, die maximal einen Typ enthalten.

Ist schema.org/AggregateRating korrekt innerhalb von schema.org/Product (oder dem Typ, der am besten zu Ihren Inhalten passt) verschachtelt?

AggregateRating und alle Unterelemente müssen innerhalb von schema.org/Product verschachtelt sein.

Ist schema.org/AggregateRating vorhanden und NICHT durch CSS oder NOSCRIPT verborgen?

BVSEO verbirgt HTML-Teile, um Flashing während des Auftretens von durch AJAX geladenen Inhalten zu reduzieren. Kumuliertes Bewertungs-Markup und Paginierungslinks dürfen jedoch nicht durch CSS oder ein NOSCRIPT-Tag verborgen werden. Ein Einbetten des BVSEO-Inhalts mit <div style="display:none;"> hindert Google zum Beispiel an der Wiedergabe von Rich-Snippet-Sternen.

Stimmt itemprop="name" (wie beim Typ angegeben) mit dem Inhalt des durch BVSEO bereitgestellten itemprop="itemReviewed" überein?

Der BVSEO-Code kann als repetitiv erscheinen, da itemprop="itemReviewed" mehrere Male wiederholt wird. Jedoch werden Rich-Snippet-Sterne einheitlicher angezeigt, wenn die AggregateRating- und Review-Schemen beide diesen Tag enthalten, wodurch bestätigt wird, dass die Seite weiterhin dasselbe Element adressiert. Dies gilt insbesondere für Seiten mit umfangreichem Markup.

Gibt es Konflikte zwischen strukturierten Markups?

Verwenden Sie nur eine Art von strukturiertem Markup. Seiten sollten keine data-vocabulary.org- oder hreview (Mikroformate)-Inhalte aufweisen. Strukturiertes Markup sollte das Schema.org-Format verwenden.

Riskiere ich durch die ausgehende oder eingehende Syndizierung meiner Inhalte deren Duplizierung?

Bazaarvoice syndiziert die Inhalte Hunderter von Marken und Händlern und ist sich sicher, dass duplizierte Inhalte keine Probleme bereiten. Werden Inhalte dupliziert oder zwischen einer Marke und einem Händler (egal, in welcher Richtung) syndiziert, wirkt sich dies aus mehreren Gründen positiv aus:

  • Gutes Benutzererlebnis – Da die Produkte sowohl auf Retailer- als auch auf Marken-Webseiten verkauft und angezeigt werden, möchten Käufer Feedback von Personen entdecken, von denen die Produkte verwendet wurden und sie erwarten, dass Feedback überall dort angezeigt wird, wo sie gerade online sind. Wenn es keine Bewertungen oder nur eine geringe Anzahl an Bewertungen gäbe, würde dies zu einem schlechten Benutzererlebnis beitragen.
  • Keine Probleme mit Google – Duplizierte Inhalte definiert Google als „umfangreiche Contentblöcke, die anderem Content auf derselben oder einer anderen Domain entsprechen oder auffällig ähneln“. Da Bewertungen nur eine Teilmenge der Produktseite sind und die Bewertungen des Händlers und der Marke vermischt sind, erwarten wir keine Probleme in Bezug auf duplizierte Inhalte. Bazaarvoice ist noch nie zu Ohren gekommen, dass Kunden eine Strafe oder Warnung für duplizierte Inhalte in den Google Webmaster Tools, über das Google mit Webmastern kommuniziert, erhalten hätten.
  • Syndizierungsverzögerung –Bazaarvoice hat die Funktion der „Syndizierungsverzögerung“ in die Bazaarvoice-Plattform integriert. Inhalte, die auf eine andere Webseite syndiziert werden, müssen sieben (7) Tage auf ihre Syndizierung warten. So hat Google ausreichend Zeit, die Inhalte auf der ursprünglichen Webseite zu indizieren. Wird dieselbe Bewertung später auf einer anderen Webseite gefunden, erkennt Google, dass die Inhalte geteilt wurden. Da dies den Benutzern einen eindeutigen Mehrwert bietet, kommt es zu keinen Problemen mit Google. Die Syndizierungsverzögerung lässt sich über eine Supportanfrage über die Support Community konfigurieren.

Bazaarvoice empfiehlt, dass jede Webseite auf unserer Plattform über eine Vielzahl an Inhaltsquellen verfügt. Dafür gibt es verschiedene Möglichkeiten und unsere Kundenservice-Teams helfen Ihnen gerne dabei, eine robuste Inhaltsstrategie für Ihre Webseite zu erstellen. Syndizierte Inhalte sollten nur einen Anteil und nicht den gesamten Teil einer Strategie zur Inhaltsgenerierung ausmachen.

Ich möchte herausfinden, ob Google meine benutzergenerierten Inhalte indiziert. Wo fange ich an?

  • Suchen Sie nach einer Produktseite, die mehr als eine Seite mit Bewertungsinhalten aufweist.
  • Sehen Sie sich den Quellcode von Seite 1 an, die standardmäßig als Produktseite geladen wird.
  • Sehen Sie sich in einem separaten Browserfenster den Quellcode der suchfreundlichen Version von Seite 2 an.
  • Am einfachsten lässt sich der Quellcode in einem Texteditor überprüfen, nachdem Sie ihn mit Tabifier bearbeitet haben. Um Tabifier zu nutzen, kopieren Sie den Quellcode, fügen Sie ihn in die Textbox Codeeingabe ein und wählen Sie Tabify. Kopieren Sie dann den Code aus der Textbox Codeausgabe in Ihren Texteditor (BBEdit, TextPad o. Ä.), um ihn zu analysieren. Führen Sie diese Schritte für Seite 1 und Seite 2 aus.

Indiziert Google meine benutzergenerierten Inhalte?

Bazaarvoice hat Metadaten entwickelt, die benutzergenerierte Inhalte auf Ihrer Webseite beschreiben, damit Sie ermitteln können, ob Google diese Inhalte indiziert. Sie können den entsprechenden Befehl aus den Optionen in der folgenden Liste auswählen und eine Google-Suche für den fettgedruckten Text ausführen, wobei Sie client.com durch Ihre Domain ersetzen. Diese Suchanfragen liefern eine Liste der URLs, deren Bewertungen indiziert sind, sowie die Gesamtanzahl der indizierten Seiten.

Hinweis: Wenn Sie die Bazaarvoice-API nutzen, liefern diese Befehle keine Ergebnisse, da die API keine Metadaten enthält. Die Google-Suchmaschine ist bei der Indizierung von Webseiten am fortschrittlichsten. Google verfügt über den größten Marktanteil weltweit für Suchmaschinen und trifft alle möglichen Vorkehrungen, um fortgeschrittene Techniken für die Webseitencodierung zu entschlüsseln. So soll genau ermittelt werden, was einem Benutzer beim Besuch einer Seite angezeigt wird. Andere Suchmaschinen wie Bing, Baidu und Yandex sind hinsichtlich der Indizierungsfähigkeiten nach etwa 1–2 Jahren auf dem Stand von Google.

Über die folgenden Suchanfragen können Sie einsehen, was Google indiziert.

  • site:client.com intext:bvseo_fps – Diese Suchanfrage liefert Seiten, die mittels der aktuellsten kundenseitigen (JavaScript oder „Hosted Display“) Lösung von Bazaarvoice implementiert wurden. Wenn Sie unsere Plattform seit November 2013 implementiert (oder aktualisiert) haben, wählen Sie diese Option aus.

  • site:client.com intext:bvseo_bulk – Diese Suchanfrage liefert Seiten, die mittels der aktuellsten serverseitigen Lösung von Bazaarvoice implementiert wurden. Wenn Sie unsere Plattform seit November 2013 implementiert (oder aktualisiert) haben und den Implementierungsschritt „Smart SEO“ oder „Cloud SEO“ ausgeführt haben, nutzen Sie diese Suchoption.
  • site:client.com intext:bvseo_pps – Diese Suchanfrage liefert Seiten, die mittels der veralteten kundenseitigen (JavaScript oder „Hosted Display“) Lösung von Bazaarvoice implementiert wurden. Wenn Sie unsere Plattform vor November 2013 auf Ihrer Webseite implementiert haben und seither keine Anpassungen vorgenommen haben, nutzen Sie diese Suchoption.
  • site:client.com intext:bvseo_lps – Diese Suchanfrage liefert Seiten, die mittels der veralteten serverseitigen Lösung von Bazaarvoice implementiert wurden. In der Vergangenheit konnten Suchmaschinen ausschließlich serverseitige Inhalte lesen. Wenn Sie unsere Plattform vor November 2013 auf Ihrer Webseite implementiert haben und seither keine Anpassungen vorgenommen haben, nutzen Sie diese Suchoption.

Welche Add-ons kann ich zur Filterung der Suchergebnisse nutzen?

Sie können folgende Add-ons an die oben aufgeführten Befehle anhängen, um Ihre Suchergebnisse zu filtern.

  • intext:co_hasreviews – hängen Sie diesen Befehl an, um ausschließlich Seiten mit Bewertungen angezeigt zu bekommen.

  • intext:co_noreviews – Hängen Sie diesen Befehl an, um ausschließlich Seiten ohne Bewertungen angezeigt zu bekommen.
  • intext:bvpage2n – hängen Sie diesen Befehl an, um Seiten mit Bewertungsinhalten ab der 9. Bewertung angezeigt zu bekommen. Gehen wir einmal von einem Produkt aus, für das auf der ersten Seite 8 Bewertungen, auf der zweiten Seite 30 Bewertungen und auf der dritten Seite 12 Bewertungen, also insgesamt 50 Bewertungen, angezeigt werden. Diese Anfrage liefert für „bvpage2n“ zwei URLs.

  • intext:bvpage1 – Hängen Sie diesen Befehl an, um ausschließlich die 1. Seite für Bewertungsinhalte angezeigt zu bekommen.

Fehlerbehebung

In den folgenden Abschnitten finden Sie Informationen für die Fehlerbehebung bei Ihrer BVSEO-Implementierung.

Hinweis: Bazaarvoice empfiehlt die Verwendung des Webbrowsers Safari für webbasierte Tests. Safari ist für Windows und Mac verfügbar.

Führen Sie die folgenden Diagnose-Suchanfragen in Google durch:

Hinweis: Diese Suchanfragen funktionieren nur, wenn sich BVSEO in einer Live-Umgebung befindet, in der Google den Code und die Inhalte auffinden kann. Wenn Google nicht auf BVSEO zugreifen kann, überspringen Sie die Diagnoseabfrage und fahren Sie mit der manuellen Verifizierung fort.

Bearbeiten Sie die URLs in diesen Suchanfragen und ersetzen Sie example.com durch die von Ihnen getestete Domain. Laden Sie die URL dann in einem Webbrowser.

Liefert diese Diagnoseabfrage Ergebnisse für BVSEO in Bezug auf nicht paginierte URLs?

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

Hinweis: Hier wird nur Seite 1 überprüft.

Liefert die Diagnoseabfrage Ergebnisse für BVSEO in Bezug auf paginierte URLs auf Seite 2 und höher?

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

Wenn Sie beide Fragen bejahen können, laden Sie eine der in den Suchergebnissen gelisteten Seiten und gehen Sie zum Abschnitt Zusätzliche Verifizierung. Falls nicht, fahren Sie mit der manuellen Verifizierung fort.

Enthält Seite 2 einen Canonical Tag, der auf eine andere URL verweist?

Dies ist einer der häufigsten Fehler. Wenn die Seite einen rel="canonical"-Tag enthält, muss die URL den bv-Paginierungsparameter enthalten. In den meisten Fällen wrappen unsere Kunden den Canonical Tag mit einer Bedingung und fügen diesen nicht ein, wenn irgendeiner der folgenden Parameter in der URL erscheint: bvrrp, bvqap, bvsyp, bvstate und bvpage. Unter Canonical Tags finden Sie weitere Informationen.

Befindet sich das Wort „Bewertungen“ in der Kopfzeile der Seiten 2-n?

Um den Rang für Suchbegriffe zu verbessern, die das Wort „Bewertungen“ enthalten, empfehlen wir dringend, dieses Wort in die <title>- und <h1>-Tags aufzunehmen, wenn bvrrp in der URL vorkommt.

Wie viele Code-Zeilen sind insgesamt im überprüften Code der Seite 1 vorhanden, nachdem Tabs eingefügt wurden?

Unter allen Bazaarvoice-Kunden, die BVSEO korrekt implementiert haben, erhalten Kunden mit einwandfreien und minimalistischem HTML Rich-Snippet-Sterne auf einer gleichmäßigeren Basis. Bazaarvoice hat festgestellt, dass Seiten mit insgesamt etwa 600 Code-Zeilen dazu tendieren, Rich-Snippet-Sterne in 100 % der diagnostischen Suchanfragen zu erhalten. Seiten mit mehr als 4.000 Code-Zeilen auf jeder Seite hingegen neigen dazu, nur in 60 % der Fälle Sterne zu erhalten.

Sehen Sie sich den HTML-Quellcode an, um folgende Fragen zu beantworten.

Befindet sich BVSEO-Code im HTML-Quellcode?

Suchen Sie im Quellcode nach BVSEOCPS_GEN (verwenden Sie dazu Strg+F oder ⌘+F, um die Suche auszuführen). Ist die Suche erfolglos, suchen Sie stattdessen nach BVRRSourceID. Wenn Sie beide nicht finden können, befindet sich BVSEO nicht auf Ihrer Seite. Kontaktieren Sie Ihren Entwickler, um die Integration von Bazaarvoice zu überprüfen.

Funktionieren die Paginierungs-Links ordentlich?

Wenn die Paginierungslinks in der BVSEO-Konfiguration absichtlich deaktiviert wurden, gehen Sie zum Abschnitt Zusätzliche Verifizierung.

Hinweis: In den meisten Fällen wird die suchfreundliche Pagination empfohlen.
  1. Suchen Sie nach einem Produkt, das mehr als eine Seite an Bewertungen aufweist. Suchen Sie im Quellcode nach begin-pagination. Kurz dahinter sollte sich ein HTML-Link befinden, der mit <a href= beginnt und entweder bvrrp oder bvpage enthält.
  2. Hinweis: Wenn {INSERT_PAGE_URI} erscheint, funktionieren die Paginierung-Links nicht richtig. In diesem Fall müssen Sie BVSEO mit einem SDK neu implementieren.

    Wenn Sie die Konfiguration „Ratings & Reviews“ verwenden, sollte der folgende Code angezeigt werden:

    <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. Wenn die Paginierungslinks richtig funktionieren, wählen Sie den Link zu Seite 2 in der Safari-Quellcodeansicht und rufen Sie den folgenden Code auf.
    <a href="http://www.softsurroundings.com/5/23986/P/Newport_Beach_Pant/View_All/?bvrrp=4398/reviews/product/2/23986.htm">

    Bitte beachten Sie, dass die Seitenzahl direkt hinter /product/ angezeigt wird. Notieren Sie sich die Seite, die Sie laden möchten. Die vollständige URL wird auch in der Adressleiste angezeigt, nachdem die Seite geladen wurde.

  4. Nachdem die Seite geladen wurde, stellen Sie sicher, dass der User Agent weiterhin googlebot ist, oder verwenden Sie den User Agent Switcher erneut, um die Seite neu zu laden.
  5. Überprüfen Sie, ob die entsprechende Seite mit SEO-Inhalten in den Quellcode geladen wurde. Zeigen Sie die HTML-Quelle der Seite an und suchen Sie im Quellcode nach bvseo-bulk-cp. Die Zahl nach cp- ist die Seitennummer, wie im Code unten gezeigt. Diese Zahl sollte mit der Seitennummer in der Adresszeile übereinstimmen.
        <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>
    

    Wenn Sie die Konfiguration von Ratings & Reviews nicht verwenden, suchen Sie nach BVRRSelectedPageNumber im HTML-Quellcode. Die Zahl nach dem Tag gibt die Seitennummer an.

    Wenn Sie bestätigen können, dass die entsprechende Seite mit Inhalten geladen wurde, funktionieren die Paginierungslinks richtig. Kehren Sie zur Produktseite (nicht zur paginierten Version) zurück und gehen Sie zum Abschnitt Zusätzliche Verifizierung.

BVSEO-Inhalte werden nicht gefunden. Warum?

Es kann sein, dass die Zeitüberschreitung für die Ausführung ungewöhnlich kurz war. Um dieses Problem zu beheben, können Sie die Entwicklertools aktivieren und mit den folgenden Schritten den User Agent in Safari aufheben:

  1. Um Safaris integrierten User Agent Switcher zu verwenden, setzen Sie unter Einstellungen > Erweitert in der Menüleistenoption ein Häkchen neben Entwickler anzeigen, wie im folgenden Beispiel dargestellt. Eine Option mit der Bezeichnung „Entwickler“ wird daraufhin in der Menüleiste angezeigt.
  2. Wählen Sie das Menü Entwickler und dann User Agent > Anderer aus. Es wird ein Fenster mit dem aktuellen User Agent angezeigt.
  3. Setzen Sie das Wort „googlebot“ ans Ende und wählen Sie OK.

Dank des User Agents operiert das BVSEO-SDK nun mit einer längeren Ausführungszeit, während Sie innerhalb dieses Browserfensters oder der Registerkarte arbeiten. Sie müssen diesen Vorgang wiederholen, wenn Sie ein neues Browserfenster oder einen neuen Tab öffnen.

Wenn für Diagnoseabfragen oder Manuelle Verifizierung Ergebnisse gefunden wurden, öffnen Sie eine der Seiten aus den Suchergebnissen und sehen Sie sich den HTML-Quellcode an, um folgende Fragen zu klären:

Werden die Inhalte wie vorgesehen aktualisiert?

Suchen Sie im HTML-Quellcode nach bvDateModified.. Datumsstempel weisen gemäß des Standards ISO 8601 das Format YYYY-MM-DDThh:mmTZD (Y=Jahr, M=Monat, D=Tag, T=Trennzeichen, h=Stunde, m=Minute, TZD=Zeitzone) auf. Der Zeitstempel neben „bvDateModified“ sollte immer weniger als zwei Tage alt sein. Zum Beispiel:

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

Zeigt Ihre Seite Produktionsinhalte an?

Suchen Sie im Quellcode nach data-bvseo="cf” und schauen Sie sich an, welche Zeichen direkt danach folgen. Wenn prod angezeigt wird, wurde BVSEO wie gewünscht für die Verwendung von Produktionsdaten konfiguriert. Wenn stg angezeigt wird, wurde BVSEO für die Verwendung von Staging-Daten konfiguriert, und Sie sollten Ihren Entwickler kontaktieren, um dies zu beheben.

Suchen Sie im Quellcode nach itemprop="description”, um sicherzugehen, dass die richtigen Inhalte dargestellt werden. Suchen Sie nach einer Instanz, nach der direkt Bewertungsinhalte folgen, so wie in diesem Beispiel dargestellt:

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

Vergleichen Sie die ersten Wörter dieser Bewertung mit den Bewertungen, die auf der Endnutzer-Seite angezeigt werden. Wenn seit dem letzten SEO-Update eine neue Bewertung in das System eingetragen wurde, kann eine Abweichung vorliegen. Führen Sie diesen Test zur Verifizierung einige Male aus.

Befinden sich die Inhalte im korrekten div-Element?

Sehen Sie sich den Quellcode und das gerenderte HTML mithilfe der Funktion „Seitenquelltext anzeigen“ Ihres Browsers an. Prüfen Sie, ob sich die BVSEO-Inhalte im richtigen <div>-Tag befinden. Suchen Sie dafür im Quellcode nach rating summary oder reviews. Wenn der <div>-Tag geöffnet und gleich wieder geschlossen wird, so wie in diesem Beispiel:

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

Die Inhalte stehen nicht im richtigen Format zur Verfügung. Das folgende Codebeispiel zeigt, wie der div-Inhalt aussehen sollte:

<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>

Wird das schema.org-Format für das strukturierte Markup verwendet?

Suchen Sie im Quellcode nach schema.org/AggregateRating. Falls es keine Treffer gibt, suchen Sie nach schema.org/Review. Sollten Sie damit auch nicht erfolgreich sein, wurde der Client wahrscheinlich für eine ältere BVSEO-Version konfiguriert und die Konfiguration sollte für die Verwendung des schema.org-Formats für strukturiertes Markup aktualisiert werden.

Sind in die Seite eingespeisten BVSEO-Inhalte maskiert?

BVSEO-Markup muss als HTML erscheinen, nicht als Maskierungszeichen. Suchen Sie im Quellcode nach begin-bvseo. Erscheinen die Inhalte mit Maskierungszeichen, wie im Beispiel unten dargestellt, kontaktieren Sie bitte Ihren Entwickler, um das Problem zu beheben.

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

Das Markup sollte so aussehen:

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

Sind suchfreundliche Paginierungs-Links durch CSS oder NOSCRIPT verborgen?

BVSEO verwendet eine bewährte Technik für die Gestaltung von Paginierungs-Links, versteckt diese jedoch nie mittels CSS oder NOSCRIPT. Google crawlt keine Links, die durch CSS oder NOSCRIPT versteckt sind. Es wird häufig der Fehler gemacht, dass die Eigenschaft style="display:none;" zum <div>-Tag hinzugefügt wird, das BVSEO enthält. Dadurch wird die suchfreundliche Paginierung blockiert.

Schritt 1: "bvreveal=debug" hinzufügen

  1. Fügen Sie den Parameter bvreveal=debug zur URL einer beliebigen Seite hinzu, auf der BVSEO implementiert wurde.

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

    Der Parameter bvreveal=debug fügt die Listen BVSEOSDK_meta und BVSEOSDK_DEBUG zum Quellcode hinzu. Diese enthalten Informationen zu Ihrer Implementierung. Wenn keine benutzergenerierten Inhalte vorhanden sind, liefert bvseo-msg weitere Einzelheiten.

    Hinweis: Wenn „pageurl“ nicht korrekt eingerichtet ist, funktioniert bvreveal=debug nicht. Wenn Sie keine Debug-Fußzeile angeben, werden Paginierungslinks möglicherweise falsch ausgegeben.
  2. Im Quellcode Ihrer Seite finden Sie Informationen zu Ihrer Implementierung. Diese Informationen finden sich in BVSEOSDK_meta und BVSEOSDK_DEBUG. Weitere Informationen finden Sie im vollständigen Beispielcode am Ende dieses Abschnitts.

Schritt 2: Suchen Sie nach Inhalten

Prüfen Sie, ob Inhalte für die angeforderte contentURL vorhanden sind, wie in den folgenden Schritten beschrieben:

  1. Suchen Sie die contentURL in der Liste BVSEOSDK_DEBUG. Beispiel: <li data-bvseo="contentURL">http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm</li>
  2. Führen Sie im Terminal den Befehl curl –i aus.
    Beispiel: curl –i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"

Wenn der curl-Befehl keine Inhalte ausgibt, könnte ein Problem mit der Firewall vorliegen oder es sind keine Inhalte für diese ProductID vorhanden. Wenden Sie sich zur weiteren Fehlerbehebung an Ihren Bazaarvoice-Ansprechpartner.

Fehlermeldungen

Folgende Fehlermeldungen können beim Debugging angezeigt werden.

  • HTTP-Statuscode 0 wurde ausgegeben (oder) Verbindung zu seo-stg.bazaarvoice.com abgelehnt – Zeigt an, dass in Ihrem Netzwerk eine Firewall aktiv ist. Ausgehende Anfragen von Ihrem Netzwerk werden möglicherweise von Ihrer Firewall blockiert. Wenden Sie sich zur Behebung von Firewall-Problemen an Ihr IT-Team.
  • Die Ressource für die URL oder Datei ist aktuell nicht verfügbar – Zeigt an, dass mit der Implementierungskonfiguration etwas nicht in Ordnung ist oder keine Inhalte für das angegebene Produkt erzeugt wurden.

Integration für Neukunden

  1. Installieren Sie das Java-, .NET- oder PHP-SDK.
  2. Definieren Sie den Cloud Key, der von Bazaarvoice bereitgestellt wird.
  3. Definieren Sie den Stammordner, der von Bazaarvoice bereitgestellt wird.
  4. Definieren Sie die Seiten-URL, indem Sie die base_URL sowie Abfrage-Strings und angehängte Parameter angeben. Das ist erforderlich, unabhängig davon, ob Ihre Webseite Abfrageparameter verwendet oder nicht. Bazaarvoice hängt Parameter für die SEO-Paginierung an und es ist erforderlich, dass diese von der page_URL erfasst werden. Achten Sie darauf, dass diese nicht bei Ihnen zwischengespeichert werden, weil die page_URL in Echtzeit aktualisiert werden muss.
  5. Definieren Sie die Basis-URL und die Canonical URL der Produktseite.
  6. Fügen Sie das schema.org-Markup auf der Produktseite hinzu.
  7. Wenn Sie hinter einer Firewall sind, kontaktieren Sie Ihr Netzwerk- oder Serverbetriebsteam, um seo.bazaarvoice.com und seo-stg.bazaarvoice.com zur Zulassungsliste hinzuzufügen (manchmal auch „Whitelist“ genannt).
  8. Setzen Sie STAGING auf WAHR, wenn Sie die Implementierung nicht in einer Produktionsumgebung, sondern in einer Staging-Umgebung vornehmen.

Beispiele:

<%@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"%><% //Bestimmen Sie eine neue BVConfiguration. Eigenschaften innerhalb dieser Konfiguration befinden sich typischerweise in „bvconfig.properties“. //„addProperty“ kann zur Überschreibung von Konfigurationen verwendet werden, die in „bvconfig.properties“ festgelegt wurden. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //Für jeden Standort anpassen _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Bereiten Sie die Werte für pageURL und SubjectID/ProductID vor. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Legen Sie BV-Parameter fest, die für die Seite und den Inhaltstyp spezifisch sind. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); //Dieser Wert wird zur Erstellung von Paginierungs-Links verwendet _bvParam.setPageURI(pageURL); //Dieser Wert wird zur Entnahme der Seitennummer aus bv-URL-Parametern verwendet _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Erfassen Sie Inhalte und fügen Sie sie in die Strings ein, deren Output über die einspeisenden divs erfolgt. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //„getAggregateRating“ liefert nur den Abschnitt „AggregateRating“ String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //„getReviews“ liefert ausschließlich bei der Paginierung Bewertungsinhalte%> <!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>Einbindung von Ratings & Reviews in BVSEO</h1> <h2>Die Cloud für den Abruf von Dateien benutzen</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>

Integration für bestehende Kunden

Sie müssen Ihre BVSEO-Integrationen aktualisieren, wenn Sie den BV-Lader zur Ihrer Seite hinzufügen.

Java und PHP

Nehmen Sie folgende Änderungen an Ihren Java- und PHP BVSEO-Integrationen vor:

  • Ersetzen Sie <div id="BVRRSummaryContainer"> durch <div data-bv-show="rating_summary" data-bv-product-id="ExternalId">
  • Ersetzen Sie <div id="BVRRContainer"> durch <div data-bv-show="reviews" data-bv-product-id="ExternalId">
  • Ersetzen Sie <div id="BVQAContainer"> durch <div data-bv-show="questions" data-bv-product-id="ExternalId">

Dabei gilt Folgendes:

  • data-bv-show – Befiehlt dem BV-Lader, eine bestimmte Funktion anzuzeigen.
  • data-bv-product-id – Befiehlt dem BV-Lader, die Funktion für eine bestimmte Produkt-ID anzuzeigen. Die Produkt-ID muss mit der ExternalId im Produktkatalog übereinstimmen.

.NET

Nehmen Sie folgende Änderungen an Ihren .NET-BVSEO-Integrationen vor:

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

Dabei gilt Folgendes:

  • data-bv-show – Befiehlt dem BV-Lader, eine bestimmte Funktion anzuzeigen.
  • data-bv-product-id – Befiehlt dem BV-Lader, die Funktion für eine bestimmte Produkt-ID anzuzeigen. Die Produkt-ID muss mit der ExternalId im Produktkatalog übereinstimmen.

Aktualisieren Sie auch den Code, der auf diese Element-IDs verweist:

  • Ersetzen Sie BVRRContainer.InnerHtml durch SEO_BVRRContainer.InnerHtml
  • Ersetzen Sie BVRRSummaryContainer.InnerHtml durch SEO_BVRRSummaryContainer.InnerHtm
  • Ersetzen Sie BVQAContainer.InnerHtml durch SEO_BVQAContainer.InnerHtml

Denken Sie daran, dass Änderungen an der BVSEO in der Staging-Umgebung einmal wöchentlich samstags aktualisiert werden.

Überprüfen Sie Folgendes: