搜索引擎优化(SEO)对于提高网站的有机流量至关重要,也是Bazaarvoice Conversations的重要组成部分。

Bazaarvoice的SEO方法由两项技术组成,这两项技术一起工作,以确保所有搜索引擎能够在所有情况下查看和索引您的用户生成内容(UGC)。本文主要关注我们的服务器端BVSEO解决方案。有关客户端SEO性能的信息,请参阅< a href ="#compatible-javascript-for-google">兼容的JavaScript谷歌.

警告:如果现有的实现使用侦察文件(bvapi.js),请参阅< a href ="https://knowledge.bazaarvoice.com/wp-content/conversations/en_US/Display/bvseo_v1.html">BVSEO v1文档而不是本主题中包含的信息。然而,Bazaarvoice鼓励您迁移到v2(使用BV加载器文件,bv.js),以改善表现及未来创新。

除了服务器端SEO解决方案,Bazaarvoice默认提供客户端JavaScript集成与我们的托管解决方案,并利用谷歌的增强的JavaScript索引功能。如果您的搜索流量主要来自谷歌,那么客户端JavaScript集成提供类似的SEO好处,但开销更少。服务器端和客户端SEO解决方案一起提供出色的SEO性能,并提供优化的用户体验。

了解更多关于优化搜索的信息:

支持的功能

bazaarvoice管理的内容通过服务器端软件开发工具包(SDK)注入到页面的源代码中。下面是Java、. net和PHP支持的特性列表。

功能 描述 Java net PHP
评分和评论 产品评级和评论是使用getContent、getReviews和getAggregateRating注入的。
问题与答案 产品问题和答案使用getContent注入。
卖方评级 使用getContent访问Seller Ratings内容。
支持多种配置 在单个环境中支持多种配置。
SSL 使用安全层访问内容。
代理支持 在受限网络中使用代理网关访问内容。
调试 故障诊断信息可用于调试。
字符集 在检索内容时支持用户特定的字符集。

设置概述

要设置BVSEO,您的技术团队需要执行以下操作:

  • 执行准备工作,包括:
    • 检查实施前检查清单。
    • 确保您的网站和Bazaarvoice实现满足先决条件。
    • 收集安装过程中需要的信息。
  • 配置SEO选项
  • 添加代码到您的网站(使用< a href ="#Add">Java,< a href ="#Add2">net,或< a href ="#Add3">PHP).
  • 确保< a href ="#rich-snippet-stars">谷歌的丰富代码片段出现在产品页面的搜索结果中。

兼容的JavaScript谷歌

Bazaarvoice提供的用户生成内容(UGC)利用了谷歌扩展的JavaScript索引性能。理解以下概念可以帮助您在使用JavaScript部署UGC时获得更多的搜索引擎优化(SEO)效益。

schema.org标记

Bazaarvoice将正确形成的schema.org标记添加到提供给您的网页的UGC中。当谷歌索引此标记时,搜索结果中出现评论丰富片段的可能性会增加。

注意:要确保正确读取schema.org标记,请参考< a href ="//www.busanline.com/knowledge/wp-content/conversations/en_US/Display/display_integration.html">添加schema.org标记详细说明。

UGC内容页面之间的链接

当UGC内容跨越多个页面时,Bazaarvoice在页面之间使用href链接,使搜索引擎更容易索引内容。

当购物者浏览一个包含多页评论的产品页面时,他们只与JavaScript进行交互。URL不会改变。Bazaarvoice在UGC页面之间动态创建href链接,仅用于搜索索引,允许搜索引擎将购物者直接指向相关结果。

注意:如果您有一个现有的部署,您可能需要重新部署到生产环境中才能看到这个SEO的好处。

分页链接格式

Bazaarvoice附加了一个bvstate参数为url。该参数使用键值对定义UGC显示的内容类型和页面。的可能用法的示例如下表所示bvstate参数。

参数文本 解释

? bvstate = pg: 2 / ct: r

  • 内容类型:评级和评论
  • 第2页:

? bvstate = pg: 4 / ct: q

  • 内容类型:问答
  • 第4页:

Bazaarvoice补充道bvstate参数转换为实现的规范标记中的url。消费者只会遇到bvstate参数表示从搜索结果中跟踪链接。

注意:bvstate参数替换以前Bazaarvoice使用的分页参数,例如bvrrpbvqapbvsyp,bvpage.旧的参数将逐渐被淘汰。

准备SEO设置

通过回答以下部分中的问题来开始实现,以帮助消除设置过程中的意外和延迟。

选项A:使用平台插件

如果网站是建立在Demandware, Magento, Hybris或GSI上,很可能会使用插件来部署BVSEO。

选项B:使用一个BVSEO sdk

如果网站是使用Java, . net或PHP构建的,BVSEO sdk将使seo友好的集成变得简单。继续下一个问题,回顾部署BVSEO sdk之前应该考虑的信息。

选项C:基于BVSEO sdk开发自定义解决方案

如果网站是使用不同的技术构建的,例如Ruby或Perl,您将需要开发一个自定义解决方案。BVSEO sdk是开源的,发布在GitHub上,为开发定制解决方案的人提供了可靠的指南。继续阅读第2节,这也是与定制解决方案开发相关的部分。

1.服务器端编码可能吗?

  • 是的BVSEO集成需要服务器端部署,将搜索友好的内容注入源代码。
  • 没有—如果您无法进行服务器端更改,则无法在站点上实现BVSEO。联系< a href ="//www.busanline.com/knowledge/wp-content/knowledge/en_US/Contacting_support.html">Bazaarvoice客户服务有关其他搜索引擎优化资源的信息。必威投注网

2.是否涉及页级缓存?(Akamai通常用于页面级缓存。)

缓存可以用于提高BVSEO集成的速度和效率。考虑以下与缓存相关的问题。

  • 是的—如果将实现BVSEO的页面使用页级缓存,则将EXECUTION_TIMEOUT增加到2000ms。这将确保在缓存版本中始终包含对seo友好的内容。
  • 没有-无需额外努力。

3.页面是否使用完整的URL作为其缓存键?

缓存可以用于提高BVSEO集成的速度和效率。考虑以下与缓存相关的问题。

BVSEO使用bvrrpbvqapbvsyp,bvpage作为URL参数来管理分页。http://example.com而且http://example.com?bvrrp=stuff是惟一的页,页级缓存系统必须将其视为惟一的页。

  • 是的-无需额外努力。
  • 没有—缓存系统或URL屏蔽系统必须作为部署的一部分进行更新。

4.是否使用本地缓存来减少服务器端对云的调用?

BVSEO向seo.bazaarvoice.com (seo.stg.bazaarvoice.com用于staging)发出HTTP或HTTPS请求,该请求将格式化的HTML作为字符串返回。虽然我们的云服务包含了非常高效的缓存(通常低于20毫秒),但一些客户选择添加额外的本地缓存层。

  • 是的—如果要使用本地缓存,Bazaarvoice建议最大TTL为1小时。
  • 没有-无需额外努力。

5.是否需要代理?

BVSEO必须通过HTTP或HTTPS访问seo.bazaarvoice.com (seo.stg.bazaarvoice.com用于登台)。IP地址不可用。因为BVSEO在云中使用浮动IP地址,所以我们不保证IP地址将保持一致。如果防火墙需要IP地址,则必须设置代理以提供一致的IP地址。sdk中包含代理配置选项。

  • 是的-将需要努力设置代理。使用BVClientConfig。PROXY_HOST而且PROXY_PORTto point the SDK at the proxy when deploying the SDK.
  • 没有-无需额外努力。

6.防火墙设置是否需要调整?

BVSEO必须通过HTTP或HTTPS访问seo.bazaarvoice.com (seo.stg.bazaarvoice.com用于登台)。如果防火墙限制对该地址的访问,则需要进行调整。

  • 是的-需要努力打开通路。
  • 没有-无需额外努力。

7.是否需要SSL连接?

虽然从seo.bazaarvoice.com检索的内容不包含任何需要保护的数据,但安全策略可能要求所有服务器端连接都使用SSL进行保护。SSL支持在Java SDK v2.1(及以上版本)和. net SDK v2.1(及以上版本)中可用。

  • 是的- set BVClientConfig。SSL_ENABLEDto true when deploying the SDK.
  • 没有-无需额外努力。

8.页面是否使用schema.org标记?

Bazaarvoice同时支持微数据和JSON-LD格式的标记。但是谷歌更喜欢JSON-LD结构化标记。Bazaarvoice使用< a href ="https://schema.org/docs/schemas.html" target="_blank">schema.org页来指导模式标记。

  • 是的—执行下一步。
  • 没有——看< a href ="http://schema.org/docs/gs.html" target="_blank">从schema.org开始

9.页面是否已经包含schema.org标记?

如果部署BVSEO的页面包含任何schema.org标记,则必须仔细注意细节,以确保模式标记不冲突。

  • 是的-所有schema.org标记必须正确地嵌套在一个层次结构中。仔细审核HTML输出,以确保schema.org代码层次结构正确。
  • 没有-请参阅< a href ="//www.busanline.com/knowledge/wp-content/conversations/en_US/Display/display_integration.html">指令关于如何在页面上包含schema.org标记。

10.页面是否已经包含schema.org类型?

页面必须只包含一种schema.org类型

  • 是的-确保schema.org< >脚本标签包含评价总结而且评论模块。
  • 没有—为页面添加类型。Bazaarvoice建议添加schema.org/Product(微数据格式)。请参阅< a href ="#java-code-examples">Java,< a href ="#net-code-examples">net,或< a href ="#php-code-examples">PHP示例参见样例代码。
    • 将schema.org/Product类添加到< div >标记,该标记包含评价总结而且评论模块。
    • 使用在schema.org/Product类中添加产品名称

      < div itemprop =名称> [ProductName] < / div >

      注意:这只适用于Microdata结构化数据。

11.页面是否有规范标签?

如果在实现BVSEO的页面上使用规范标记,那么当产品包含超过一页的评论(通常超过八个评论)时,必须更新或删除这些标记。这些规范标签必须删除,因为BVSEO正在对产品页面进行分页,以便所有评论都在搜索引擎的索引中。指向分页URL之外的规范标记将导致搜索引擎忽略分页内容。

注意:指< a href ="#Best">最佳实践有关分页的更多信息。
  • 是的-当存在任何BVSEO分页参数时(bvstatebvrrpbvqapbvsypbvpage),请选择以下任何一项:

    1. 移除canonical标记。这是最常见的解决方案。
    2. 将"name=value"对附加到规范URL。
  • 没有-无需额外努力。

然后,确保你满足以下先决条件:

  • 验证是否安装了以下框架之一:
    • Java框架5(1.5)或更高版本
    • .NET framework 2.0或以上版本
    • 带有curl和Mbstring库的php5.5或以上版本

  • 使用Bazaarvoice托管显示,如JavaScript或iFrame。
  • 提供一个< a href ="https://knowledge.bazaarvoice.com/wp-content/conversations/en_US/Collect/product_feed.html">产品目录Bazaarvoice。
  • 确保你的产品页面包含这些内容< a href ="//www.busanline.com/knowledge/wp-content/conversations/en_US/Display/display_integration.html">schema.org标记.
  • 系统中至少有一款产品有评论。

在设置过程中,你必须知道你的BVSEO:

  • 云计算的关键
  • 根文件夹
  • 产品id

如果您不知道这些值,请联系< a href ="//www.busanline.com/knowledge/wp-content/knowledge/en_US/Contacting_support.html">Bazaarvoice客户服务请求信息。

配置SEO选项

按照以下步骤配置SEO选项:

  1. 登录到< a href ="https://portal.bazaarvoice.com" target="_blank">Bazaarvoice门户
  2. 来自传送门菜单中,选择配置
  3. 选择实例。
  4. 选择进入配置.Site Manager将出现,列出可用的部署区域和实现。
  5. 从“实现”列表中,找到要配置SEO设置的实现。选择编辑旁边是< a href ="//www.busanline.com/knowledge/wp-content/conversations/en_US/Learn/config_hub_overview.html">实现你需要配置。
  6. 选择搜索引擎优化在这一页的左边下面设置.进入SEO页面。
  7. 为以下每个SEO选项进行选择或输入值:
    • 启用SEO文件发布-选择“启用”(默认),将SEO内容发布到云或压缩SEO文件存档。您还必须为提供值云计算的关键ZIP/GZIP的文件名属性
    • 根文件夹-输入用于云中根文件夹和/或压缩文件的名称的语法。使用这些令牌将动态属性注入文件名:{clientname}, {displaycode}, {deploymentzone}, {locale}。例子:bv - acmeinc - 7012 mainsite en_us
    • seo友好的分页-当你的网站包含多个产品页面,并且产品概述后的页面每个页面包含大约30个评论时,用户和搜索引擎会反应良好。选择启用(默认值)为产品页面使用多页设置。
    • 云计算的关键-输入您的云键值来配置BVSEO SDK。确保包含整个值,而不仅仅是加密的部分。如果您没有云密钥,请通过< a href ="http://support.bazaarvoice.com/" target="_blank">支持社区
    • schema.org/Product类型-忽略此选项,该选项已弃用,不再使用。
    • 压缩类型-选择SEO提要的压缩类型:邮政编码(Windows)或GZIP(UNIX)。如果禁用,存档文件将不会发布到SFTP服务器。
    • ZIP / GZIP文件名-此选项用于压缩文件发布。输入用于压缩SEO文件名的语法。使用这些令牌将动态属性注入文件名:{clientname}, {displaycode}, {deploymentzone}。文件扩展名将根据您选择的压缩类型自动追加。例子:bv_acmeinc_7012_MainSite-en_US.zip
    • 聚合标记位置google只会显示带有一个schema.org AggregateRating标签的页面的富代码片段星号。从以下选项中选择一个位置来插入该标记:
      • 主要评级摘要(默认值)-将AggregateRating标记插入主评级汇总页。Bazaarvoice推荐这个选项。
      • 检查集装箱-在评论容器的顶部插入AggregateRating标签。
      • 删除聚合评级标签-不包含AggregateRating标签。

使用Java SDK添加代码

安装Java SDK需要满足以下要求。

  • 熟悉Java和Java EE开发以及应用服务器的部署
  • Java 1.6或以上版本
  • 用于Java的BVSEO SDK库

Bazaarvoice遵循Java SDK支持的JRE的Oracle支持级别。有关更多信息,请参阅< a href ="http://www.oracle.com/technetwork/java/eol-135779.html" target="_blank" title="Oracle Java SE支持路线图" alt="Oracle Java SE Support Roadmap">Oracle Java SE支持路线图

下载SDK

从以下位置下载适当的Java SDK文件:< a href ="http://knowledge.bazaarvoice.com/software/downloads/BVSEO/Java/" target="_blank">Java SDK

解压文件后,从下表中选择最适合您的环境的包:

Java SDK 描述
Bv-seo-sdk - {version} -jar-with-dependencies.jar 所有依赖项都包含在文件中。
Bv-seo-sdk - {version} . jar 该文件中不包含任何依赖项。
Bv-seo-sdk - {version} -osgi.jar 此SDK仅适用于OSGi支持的环境。

如果您不确定应该使用哪个SDK,请根据以下场景选择一个。

  • 我的环境支持OSGi用的Bv-seo-sdk - {version} -osgi.jarSDK。这是OSGi环境的推荐库。
  • 我的环境不支持OSGi用的Bv-seo-sdk - {version} -jar-with-dependencies.jar如果在您的环境中使用的SDK库没有引起版本冲突,则使用该文件。
  • 我的环境不支持OSGi,我有版本冲突)bv-seo-sdk - {version} . jar文件。此库不包含任何依赖项,因此必须标识缺失的库并手动提供它们。如果存在编译错误,可以在编译期间执行,如果存在“未找到类”错误,则可以在运行时执行。

自定义SDK

BVSEO sdk适用于大多数环境。但是,BVSEO sdk在Apache许可下是开源的,可以根据您的需要进行定制。任何自定义必须自行承担风险,Bazaarvoice将不支持。

从下面的链接分叉来执行定制:< a href ="https://github.com/bazaarvoice/seo_sdk_java" target="_blank" style="text-decoration: none;">github.com/bazaarvoice/seo_sdk_java

设置你的项目

按照以下步骤设置项目。

要设置项目,请在服务器端Java环境中配置设置并准备开发环境。

配置服务器环境

注意:本节仅适用于使用Java EE部署站点的客户端。

Java SDK支持用户代理字符串的收集,这允许我们提供更好地为消费者量身定制的用户生成内容(UGC)。如果你的公司使用Java EE托管你的网站,你必须更新< a href ="https://docs.oracle.com/cd/E13222_01/wls/docs100/webapp/web_xml.html" target="_blank">你的web.xml文件,位于您的WEB-INF文件夹中。

复制并粘贴以下文本到< web >元素web . xml文件:

 BVSeoSdkRequestFilter com.bazaarvoice.seo.sdk.servlet。RequestFilter   BVSeoSdkRequestFilter /* 

配置开发环境

按照以下步骤配置开发环境。随示例代码一起提供了每个步骤的示例值。指< a href ="#java-code-examples">Java代码示例有关各种场景的完整示例代码,您可以根据需要进行配置。

  1. 从你的IDE创建一个web项目。

    例如:sampleweb

  2. 将SDK库粘贴在下面WebContent / web - inf / lib

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

  3. 中创建JSP页面WebContent文件夹中。通常这个JSP页面将是您的产品详细信息页面(PDP)。

    例如:sample.jsp

  4. 设置JSP文件

    示例:编写sample.jsp

  5. 将项目导出为WAR文件并部署到< a href ="http://tomcat.apache.org/" target="_blank">Tomcat

    示例:项目从IDE运行,使用Tomcat。

  6. 打开URL并查看页面源代码以查看注入的内容。

    例子:http://localhost:8080/sampleweb/sample.jsp

你的项目结构应该看起来像下面的例子:

设置JSP文件

按照以下步骤设置在前一个过程中创建的JSP文件。

  1. 使用BVConfiguration进行配置。

    示例代码使用BVSdkConfiguration类,它是BVConfiguration的实现。确保com.bazaarvoice.seo.sdk.config.BVConfiguration在页面中导入,并使用addProperty添加适当的配置。的BVConfiguration部分< a href ="#java-sdk-inputs-and-features">Java SDK输入和特性获取详细信息。

    addProperty方法用于向BVSdkConfiguration添加配置/属性,并接受参数enum类型BVClientConfig和String类型值。该示例显示了已经添加的各种属性。

  2. 使用BVParameters为产品详细信息页面设置参数。

    此步骤提供特定于产品页面内容的详细信息。使用BVParameters类设置参数,该类可以从com.bazaarvoice.seo.sdk.model.BVParameters.方法中所示的必填字段< a href ="#java-code-examples">Java代码示例本主题提供。

  3. 使用BVManagedUIContent获取内容。

    BVUIContent有三个api。指< a href ="#java-sdk-inputs-and-features">Java SDK输入和特性参阅有关每个API的更多资料。该示例使用getContent API和BVManagedUIContent,后者是BVUIContent的实现。在实例化BVManagedUIContent时,提供BVSdkConfiguration并调用传递BVParameters的getContent。这个API返回一个包含BVSEO内容的字符串,您可以在JSP中使用它。

测试应用程序

按照以下步骤测试和调试Java SDK应用程序。

  1. 部署WAR文件或使用应用服务器,例如< a href ="http://tomcat.apache.org/" target="_blank">Tomcat运行您的应用程序。
  2. 通过URL访问应用程序。

    例子:http://localhost:8080/SampleWeb/sample.jsp

  3. 查看页面源代码。你应该看到评论内容和SEO< >元数据BVRRContainer中的标签。
  4. 验证SEO元数据标签出现在每次评审之后,如下面的代码示例所示:
  • bvseo_sdk, java_sdk, bvseo-x.y。z
  • getContent, method:CLOUD, 188ms
  • REVIEWS, PRODUCT

如果SEO元数据标签不匹配,< a href ="#faqs">进行故障排除并根据搜索引擎优化中的错误信息采取适当的行动< >元数据标签。

要调试应用程序,请完成以下步骤:

步骤1:添加bvreveal=debug

  1. 添加bvreveal =调试参数设置为实现BVSEO的任何页面的URL。

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

    bvreveal =调试参数增加BVSEOSDK_meta而且BVSEOSDK_DEBUG列表到源代码,其中包含有关实现的信息。如果没有用户生成内容,bvseo-msg我们将提供更多细节。

    注意:如果pageURL没有正确设置,bvreveal =调试不会起作用。如果不提供调试页脚,分页链接可能不正确。
  2. 查看该页的源代码以查找有关您的实现的信息。此信息包含在BVSEOSDK_meta而且BVSEOSDK_DEBUG.请参阅本节末尾的完整示例代码。

步骤2:检查内容

检查所请求的contentURL是否存在内容,如下步骤所述:

  1. 在BVSEOSDK_DEBUG列表中找到contentURL。例子:<李data-bvseo = " contentURL " > http://seo stg.bazaarvoice.com/myshco - 69 - cb945801532dcfb57ad2b0d2471b68/main_site en_us/reviews/product/1/5000001.htm李< / >
  2. 从终端运行curl -我命令。例子:curl -i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"

如果curl命令不返回内容,则可能是防火墙问题或此ProductID不存在内容。请联系您的Bazaarvoice代表以进一步排除故障。

错误消息

调试时可能出现以下错误消息。

  • HTTP状态代码为0返回(或)连接拒绝-表示您的网络中存在防火墙。来自网络的出站请求可能会被防火墙阻塞。联系您的IT团队来解决防火墙问题。
  • URL或文件的资源当前不可用-表示实现配置有问题或指定产品没有生成内容。

例子:

  • bvseo_sdk, java_sdk, x.y.z
  • getContent, method:CLOUD, 656ms
  • QUESTIONS, PRODUCT
  • bvseo-msg: The resource to The URL or file is current unavailable.;

Java SDK输入和特性

本主题提供有关BVSEO SDK中的核心类的详细信息,包括Java平台的配置选项和使用方法。

BVConfiguration

BVConfiguration用于配置BVSEO SDK。它有两个api:

  1. BVConfiguration.addProperty—Adds properties to BVConfiguration.
  2. BVConfiguration。getproperty -从BVConfiguration中获取属性。
    注意:BVConfiguration。getProperty仅供Bazaarvoice内部使用。

BVConfiguration是下的接口 com.bazaarvoice.seo.sdk.config已知的实现类是com.bazaarvoice.seo.sdk.config.BVSdkConfiguration

Java使用

BVConfiguration BVConfiguration = new BVSdkConfiguration();

使用BVConfiguration.addProperty添加属性

在BVConfiguration中添加和设置属性会改变SDK的功能和行为。配置选项列在SDK配置属性表格

使用BVConfiguration.addProperty(BVClientConfig BVClientConfig,字符串值)。

Java使用

bvConfiguration.addProperty (BVClientConfig。CLOUD_KEY your_cloud_key);

属性 类型 描述
CLOUD_KEY 要求 云键字符串。指定用于定位云SEO文件的键。请联系Bazaarvoice以获取此属性所需的值。如果使用LOAD_LOCAL_FILES,此属性是可选的。
BV_ROOT_FOLDER 要求 文件夹路径声明。指定SEO文件所在的文件夹。这也称为显示代码。为每个部署区域和地区创建唯一的根文件夹。请联系Bazaarvoice以获取此属性所需的值。

SEO_SDK_ENABLED

可选 布尔。指定是启用SEO SDK (True)还是禁用它(False)。

默认值:真正的
EXECUTION_TIMEOUT 可选 数值。为不在CRAWLER_AGENT_PATTERN中的用户代理和搜索引擎机器人(如浏览器)指定完成SEO调用的时间(单位为毫秒)。
默认值:500
EXECUTION_TIMEOUT_BOT 可选 数值。为匹配CRAWLER_AGENT_PATTERN的搜索引擎机器人指定完成SEO调用的时间,单位为毫秒(ms)。

默认值:2000
CRAWLER_AGENT_PATTERN 可选 搜索引擎机器人用户代理列表。覆盖搜索引擎机器人用户代理的默认列表。您可以从列表中添加和删除代理。多个值之间用“|”分隔。

默认值:msnbot |谷歌|不过| bingbot |
yandexbot |雅虎
暂存 可选

布尔值。指定从登台(True)还是从生产(False)获取SEO内容。在使用load_seo_files_local时不适用。

默认值:

注意:忘记禁用登台数据是很常见的。检查SDK是否检索暂存数据(真正的)如果你没有收到来自制作的内容。
SOCKET_TIMEOUT 可选

数值。指定atimeout,用于建立连接和读取完整内容。由SDK内部使用。

不要修改这个值,除非有网络或带宽问题导致频繁的套接字/读超时。此值仅用于云SEO,在使用load_seo_files_local时不适用。

默认值:2000毫秒

CONNECT_TIMEOUT 可选 数值。指定与云SEO建立连接的超时时间。由SDK内部使用。除非必要,否则不要修改。

默认值:2000毫秒
字符集 可选 字符集声明。指定字符集。如果不指定,默认值为UTF-8。例如,当使用Shift JIS字符集时,使用"shift_jis"。

默认值:使用操作系统设置的默认值。
SSL_ENABLED 可选

布尔值。指定是否需要SSL连接(True)。在使用load_seo_files_local时不适用。

默认值:

PROXY_HOST 可选 代理主机声明。指定代理主机,某些客户端出于安全原因需要该主机。最常见的用例是防火墙规则只能为IP地址设置,而不能为域设置。云搜索引擎优化使用的IP地址范围很广,随时可能发生变化,因此Bazaarvoice不向客户提供云搜索引擎优化IP地址。在使用load_seo_files_local时不适用。
注意:要启用代理,必须同时设置PROXY_HOST和PROXY_PORT。
PROXY_PORT 可选 数值。指定代理/网关系统正在监听的端口号。与PROXY_HOST一起使用。
LOAD_SEO_FILES_LOCALLY 可选 (不推荐)。布尔值。指定是否在本地加载SEO文件(True)或不(False)。本地文件配置有助于克服系统限制。本地文件系统可能很脆弱,因为Bazaarvoice不负责SEO文件的日常检索、解包和分发。要启用本地文件,必须设置LOCAL_SEO_FILE_ROOT。
LOCAL_SEO_FILE_ROOT 可选

(不推荐)。布尔值。是否将提取的SEO内容的根路径设置为本地文件系统上的BV_ROOT_FOLDER (True)或(False)。与load_seo_files_local一起使用。

BVParameters

bv参数是页面或产品显示页面级参数,用于访问特定产品的SEO内容。使用下面SDK参数表中列出的属性设置字段值。

这是SDK中使用的模型com.bazaarvoice.seo.sdk.model.BVParameters类。

Java使用

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

属性 类型 描述
setUserAgent 要求 浏览器的用户代理头信息。SDK使用它来识别它是搜索引擎机器人还是普通用户。该信息可以从Java中的HTTPServletRequest中检索。这个搜索引擎机器人由CRAWLER_AGENT_PATTERN设置的配置确定和匹配。
setBaseURI 要求 用于创建分页链接的URL。Bazaarvoice将参数bvstate添加到base_url中。在大多数情况下,这应该包括产品或服务页面的规范URL。

产品评审所需。URL可以是绝对的、相对的或空白的(允许为空)。
setPageURI 要求 发送所有附加到当前URL的查询参数。Bazaarvoice将使用这些参数来决定包含哪一页的评论或问答内容。您必须发送完整的URL。
setSubjectID 要求 用于检索内容的SEO主题的标识符,这取决于所选择的SubjectType。例如,如果SubjectType为Product,则该值为productId。如果SubjectType为Category,则该值为reviewId。
setContentType 要求 枚举类型,在ContentType中定义,用于检索SEO内容。可能的值包括REVIEWS、REVIEWSPAGE、QUESTIONS、QUESTIONSPAGE和UNIVERSAL。
setSubjectType 要求 在SubjectType中定义的枚举类型,用于检索特定主题类型的内容。取值包括PRODUCT、CATEGORY、ENTRY和DETAIL。

BVUIContent

在您提供正确的BVConfiguration和BVParameters之后,BVUIContent用于获取SEO内容。

BVUIContent公开了三个api:getContentgetReviews,getAggregateRating.每一个都需要有效的bv参数。下面的BVUIContent api表解释了如何使用这些api。

BVUIContent是位于包中的接口com.bazaarvoice.seo.sdk.实现类为com.bazaarvoice.seo.sdk.BVManagedUIContent

Java使用

bvicontent bvicontent = new BVManagedUIContent(bvConfiguration);
String content = bvUIContent.getContent(bvParameters);

API 目的
getContent (BVParameters) 检索主题的完整内容。支持的内容类型包括REVIEWS和QUESTIONS。内容类型在BVParameters中设置。将此内容注入产品显示页面的评级摘要部分。收集的内容作为单个标记块注入。标记包括主要内容和聚合内容(如适用)。
getReviews (BVParameters) 检索评论部分并省略内容类型reviews的聚合部分。该内容被注入到产品显示页面的Review部分。
getAggregateRating (BVParameters) 检索REVIEWS内容类型的聚合评级部分。将此内容注入产品显示页面的评级摘要部分。

Java代码示例

本主题中包含的示例将sdk直接部署在表示层中,这简化了代码,但不是推荐的实践。本例的目的是展示一个SDK集成。确保更新代码以使用正确的值。

注意:所有示例都演示了使用云检索文件的集成,除非另有说明。

这个例子展示了BVSEO的评级和评论集成。

< % @page进口= " com.bazaarvoice.seo.sdk.model。内容类型"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><% //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Set BV Parameters that are specific to the page and content type. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only%>    

Ratings & Reviews integration of BVSEO

Using cloud for file retrieval

<%=sBvOutputSummary%>
<%=sBvOutputReviews%>

这个例子展示了评级和评论与可选配置参数的BVSEO集成。

< % @page进口= " com.bazaarvoice.seo.sdk.model。内容类型"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><% //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale //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 pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId”;//设置BV针对页面和内容类型的参数。BVParameters _bvParam = new BVParameters();_bvParam.setBaseURI (request.getRequestURI ());//该值用于构建分页链接_bvParam.setPageURI(pageURL);//该值用于从bv URL参数中提取页码_bvParam.setContentType(ContentType.REVIEWS);_bvParam.setSubjectType (SubjectType.PRODUCT);_bvParam.setSubjectId (subjectID);bvicontent _bvOutput = new BVManagedUIContent(_bvConfig);//获取内容并放置到字符串中,输出到注入div。 String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only%>    

Ratings & Reviews integration of BVSEO

Using cloud for file retrieval with optional configuration parameters

<%=sBvOutputSummary%>
< % = sBvOutputReviews % > < / div > < / div > < /身体> < / html >

这个例子展示了BVSEO的卖家评级集成。

< % @page进口= " com.bazaarvoice.seo.sdk.model。内容类型"%> <%@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); // Override the default setting of PRODUCT with SELLER _bvParam.setSubjectType(SubjectType.SELLER); // Set subjectId as seller _bvParam.setSubjectId("seller"); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); String srdContent = _bvOutput.getContent(_bvParam);%>   
<%=srdContent%>

这个示例展示了使用本地文件系统(而不是云)进行文件检索的BVSEO的评级和评论集成。指< a href ="#Best">在最佳实践中选择一个文件方法获取更多信息。

< % @page进口= " com.bazaarvoice.seo.sdk.model。内容类型"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% //Establish a new BVConfiguration. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.LOAD_SEO_FILES_LOCALLY, "true"); // set to false if using cloud-based content _bvConfig.addProperty(BVClientConfig.LOCAL_SEO_FILE_ROOT, "/"); //include the path to your _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId”;//设置BV针对页面和内容类型的参数。BVParameters _bvParam = new BVParameters();_bvParam.setBaseURI (request.getRequestURI ());//该值用于构建分页链接_bvParam.setPageURI(pageURL);//该值用于从bv URL参数中提取页码_bvParam.setContentType(ContentType.REVIEWS);_bvParam.setSubjectType (SubjectType.PRODUCT);_bvParam.setSubjectId (subjectID);bvicontent _bvOutput = new BVManagedUIContent(_bvConfig);//获取内容并放置到字符串中,输出到注入div。 String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only %>    

Ratings & Reviews integration of BVSEO

Using local file system instead of cloud for file retrieval

<%=sBvOutputSummary%>
< % = sBvOutputReviews % > < / div > < / div > < /身体> < / html >

这个例子展示了使用代理集成BVSEO的评级和评论。

< % @page进口= " com.bazaarvoice.seo.sdk.model。内容类型"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% //Establish a new BVConfiguration. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.PROXY_HOST, "00.000.000.000"); _bvConfig.addProperty(BVClientConfig.PROXY_PORT, "80"); _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId”;//设置BV针对页面和内容类型的参数。BVParameters _bvParam = new BVParameters();_bvParam.setBaseURI (request.getRequestURI ());//该值用于构建分页链接_bvParam.setPageURI(pageURL);//该值用于从bv URL参数中提取页码_bvParam.setContentType(ContentType.REVIEWS);_bvParam.setSubjectType (SubjectType.PRODUCT);_bvParam.setSubjectId (subjectID);bvicontent _bvOutput = new BVManagedUIContent(_bvConfig);//获取内容并放置到字符串中,输出到注入div。 String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only %>    

Ratings & Reviews integration of BVSEO

Using cloud for file retrieval via a proxy

<%=sBvOutputSummary%>
< % = sBvOutputReviews % > < / div > < / div > < /身体> < / html >

这个例子展示了BVSEO的评分与评论和问答集成。

< % @page进口= " com.bazaarvoice.seo.sdk.model。内容类型"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <% //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId”;//设置BV针对页面和内容类型的参数。//BVParameters for Ratings & Reviews BVParameters _bvParam = new BVParameters();_bvParam.setBaseURI (request.getRequestURI ());//该值用于构建分页链接_bvParam.setPageURI(pageURL);//该值用于从bv URL参数中提取页码_bvParam.setContentType(ContentType.REVIEWS);_bvParam.setSubjectType (SubjectType.PRODUCT);_bvParam.setSubjectId (subjectID);bvicontent _bvOutput = new BVManagedUIContent(_bvConfig);//获取内容并放置到字符串中,输出到注入div。 String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only //BVQAParameters for Questions & Answers BVParameters _bvQAParam = new BVParameters(); _bvQAParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvQAParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvQAParam.setContentType(ContentType.QUESTIONS); _bvQAParam.setSubjectType(SubjectType.PRODUCT); _bvQAParam.setSubjectId(subjectID); BVUIContent _bvQAOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputQAContent = _bvQAOutput.getContent(_bvQAParam); //For Questions & Answers getContent should always be used. %>    

Ratings & Reviews and Questions & Answers integration of BVSEO

Using cloud for file retrieval

<%=sBvOutputSummary%>
<%=sBvOutputReviews%>
<%=sBvOutputQAContent%>
.

使用.NET SDK添加代码

安装。net SDK需要满足以下要求:

  • 熟悉。net开发和Visual Studio IDE
  • .NET Framework 3.5或以上
  • Visual Studio
  • 用于。net的BVSEO SDK库

下载SDK

从以下位置下载适当的。net SDK文件:< a href ="http://knowledge.bazaarvoice.com/software/downloads/BVSEO/dotNET/" target="_blank">Bvseo .net SDK

下表描述了下载中包含的文件。

文件名 描述
BVSeoSdkDotNet.dll 同时支持云SEO和本地文件方法的BVSEO库。
Commons.dll Apache Commons的库依赖关系。
log4net.dll 日志的库依赖关系。
NVelocity.dll Apache NVelocity的库依赖关系,用于处理模板。
BVSeoSdkDotNet.pdb 包含调试信息。

自定义SDK

BVSEO sdk适用于大多数环境。但是,BVSEO sdk在Apache许可下是开源的,可以根据您的需要进行定制。任何自定义必须自行承担风险,Bazaarvoice将不支持。

从下面的链接分叉来执行定制:< a href ="https://github.com/bazaarvoice/seo_sdk_dotnet" target="_blank" style="text-decoration: none; font-style: italic;">github.com/bazaarvoice/seo_sdk_dotnet

设置你的项目

按照以下步骤设置项目。每个步骤都包含一个示例值。

  1. 创建一个ASP。NET web应用程序项目在Visual Studio IDE,然后选择一个空模板。

    例如:SampleWebApplication

  2. 从下载的SDK库zip文件中解压缩内容。

  3. 在解决方案资源管理器中,展开新项目并右键单击引用,从SDK二进制文件中添加以下库:BVSeoSdkDotNet.dll、Commons.dll、log4net.dll和NVelocity.dll。
  4. 向应用程序添加一个新的aspx页。通常这个页面将是您的产品详细信息页面(PDP)。

    例如:样本。Aspx示例代码

  5. 在Sample中添加必要的代码。aspx和Sample.aspx.cs如示例代码所示。
  6. 右键单击样本。Aspx并将其添加为启动页面。
    注意:对于步骤6和7,如果您的解决方案中有多个项目,请确保SampleWebApplication是您的启动项目。
  7. 按Crtl+F5运行应用程序,或打开调试菜单并选择无调试启动

设置.NET代码

按照以下步骤来设置。net代码:

  1. 使用BVConfiguration进行配置。
  2. 使用BVParameters设置PDP的参数。

  3. 使用BVManagedUIContent获取内容。

指< a href ="#net-sdk-inputs-and-features">.NET SDK输入和特性有关这些步骤的更详细信息。

指< a href ="#net-code-examples">.NET代码示例代码示例。

测试应用程序

按照以下步骤测试和调试。net SDK应用程序:

  1. 通过URL访问应用程序。如果您将应用程序设置为启动页面,那么使用IDE运行应用程序将自动打开页面。

    例子:http://localhost:8080/Sample.aspx

  2. 查看页面源代码。你应该看到评论内容和SEO< >元数据BVRRContainer中的标签。
  3. 验证SEO< >元数据标签,如下面的代码样例所示,出现在每次检查之后。
  • bvseo_sdk, net_sdk, x.y.z.0
  • getReviews, method:CLOUD, 33ms
  • REVIEWS, PRODUCT

如果SEO< >元数据标签不匹配,如代码示例所示,< a href ="#faqs">进行故障排除并根据搜索引擎优化中显示的错误信息采取适当的操作< >元数据标签。

要调试应用程序,请完成以下步骤:

步骤1:添加bvreveal=debug

  1. 添加bvreveal =调试参数设置为实现BVSEO的任何页面的URL。

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

    bvreveal =调试参数增加BVSEOSDK_meta而且BVSEOSDK_DEBUG列表到源代码,其中包含有关实现的信息。如果没有用户生成内容,bvseo-msg我们将提供更多细节。

    注意:如果pageURL没有正确设置,bvreveal =调试不会起作用。如果不提供调试页脚,分页链接可能不正确。
  2. 查看该页的源代码以查找有关您的实现的信息。此信息包含在BVSEOSDK_meta而且BVSEOSDK_DEBUG.请参阅本节末尾的完整示例代码。

步骤2:检查内容

检查所请求的contentURL是否存在内容,如下步骤所述:

  1. 在BVSEOSDK_DEBUG列表中找到contentURL。例子:<李data-bvseo = " contentURL " > http://seo stg.bazaarvoice.com/myshco - 69 - cb945801532dcfb57ad2b0d2471b68/main_site en_us/reviews/product/1/5000001.htm李< / >
  2. 从终端运行curl -我命令。例子:curl -i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"

如果curl命令不返回内容,则可能是防火墙问题或此ProductID不存在内容。请联系您的Bazaarvoice代表以进一步排除故障。

错误消息

调试时可能出现以下错误消息。

  • HTTP状态代码为0返回(或)连接拒绝-表示您的网络中存在防火墙。来自网络的出站请求可能会被防火墙阻塞。联系您的IT团队来解决防火墙问题。
  • URL或文件的资源当前不可用-表示实现配置有问题或指定产品没有生成内容。

例子:

  • bvseo_sdk, net_sdk, x.y.z.0
  • getContent, method:CLOUD, 656ms
  • QUESTIONS, PRODUCT
  • bvseo-msg: The resource to The URL or file is current unavailable.;

.NET SDK输入和特性

本主题提供有关BVSEO SDK中核心类的详细信息,包括用于. net平台的配置选项和使用方法。

BVConfiguration

BVConfiguration用于配置BVSEO SDK。它有两个api:

  1. BVConfiguration.addProperty—Adds properties to BVConfiguration.
  2. BVConfiguration。getproperty -从BVConfiguration中获取属性。
    注意:BVConfiguration。getProperty仅供Bazaarvoice内部使用。

BVSdkConfiguration是BVConfiguration的实现接口。确保使用BVSeoSdkDotNet.Config添加。

net使用

BVConfiguration bvConfig = new BVSdkConfiguration();

添加属性

在BVConfiguration中添加和设置属性会改变SDK的功能和行为。配置选项如下所示SDK配置属性表格

使用BVConfiguration上的addProperty方法设置这些属性。

. net用法:bvConfig.addProperty(BVClientConfig. addproperty)CLOUD_KEY your_cloud_key);

SDK配置属性表

属性 类型 描述
CLOUD_KEY 要求 云键字符串。指定用于定位云SEO文件的键。请联系Bazaarvoice以获取此属性所需的值。如果使用LOAD_LOCAL_FILES,此属性是可选的。
BV_ROOT_FOLDER 要求 文件夹路径声明。指定SEO文件所在的文件夹。这也称为显示代码。为每个部署区域和地区创建唯一的根文件夹。请联系Bazaarvoice以获取此属性所需的值。

SEO_SDK_ENABLED

可选 布尔。指定是启用SEO SDK (True)还是禁用它(False)。

默认值:真正的
EXECUTION_TIMEOUT 可选 数值。为不在CRAWLER_AGENT_PATTERN中的用户代理和搜索引擎机器人(如浏览器)指定完成SEO调用的时间(单位为毫秒)。
默认值:500
EXECUTION_TIMEOUT_BOT 可选 数值。为匹配CRAWLER_AGENT_PATTERN的搜索引擎机器人指定完成SEO调用的时间,单位为毫秒(ms)。

默认值:2000
CRAWLER_AGENT_PATTERN 可选 搜索引擎机器人用户代理列表。覆盖搜索引擎机器人用户代理的默认列表。您可以从列表中添加和删除代理。多个值之间用“|”分隔。

默认值:msnbot |谷歌|不过| bingbot |
yandexbot |雅虎
暂存 可选

布尔值。指定从登台(True)还是从生产(False)获取SEO内容。在使用load_seo_files_local时不适用。

默认值:

注意:忘记禁用登台数据是很常见的。检查SDK是否检索暂存数据(真正的)如果你没有收到来自制作的内容。
SOCKET_TIMEOUT 可选

数值。指定atimeout,用于建立连接和读取完整内容。由SDK内部使用。

不要修改这个值,除非有网络或带宽问题导致频繁的套接字/读超时。此值仅用于云SEO,在使用load_seo_files_local时不适用。

默认值:2000毫秒

CONNECT_TIMEOUT 可选 数值。指定与云SEO建立连接的超时时间。由SDK内部使用。除非必要,否则不要修改。

默认值:2000毫秒
字符集 可选 字符集声明。指定字符集。如果不指定,默认值为UTF-8。例如,当使用Shift JIS字符集时,使用"shift_jis"。

默认值:使用操作系统设置的默认值。
SSL_ENABLED 可选

布尔值。指定是否需要SSL连接(True)。在使用load_seo_files_local时不适用。

默认值:

PROXY_HOST 可选 代理主机声明。指定代理主机,某些客户端出于安全原因需要该主机。最常见的用例是防火墙规则只能为IP地址设置,而不能为域设置。云搜索引擎优化使用的IP地址范围很广,随时可能发生变化,因此Bazaarvoice不向客户提供云搜索引擎优化IP地址。在使用load_seo_files_local时不适用。
注意:要启用代理,必须同时设置PROXY_HOST和PROXY_PORT。
PROXY_PORT 可选 数值。指定代理/网关系统正在监听的端口号。与PROXY_HOST一起使用。
LOAD_SEO_FILES_LOCALLY 可选 (不推荐)。布尔值。指定是否在本地加载SEO文件(True)或不(False)。本地文件配置有助于克服系统限制。本地文件系统可能很脆弱,因为Bazaarvoice不负责SEO文件的日常检索、解包和分发。要启用本地文件,必须设置LOCAL_SEO_FILE_ROOT。
LOCAL_SEO_FILE_ROOT 可选

(不推荐)。布尔值。是否将提取的SEO内容的根路径设置为本地文件系统上的BV_ROOT_FOLDER (True)或(False)。与load_seo_files_local一起使用。

BVParameters

bv参数是页面或产品显示页面级参数,用于访问特定产品的SEO内容。使用下面SDK参数表中列出的属性设置字段值。

这是添加的SDK使用的模型BVSeoSdkDotNet。模型

net使用

BVParameters BVParameters = new BVParameters

BaseURI = < BaseURI >,
...
SubjectId = " exampleExternalId "
};

BVParameters = new BVParameters();
bvParameters。SubjectId = " exampleExternalId "
...

SDK参数

属性 类型 描述
setUserAgent 要求 浏览器的用户代理头信息。SDK使用它来识别它是搜索引擎机器人还是普通用户。该信息可以从Java中的HTTPServletRequest中检索。这个搜索引擎机器人由CRAWLER_AGENT_PATTERN设置的配置确定和匹配。
setBaseURI 要求 用于创建分页链接的URL。Bazaarvoice将参数bvstate添加到base_url中。在大多数情况下,这应该包括产品或服务页面的规范URL。

产品评审所需。URL可以是绝对的、相对的或空白的(允许为空)。
setPageURI 要求 发送所有附加到当前URL的查询参数。Bazaarvoice将使用这些参数来决定包含哪一页的评论或问答内容。您必须发送完整的URL。
setSubjectID 要求 用于检索内容的SEO主题的标识符,这取决于所选择的SubjectType。例如,如果SubjectType为Product,则该值为productId。如果SubjectType为Category,则该值为reviewId。
setContentType 要求 枚举类型,在ContentType中定义,用于检索SEO内容。可能的值包括REVIEWS、REVIEWSPAGE、QUESTIONS、QUESTIONSPAGE和UNIVERSAL。
setSubjectType 要求 在SubjectType中定义的枚举类型,用于检索特定主题类型的内容。取值包括PRODUCT、CATEGORY、ENTRY和DETAIL。

BVUIContent

在您提供正确的BVConfiguration和BVParameters之后,BVUIContent用于获取SEO内容。

BVUIContent公开了三个api:getContentgetReviews,getAggregateRating.每一个都需要有效的bv参数。下面的BVUIContent api表解释了如何使用这些api。

BVManagedUIContent的实现。BVUIContent并且使用BVSeoSdkDotNet。内容

net使用

bvicontent = new BVManagedUIContent(bvConfig);

string content = bvUIContent.getContent(bvParameters);

BVUIContent API

API 目的
getContent (BVParameters) 检索主题的完整内容。支持的内容类型包括REVIEWS和QUESTIONS。内容类型在BVParameters中设置。将此内容注入产品显示页面的评级摘要部分。收集的内容作为单个标记块注入。标记包括主要内容和聚合内容(如适用)。
getReviews (BVParameters) 检索评论部分并省略内容类型reviews的聚合部分。该内容被注入到产品显示页面的Review部分。
getAggregateRating (BVParameters) 检索REVIEWS内容类型的聚合评级部分。将此内容注入产品显示页面的评级摘要部分。

.NET代码示例

本主题中包含的示例直接在空ASP上部署SDK。NET项目的ASPX webform代码后面的页面,这简化了代码,但不是一个推荐的做法。这些示例的目的是展示如何完成SDK集成。确保更新代码以使用正确的值。

注意:如果您正在使用Web站点项目,请确保在复制示例之前将CodeBehind页指令切换为CodeFile。

Sample.aspx

<%@ Page Language=" c# " AutoEventWireup="true" CodeBehind="Sample.aspx.cs" Inherits="SampleWebApplication. "示例“%>   Sample SDK Implementation
  
.

Sample.aspx.cs

使用系统;使用System.Collections.Generic;使用来;使用包含;使用System.Web.UI;使用System.Web.UI.WebControls;使用BVSeoSdkDotNet.Config;使用BVSeoSdkDotNet.Content;使用BVSeoSdkDotNet.Model;命名空间SampleWebApplication{公共部分类Sample: System.Web.UI.Page{受保护的void Page_Load(对象发送者,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); } } }

这个例子展示了BVSEO的评级和评论集成。

使用系统;使用BVSeoSdkDotNet.Config;使用BVSeoSdkDotNet.Content;使用BVSeoSdkDotNet.Model;使用BVSeoSdkDotNet.BVException;命名空间Aspx_Examples{公共部分类ex_simple_rr_cloud: System.Web.UI.Page {protected void Page_Load(对象发送者,EventArgs e){//建立一个新的BVConfiguration。此配置中的属性通常在bvconfig.properties中设置。//addProperty可以覆盖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”;字符串pageURL = Request.Url.ToString();//设置BV针对页面和内容类型的参数。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; } } }

您还可以使用下面的HTML代码片段。

<%@ Page Language=" c# " AutoEventWireup="true" CodeBehind="ex-simple-rr-cloud.aspx.cs" Inherits="Aspx_Examples. "Ex_simple_rr_cloud " %>   
   

review集成BVSEO

使用云进行文件检索

.

这个例子展示了评级和评论与可选配置参数的BVSEO集成。

使用系统;使用BVSeoSdkDotNet.Config;使用BVSeoSdkDotNet.Content;使用BVSeoSdkDotNet.Model;使用BVSeoSdkDotNet.BVException;命名空间Aspx_Examples{公共部分类ex_expanded_rr_cloud: System.Web.UI.Page {protected void Page_Load(对象发送者,EventArgs e){//建立一个新的BVConfiguration。此配置中的属性通常在bvconfig.properties中设置。//addProperty可以覆盖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”;字符串pageURL = Request.Url.ToString();//设置BV针对页面和内容类型的参数。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; } } }

您还可以使用下面的HTML代码片段。

<%@ Page Language=" c# " AutoEventWireup="true" CodeBehind="ex-expanded-rr-cloud.aspx.cs" Inherits="Aspx_Examples. "Ex_expanded_rr_cloud " %>   
   

审查BVSEO集成

使用云进行可选配置参数的文件检索

.

这个例子展示了BVSEO的卖家评级集成。

使用系统;使用BVSeoSdkDotNet.Config;使用BVSeoSdkDotNet.Content;使用BVSeoSdkDotNet.Model;命名空间DotNetAspxExample{公共部分类ExampleGetSellerRatings: System.Web.UI.Page {protected void Page_Load(对象发送者,EventArgs e) {BVConfiguration bvConfig = new BVSdkConfiguration();String cloudKey = Request.QueryString[" cloudKey "];String staging = Request.QueryString["staging"];字符串测试= Request.QueryString["testing"];String rootFolder = Request.QueryString["site"];String subjectId = "卖家"; 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(); } } }

您还可以使用下面的HTML代码片段。

<%@ Page Language=" c# " AutoEventWireup="true" CodeBehind="ex_simple_srd.aspx.cs" Inherits="Aspx_Examples. "Ex_simple_srd " %>  < title>
   

SellerRatingsDisplay Integration

这个示例展示了使用本地文件系统(而不是云)进行文件检索的BVSEO的评级和评论集成。指< a href ="#Best">选择一个文件方法获取更多信息。

使用系统;使用BVSeoSdkDotNet.Config;使用BVSeoSdkDotNet.Content;使用BVSeoSdkDotNet.Model;使用BVSeoSdkDotNet.BVException;命名空间Aspx_Examples{公共部分类ex_simple_rr_local_file: System.Web.UI.Page {protected void Page_Load(对象发送者,EventArgs e){//建立一个新的BVConfiguration。BVConfiguration bvConfig = new BVSdkConfiguration();bvConfig.addProperty (BVClientConfig。LOAD_SEO_FILES_LOCALLY,“真正的”);//设置为false如果使用基于云的内容bvConfig.addProperty(BVClientConfig. addproperty)LOCAL_SEO_FILE_ROOT " /道路/ / /压缩/ seo /文件”);//包含bvConfig.addProperty的路径(BVClientConfig. addproperty)BV_ROOT_FOLDER Main_Site-en_US); //adjust this for each locale //Prepare pageURL and SubjectID/ProductID values. String subjectID = "ExternalId”;字符串pageURL = Request.Url.ToString();//设置BV针对页面和内容类型的参数。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; } } }

您还可以使用下面的HTML代码片段。

<%@ Page Language=" c# " AutoEventWireup="true" CodeBehind="ex-simple-rr-local-file.aspx.cs" Inherits="Aspx_Examples. "Ex_simple_rr_local_file " %>   
   

review集成BVSEO

使用本地文件系统代替云进行文件检索

.

这个例子展示了使用代理集成BVSEO的评级和评论。

使用系统;使用BVSeoSdkDotNet.Config;使用BVSeoSdkDotNet.Content;使用BVSeoSdkDotNet.Model;使用BVSeoSdkDotNet.BVException;命名空间Aspx_Examples{公共部分类ex_simple_rr_cloud_proxy: System.Web.UI.Page {protected void Page_Load(对象发送者,EventArgs e){//建立一个新的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”;字符串pageURL = Request.Url.ToString();//设置BV针对页面和内容类型的参数。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; } } }

您还可以使用下面的HTML代码片段。

<%@ Page Language=" c# " AutoEventWireup="true" CodeBehind="ex-simple-rr-cloud-proxy.aspx.cs" Inherits="Aspx_Examples. "Ex_simple_rr_cloud_proxy " %>   
   

审查BVSEO的集成

使用云通过代理进行文件检索

.

这个例子展示了BVSEO的评分与评论和问答集成。

使用系统;使用BVSeoSdkDotNet.Config;使用BVSeoSdkDotNet.Content;使用BVSeoSdkDotNet.Model;使用BVSeoSdkDotNet.BVException;命名空间Aspx_Examples{公共部分类ex_simple_rr_qa_cloud: System.Web.UI.Page {protected void Page_Load(对象发送者,EventArgs e){//建立一个新的BVConfiguration。此配置中的属性通常在bvconfig.properties中设置。//addProperty可以覆盖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”;字符串pageURL = Request.Url.ToString();//设置BV针对页面和内容类型的参数。//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; } } }

您还可以使用下面的HTML代码片段。

<%@ Page Language=" c# " AutoEventWireup="true" CodeBehind="ex-simple-rr-qa-cloud.aspx.cs" Inherits="Aspx_Examples. "Ex_simple_rr_qa_cloud " %>   
   

评论和问答BVSEO集成

使用云进行文件检索

< / div > < /身体>

使用PHP SDK添加代码

安装PHP SDK需要满足以下条件:

  • HTTP服务器或PHP内置web服务器
  • 带有curl和mbstring库的PHP 5.5或更高版本

  • 用于PHP的BVSEO SDK库
注意:Bazaarvoice仅支持列表中列出的当前PHP版本< a href ="http://php.net/supported-versions.php" target="_blank">支持的版本 页面。

下载SDK

从以下位置下载适当的PHP SDK文件:< a href ="http://knowledge.bazaarvoice.com/software/downloads/BVSEO/PHP/" target="_blank">Bvseo PHP SDK

下载文件中包含以下文件。

文件名 描述
Bvseosdk.php 同时支持云SEO和本地文件方法的BVSEO库。
BVFooter.php 用于生成内容和调试SDK页脚。
BVUtility.php BVSEO SDK库使用的通用实用程序函数。

自定义SDK

BVSEO sdk适用于大多数环境。但是,BVSEO sdk在Apache许可下是开源的,可以根据您的需要进行定制。任何自定义必须自行承担风险,Bazaarvoice将不支持。

从下面的链接分叉来执行定制:< a href ="https://github.com/bazaarvoice/seo_sdk_php" target="_blank" style="text-decoration: none; font-style: italic;">github.com/bazaarvoice/seo_sdk_php

设置你的项目

按照以下步骤设置项目。本文提供了每个步骤的示例值以及示例代码。指< a href ="#php-code-examples">PHP代码示例有关各种场景的完整示例代码,您可以根据需要进行配置。

  1. 创建文件。

    例如:sampleweb.php

  2. 包括bvseosdk.php。
  3. 实例化bv对象。
  4. 调用美元bv - >评论> getReviews ()内部
    < / div >获取BVSEO内容。此调用将以字符串形式返回BVSEO HTML代码。

测试应用程序

按照以下步骤测试PHP SDK应用程序。

  1. 将示例文件上传到主机文件夹,并使用URL访问示例应用程序。

    例子:http://localhost:8080/sampleweb.php

  2. 查看页面源代码。你应该看到评论内容和SEO< >元数据BVRRContainer中的标签。
  3. 验证SEO< >元数据标签,如下面的代码样例所示,出现在每次检查之后。
  • bvseo_sdk, p_sdk, bvseo-x.y.z。0
  • getContent, method:CLOUD, 188ms
  • REVIEWS, PRODUCT

如果SEO< >元数据标签不匹配,如代码示例所示,< a href ="#faqs" target="_blank">进行故障排除并根据搜索引擎优化中显示的错误信息采取适当的操作< >元数据标签。

PHP SDK输入和特性

本主题提供有关BVSEO SDK中核心类的详细信息,包括PHP平台的配置选项和使用方法。

配置

配置设置作为BV类构造函数参数添加。通过将配置属性放在选项数组中,并将小写的属性作为键和值来设置配置属性。

PHP使用

将EXECUTION_TIMEOUT设置为5000,方法是将它添加到值为EXECUTION_TIMEOUT => 5000的选项数组键中。

$bv = new bv(数组(
//必填项
'cloud_key' => 'myshco-3e3001e88d9c32d19a17cafacb81bec7',
'bv_root_folder' => 'Main_Site-ja_JP',
' subject_id ' = > ' 5000001 ',
//可选参数
'execution_timeout' => 5000,
));

添加属性

添加和设置属性会改变SDK的功能和行为。配置选项如下所示PHP SDK配置属性PHP SDK参数表。

所有配置设置都是在实例化BV类时添加的。

PHP SDK配置属性

属性 类型 描述
CLOUD_KEY 要求 用于定位云SEO文件。请联系Bazaarvoice以获取此属性所需的值。如果使用LOAD_LOCAL_FILES,此属性是可选的。
BV_ROOT_FOLDER 要求 SEO文件所在的文件夹。这也称为显示代码。为每个部署区域和地区创建唯一的根文件夹。请联系Bazaarvoice以获取此属性所需的值。
base_url 要求 用于创建分页链接的URL。Bazaarvoice将参数bvstate添加到base_url中。在大多数情况下,这应该包括产品或服务页面的规范URL。

产品评审所需。URL可以是绝对的、相对的或空白的(允许为空)。
page_url 要求 发送所有附加到当前URL的查询参数。Bazaarvoice将使用这些参数来决定包含哪一页的评论或问答内容。不需要发送完整的URL。
subject_id 要求 用于检索内容的SEO主题的标识符,这取决于您想要接收的内容。对于评论和问题,这是ProductID。

SEO_SDK_ENABLED

可选 用于打开SEO SDK的布尔值(True)或关闭(False)。

默认值:真正的
EXECUTION_TIMEOUT 可选 为不在CRAWLER_AGENT_PATTERN中的用户代理和搜索引擎机器人(如浏览器)完成SEO调用的时间(以毫秒为单位)。
默认值:500
EXECUTION_TIMEOUT_BOT 可选 为匹配CRAWLER_AGENT_PATTERN的搜索引擎机器人完成SEO调用的时间(以毫秒为单位)。

默认值:2000
CRAWLER_AGENT_PATTERN 可选 覆盖搜索引擎机器人用户代理的默认列表。您可以从列表中添加和删除代理。多个值之间用“|”分隔。
默认值:msnbot |谷歌|不过| bingbot | yandexbot |雅虎。
暂存 可选

设置为真正的以获得SEO内容从分期或从生产中获取SEO内容。在使用load_seo_files_local时不适用。

默认值:

注意:在设置SDK以检索登台数据时请谨慎(真正的).忘记禁用登台数据是很常见的。
SOCKET_TIMEOUT 可选

SDK内部使用,作为建立连接和读取完整内容的超时。

不要修改这个值,除非有网络或带宽问题导致频繁的套接字/读超时。这仅用于云SEO,在使用load_seo_files_local时不适用。

默认值:2000毫秒

CONNECT_TIMEOUT 可选 SDK内部使用,作为建立到云SEO连接的超时。除非必要,否则不要修改。
默认值:2000毫秒
字符集 可选 当使用UTF-8以外的字符集时,使用此字符串输入。例如,当使用Shift JIS字符集时,输入应该是"shift_jis"

Default:使用操作系统设置的默认值。
SSL_ENABLED 可选

如果需要SSL连接,则将该值设置为“true”。在使用load_seo_files_local时不适用。

默认值:

PROXY_HOST 可选 出于安全原因,某些客户机需要代理支持。最常见的用例是防火墙规则只能为IP地址设置,而不能为域设置。云搜索引擎优化使用的IP地址范围很广,随时可能发生变化,因此Bazaarvoice不向客户提供云搜索引擎优化IP地址。如果要启用代理,必须设置PROXY_HOST和PROXY_PORT。在使用load_seo_files_local时不适用。
PROXY_PORT 可选 代理/网关系统监听的端口号。与PROXY_HOST一起使用。
LOAD_SEO_FILES_LOCALLY 可选 (不推荐)。本地文件配置可能需要克服系统限制。本地文件系统可能很脆弱,因为Bazaarvoice不负责SEO文件的日常检索、解包和分发。要启用本地文件,必须设置LOCAL_SEO_FILE_ROOT。取值为True或False。
LOCAL_SEO_FILE_ROOT 可选

(不推荐)。属性将提取的SEO内容的根路径设置为本地文件系统上的BV_ROOT_FOLDER。应该与load_seo_files_local一起使用。

content_type 可选 根据调用的方法进行设置。与SEOGetContent一起使用。
subject_type 可选 根据调用的方法进行设置。

内容检索

创建BV类实例后,它可以调用问题和检查。

PHP使用

$BVContent = $bv->评论->getContent();

BVUIContent api

API 目的
getContent () 获取主题的完整内容。支持的内容类型包括REVIEWS和QUESTIONS。这些是在BVParameters中设置的。将此内容注入产品显示页面的评级摘要部分。收集到的内容将作为单个标记块注入。这包括主要内容和聚合内容(如适用)。
getReviews () 获取评论部分并省略内容类型reviews的聚合部分。这些内容应该被注入到产品显示页面的Review部分。
getAggregateRating () 获取REVIEWS内容类型的聚合评级部分。将此内容注入产品显示页面的评级摘要部分。

PHP代码示例

下面的代码示例展示了BVSEO在PHP中的使用。确保更新代码以使用正确的值。

使用此示例代码返回聚合评级和审查内容。Bazaarvoice推荐pdp使用此代码。

<?定义基本url和页面url;确保协议(http或https)与生产站点$base = 'http://'中使用的协议匹配。$ _SERVER [' HTTP_HOST '];$page = 'http://'。$ _SERVER [' HTTP_HOST ']。$ _SERVER [' REQUEST_URI '];//提供cloud_key, bv_root_folder和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必须包括在页面请求中出现的任何和所有URL参数;否则只有内容的第1页可以被索引'page_url' => $page, //base_url是最短的可能的URL,将直接到这个特定的产品页面'base_url' => $base)); ?>    BV SDK PHP Example - Simple Ratings & Reviews (recommended method)
   
问题与答案

使用此示例代码返回问答内容。

<?php //请提供cloud_key, bv_root_folder和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必须包括在页面请求中出现的任何和所有URL参数;否则,只有内容的第1页可以被索引。'page_url' => 'http://www.company.com/category/sub-category?query=value', //base_url是指向该特定产品页面的最短URL 'base_url' => 'http://www.company.com/category/sub-category', //确保协议,http://或https://,与生产站点匹配。));? > < !DOCTYPE html>   BV SDK PHP示例-问题:GetContent
  这是一个问题的测试页面:GetContent< br>这将返回问题和答案内容

卖家评级显示

使用此示例代码返回Seller Ratings内容。

<?php //请提供cloud_key和bv_root_folder require('bvseosdk.php');$bv = new bv (array('bv_root_folder' => ", 'cloud_key' => ", //page_url必须包括在页面请求中出现的任何和所有URL参数;否则,只有内容的第1页可以被索引。'page_url' => ", 'subject_id' => '卖家'));? > < !DOCTYPE html>   BV SDK PHP示例- GetContent
  这是SellerRatings的测试页面:GetContent() 
GetContent()将返回SellerRatings内容

综合内容的评级和评论

使用此示例代码返回Ratings & Reviews并聚合内容。

<?php //请提供cloud_key, bv_root_folder和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必须包括在页面请求中出现的任何和所有URL参数;否则,只有内容的第1页可以被索引。'page_url' => 'http://www.company.com/category/sub-category?query=value', //base_url是指向该特定产品页面的最短URL 'base_url' => 'http://www.company.com/category/sub-category', //确保协议,http://或https://,与生产站点匹配。));? > < !DOCTYPE html>     
最佳实践

以下最佳实践将帮助您在产品评论页面上最大化SEO效益。

注意:BVSEO的默认设置支持这些实践。

即使您在产品概述页面上有一个评论选项卡,用户也会在向下滚动页面时看到评论内容。如果概览页面上没有评论,搜索引擎会认为你的概览页面是过时的。在谷歌算法中,向页面添加8条评论可以显著提高新鲜度分数。此外,带有一些可见评论(不在标签下)的页面在谷歌搜索结果中更一致地收到丰富的代码片段星号。

按照以下步骤设置在产品概述页面上显示的评论数量:

  1. 从站点管理器中找到要配置的实现。
  2. 选择编辑接下来实现打开配置。
  3. 用户体验中,选择显示选项,并选择评分和评论选项卡。
  4. 向下滚动到首页评论文本框中。输入您希望页面显示的评论数量。

如果您无法访问Bazaarvoice Portal中的Configuration,请提交支持票据来设置评论的数量。

BVSEO策略的这个元素最有可能帮助你现有的页面在目标短语的搜索结果中上升。

根据相关性排序对搜索引擎优化和转化率都更好。相关性算法寻找内容丰富的评论和最近发表的,所以它加载你的最初显示的评论与吸引搜索引擎的内容。BVSEO策略的这个元素提高了页面的内容链接比、目标关键字的密度,以及支持目标关键字的同义词和形容词的数量。

按照以下步骤设置用户可用的排序方法:

  1. 从站点管理器中找到要配置的实现。
  2. 选择编辑接下来实现打开配置。
  3. 用户体验中,选择显示选项,并选择评分和评论选项卡。
  4. 向下滚动到评审排序.下审查排序选项列表,检查最相关的框以启用相关性排序。

如果您无法访问Bazaarvoice门户中的Configuration,请提交支持票据来设置排序方法。

大量的测试证实,当你的网站包含多个产品页面,以及概览后的页面每个页面包含大约30个评论时,用户和搜索引擎机器人的反应都是最好的。无论您使用BVSEO sdk还是实现自己的解决方案,请确保每个页面上出现的评论不超过30条。

如果您过去考虑过分页,并认为它很难实现,那么请注意,当前的BVSEO实现方法已经极大地简化了该过程。这一策略元素最有可能增加长尾流量。

分页产生的新页面是针对包含“评论”一词的关键字的最佳位置。在大多数情况下,在标题和标题标签的合理位置添加“评论”将有助于页面在竞争性搜索短语(如“[您的鞋品牌]评论”或“[您的酒店名称]评论”)中获得较高的排名。

BVSEO策略的这一元素最有可能帮助您的页面在包含“评论”一词的短语中获得较高的排名。

谷歌对那些包含社会评论内容、schema.org标记干净、正确且不隐藏重要细节的网页给予丰富的代码片段星级奖励。富代码片段星星是出现在谷歌搜索结果中的星星,如下图所示。

下面的注释和建议是基于BVSEO团队自谷歌的富代码片段明星推出以来与数百个客户的经验。

  • 为了使富代码片段星星成功显示,谷歌的搜索引擎机器人必须不能察觉到审查摘要内容以任何方式隐藏在CSS中。你可能不得不改变标签的实现方式,或者在标签之外实现评论,如果在你实现后的3-4周内,富代码片段星号没有出现在搜索结果中。

  • 虽然谷歌结构化数据测试工具非常有用,但它比谷歌Web搜索更慷慨。
  • 当谷歌首次推出富片段明星时,该公司维护了明星奖励白名单和黑名单。名单上的人可能还在活动。

  • 是否显示富代码片段星号的决定由谷歌决定。一旦schema.org代码就绪,请等待几周。的“结构化标记和富代码片段星号”部分中的步骤< a href ="#faqs">常见问题不工作,审查谷歌的丰富的snippet故障排除指南< a href ="https://support.google.com/webmasters/answer/1093493" target="_blank">没有出现丰富的片段
  • BVSEO代码在我们的客户端之间是一致的,并且在他们数百万的网页上顺利运行。如果有问题,请确认为schema.org类型正确配置了BVSEO,然后将重点放在BVSEO代码周围的环境上。

BVSEO sdk同时支持云SEO和本地文件方法(以前称为“智能SEO”)配置。基于以下原因,强烈建议使用云SEO而不是本地文件系统配置:

  • 云搜索引擎优化文件是最新的。
  • 云SEO更加可靠稳定。
  • Bazaarvoice负责云SEO文件发布流程,减少了客户的内部维护责任。
  • 在检索内容方面,云SEO通常比本地网络和文件系统更快。

如果技术限制使得基于云的解决方案对你的网站不可行,Bazaarvoice还提供了一个可下载的每日压缩文件,其中包含了使你的实现对seo友好所需要的一切。

如果您需要使用本地文件方法,请完成以下步骤并参考您的平台的本地代码示例来完成本地SEO集成。

注意:这个过程使用压缩的ZIP格式,这是Windows的标准格式。或者,您也可以接收GZIP格式的文件,这是UNIX系统的标准格式。如果您想使用GZIP,请转到搜索引擎优化页,并选择的GZIP选项压缩类型.如果您无法访问Bazaarvoice门户中的配置,请提交支持票据以使用GZIP格式。
  1. 设置一个每日下载和解压ZIP文件的流程,该文件包含适合搜索的产品页面内容。
  2. 确保解压缩后的文件可以通过web服务器的文件系统使用。
  3. 实现SEO集成SDK,将内部文件路径变量设置为解压缩文件的位置。指< a href ="//www.busanline.com/knowledge/wp-content/conversations/en_US/Display/#prepare-for-seo-setup">实现BVSEO获取有关如何以所使用的服务器端编程语言下载和实现SDK的说明。
注意:每天更新ZIP文件是很重要的。不频繁地下载和更新会降低您的网站内容对搜索引擎的新鲜度,因此降低了SEO实现的价值。

常见问题

使用以下部分中的信息对BVSEO实现进行故障排除。

Bazaarvoice建议您使用< a href ="https://support.apple.com/downloads/safari" target="_blank">Safariweb浏览器,可用于Windows和Mac,用于基于web的测试。

我使用一个特定的电子商务平台。Bazaarvoice提供插件吗?

是的。Bazaarvoice提供Demandware, Magento, Hybris和GSI插件来部署BVSEO。有关更多信息,请联系您的Bazaarvoice销售或技术服务代表。

我的网站是用不同的技术构建的,比如Ruby或Perl。我可以使用BVSEO的sdk吗?

如果您的网站是使用不同的技术构建的,您将需要开发一个自定义解决方案。BVSEO sdk是开源的,发布在GitHub上,为开发定制解决方案提供了可靠的指南。

我如何使用BVSEO与API?

BVSEO不支持api。有关API文档,请参阅< a href ="//www.busanline.com/developer/" target="_blank" style="font-style: italic;">developer.bazaarvoice.com.

可以使用缓存来提高BVSEO集成的速度和效率。

我使用页面级缓存。我如何确保seo友好的内容总是包括在我的页面的缓存版本?

如果在使用页级缓存的页上实现BVSEO,请将EXECUTION_TIMEOUT增加到2000ms。

页面是否使用完整的URL作为其缓存键?

BVSEO使用bvrrpbvqapbvsyp,bvpage作为URL参数来管理分页。以下url必须被页面级缓存系统视为唯一的页面:

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

如果您没有采用这种方法,缓存系统和URL屏蔽系统必须作为BVSEO部署的一部分进行更新。

我使用本地缓存。我如何确保seo友好的内容总是包括在内?

使用本地缓存系统来减少系统对云SEO服务器的调用次数是非常常见的。SDK不包括缓存服务,但是可以缓存来自SDK的响应。本地缓存的TTL(生存时间)不应超过3小时。

页面是否包含规范标签?

规范标记在页面源代码中显示为.在实现BVSEO的页面上,当产品包含多个评论页面时,必须更新或删除规范标记。(一页有八篇评论。)BVSEO对产品页面进行分页,因此所有评论都在搜索引擎的索引中。指向分页URL之外的规范标记将导致搜索引擎忽略分页内容。

注意:指< a href ="#Best">最佳实践有关分页的更多信息。

BVSEO以名称/值对的形式将分页参数附加到您的URL。当任何BVSEO分页参数(bvstatebvrrpbvqapbvsypbvpage),执行以下其中一项操作:

  • 移除canonical标记。这是最常见的、推荐的解决方案。
  • 更新为页面生成规范标记的代码,以附加名称/值对。在名称的URL中使用适当的分页参数,并根据参数使用适当的值。例如,如果页面使用bvstate参数,则可以添加bvstate = pg: 2 / ct: r /圣:p到页面中的规范标记。

如果rel="canonical"出现在页面中,那么规范URL是否与正在评估的页面的URL匹配?

规范标记指向替代URL的情况并不少见。如果规范化URL指向正在计算的页面以外的地方,则从规范化页面获取源代码并使用该源代码。

你可以添加rel="next"和rel="prev"链接到我的分页链接吗?

添加rel =“下一个”而且rel = "上一页"To链接不是一个推荐的实践。Bazaarvoice对谷歌的分页指南进行了测试和解释,证明这些标签不应该应用于评论列表。这些标签告诉搜索默认只搜索评论的第一页,即使后面的页面上还有更多相关的内容。有关这一建议的更多细节,请阅读< a href ="https://support.google.com/webmasters/answer/1663744?hl=en" target="_blank">谷歌的分页内容指南

Bazaarvoice建议使用基于云的文件方法。它比本地文件法省力,更可靠,而本地文件法需要更多的努力和长期管理。的“选择文件方法”部分< a href ="#Best">最佳实践获取更多信息。

注意:本节中的问题和解决方案适用于基于云的文件方法。

是否使用本地缓存来减少服务器端对云的调用?

BVSEO向seo.bazaarvoice.com (seo.stg.bazaarvoice.com用于staging)发出HTTP或HTTPS请求,该请求将格式化的HTML作为字符串返回。虽然云服务包含缓存以实现异常高效的交付(通常小于20毫秒),但一些客户端选择添加额外的本地缓存层。如果使用本地缓存,Bazaarvoice建议最大TTL为1小时。

是否使用代理?

如果防火墙需要配置IP地址,则需要通过代理提供一致的IP地址。BVSEO必须通过HTTP或HTTPS访问seo.bazaarvoice.com (seo.stg.bazaarvoice.com用于登台)。BVSEO使用的是云中的浮动IP地址,无法保证IP地址的一致性。要设置代理,请使用BVClientConfig。PROXY_HOST而且PROXY_PORTto point the SDK to the proxy.

是否需要调整防火墙设置?

BVSEO必须使用HTTP或HTTPS访问seo.bazaarvoice.com (seo.stg.bazaarvoice.com用于登台)。如果防火墙限制访问该地址,则需要进行调整。

是否需要SSL连接?

虽然从seo.bazaarvoice.com检索的内容不包含任何需要保护的数据,但安全策略可能要求所有服务器端连接都使用SSL进行保护。SSL支持在Java SDK v2.1(及以上版本)和. net SDK v2.1(及以上版本)中可用。启用SSL连接需要设置BVClientConfig。在部署SDK时将SSL_ENABLED设置为true。

执行超时是如何工作的?

SDK配置包括两个执行超时设置:EXECUTION_TIMEOUT和EXECUTION_TIMEOUT_BOT。

  • EXECUTION_TIMEOUT-定义正常终端用户完成BVSEO注入所允许的最大时间。
  • EXECUTION_TIMEOUT_BOT-定义CRAWLER_AGENT_PATTERN字段中定义的用户代理允许的最大时间量。
注意:如果BVSEO注入超过了允许的超时时间,系统将恢复为纯javascript注入。

SDK包含机器人检测吗?

旧版本的BVSEO SDK包含一个机器人检测功能,如果检测到用户代理,就会完全阻止注入。从版本2.1开始,BVSEO SDK中删除了BOT_DETECTION配置。如果您想复制机器人检测功能,请将EXECUTION_TIMEOUT设置为0。

Bazaarvoice支持并推荐schema.org Microdata用于结构化标记,因为它在我们测试过的所有格式中产生了最好的结果。Bazaarvoice使用< a href ="https://schema.org/Product" target="_blank">schema.org/Product页来指导我们的标记。

回答以下重要问题,以确保正确地设置了schema.org标记。

你使用的是最新版本的对话吗?

确保使用最新版本的Conversations来部署重要更新。检查您的配置设置以进行更新。

页面是否包含schema.org标记?

如果部署BVSEO的页面包含任何schema.org标记,则必须仔细注意细节,以确保模式标记不冲突。所有schema.org标记必须正确地嵌套在一个层次结构中。仔细审核HTML输出,以确保提供正确的schema.org代码层次结构。

富代码片段星星是出现在谷歌搜索结果中的星星,如下图所示。

读< a href ="http://blog.bazaarvoice.com/2015/11/20/uncover-the-top-10-reasons-why-rich-snippet-stars-dont-display-in-search-results/" target="_blank">这篇博文有关成功显示富代码片段星号的信息。

参考以下问题,以确保谷歌的丰富代码片段星号出现在您的产品页面的搜索结果中。

页面是否使用schema.org Microdata?

为了获得最佳效果,页面应该使用schema.org Microdata。有关更多信息,请参阅< a href ="http://schema.org/docs/gs.html" target="_blank">使用Microdata开始schema.org

如果有一个schema.org/WebPage声明,是否所有其他schema.org元素都嵌套在其中?

虽然schema.org/WebPage声明不是必需的,但许多网站都使用它。它要求page是最外层的schema.org相关节点。

是否存在与内容相关的schema.org类型?

要显示富代码片段星号,请在页面上包含schema.org类型。schema.org/Product类型适用于大多数电子商务网站。但是,其他类型(如LocalBusiness、Recipe、Event或Restaurant层次结构)可能更适合您的页面。

注意:默认情况下,BVSEO标记中不包括schema.org/Product,因为它必须在Bazaarvoice模块之前打开,在Bazaarvoice模块之后关闭。在2015年2月之前,Bazaarvoice默认启用了该功能。但是,不再建议将schema.org/Product驻留在Bazaarvoice容器中。

产品名称是否列在schema.org/Product类中?

产品名称应该在schema.org/Product类中使用< div itemprop =名称> [ProductName] < / div >

页面中是否存在schema.org/Organization类型?

虽然谷歌为组织显示丰富的代码片段星星似乎是合乎逻辑的,但Bazaarvoice上次测试时并没有这样做。Bazaarvoice为有实体地址的组织推荐schema.org/LocalBusiness。

只有一种schema.org类型吗?

谷歌将只对最多包含一种类型的站点显示富代码片段星号。

schema.org/AggregateRating是否正确嵌套在schema.org/Product(或最适合您的内容的类型)中?

AggregateRating和所有子元素必须嵌套在schema.org/Product中。

是schema.org/AggregateRating目前和不隐藏的CSS或NOSCRIPT?

BVSEO隐藏部分HTML,以减少AJAX内容装饰时的闪烁。但是,聚合评级标记和分页链接不能被CSS或NOSCRIPT标记隐藏。例如,将BVSEO内容包装为< div风格= "显示:没有;" >阻止谷歌渲染富片段星号。

itemprop="name",如在类型中声明的那样,是否与BVSEO提供的itemprop=" itemreviews "的内容匹配?

BVSEO代码可能看起来重复,因为itemprop = " itemReviewed "重复了很多次。然而,当AggregateRating和Review模式都包含此标记时,富代码片段星号显示得更加一致,这确认页面仍然在处理同一项。对于带有大量标记的页面尤其如此。

是否存在结构化标记冲突?

只使用一种类型的结构化标记。页面不应该包含data-vocabulary.org或hreview(微格式)内容。所有结构化标记都应该使用schema.org格式。

我的内容的出站或入站联合是否存在被复制的风险?

Bazaarvoice整合了数百个品牌和零售商的内容,并不担心重复内容引发的问题。当内容在品牌和零售商之间复制或联合时(无论是哪个方向),这是有益的,原因如下:

  • 良好的用户体验——由于产品在零售商和品牌网站上都有销售必威手机版本和展示,购物者希望看到使用过产品的人的反馈,他们希望在网上的任何地方都能看到反馈。如果没有评论或评论数量减少,就会导致糟糕的用户体验。
  • 没有谷歌问题——谷歌将重复内容定义为“域内或跨域的实质性内容块,这些内容要么完全匹配其他内容,要么明显相似。”由于评论只是产品页面的一个子集,而且它们混合在零售商和品牌的评论之间,我们预计不会出现重复内容的问题。Bazaarvoice从未收到客户的通知,他们在谷歌网站管理员工具中收到重复内容的惩罚或警告,谷歌使用该系统告诉网站管理员如果他们做错了什么。
  • 联合延迟- bazaarvoice在我们的平台上开发了一个叫做“联合延迟”的功能。任何被标记为联合到另一个网站的内容都必须等待七(7)天才能被联合。这样,谷歌就有时间索引原始站点上的内容,然后当它在另一个站点上发现相同的评论时,它就知道该内容已被共享。由于所有这些都为用户增加了如此多的价值,谷歌没有任何问题。的支持请求可配置联合延迟< a href ="http://support.bazaarvoice.com/" target="_blank">支持社区

Bazaarvoice建议我们平台上的每个网站都包含各种内容来源。有很多方法可以做到这一点,我们的客户服务团队可以帮助您的网站制定一个强大的内容策略。联合内容应该是任何内容生成策略的一部分,而不是全部。

我想看看谷歌是否索引我的用户生成的内容。我从哪里开始呢?

  • 找一个有超过一页评论内容的产品页面。
  • 查看第1页的源代码,这是产品页面的默认负载。
  • 在一个单独的浏览器窗口中,查看第2页搜索友好版本的源代码。
  • 在处理完源代码后,在文本编辑器中检查它是最容易的< a href ="http://tools.arantius.com/tabifier" target="_blank">Tabifier.要使用Tabifier,复制源代码,将其粘贴到代码文本框,并选择Tabify.然后,从代码文本框到您首选的文本编辑器(BBEdit, TextPad或类似)进行分析。对第1页和第2页都这样做。

谷歌索引我的用户生成内容(UGC)吗?

Bazaarvoice开发了元数据,描述您网站上的UGC,这样您就可以评估谷歌是否在索引这些内容。您可以从以下列表中的选项中选择适当的命令,并使用您的域代替对粗体文本执行谷歌搜索client.com.这些搜索将返回索引评论的url列表以及索引页面的总数。

注意:如果您正在使用Bazaarvoice API,这些命令将不会返回任何结果,因为API中不包括元数据。谷歌搜索引擎拥有最先进的网站索引能力。谷歌拥有全球最大的搜索引擎市场份额,并竭尽全力破译先进的网站编码技术,以准确了解用户在访问页面时看到的内容。其他搜索引擎,如Bing,百度和Yandex通常在1-2年内跟随谷歌的索引功能。

下面的搜索将帮助您确定谷歌是什么索引。

  • 网站:client.com intext: bvseo_fps-此搜索返回使用Bazaarvoice最新的客户端(JavaScript或“托管显示”)解决方案实现的页面。如果您自2013年11月以来已经实现了我们的平台(或升级了),请使用此搜索选项。

  • 网站:client.com intext: bvseo_bulk-此搜索返回使用Bazaarvoice最新的服务器端解决方案实现的页面。如果您自2013年11月起实施了我们的平台(或升级),并完成了“智能SEO”或“云SEO”实施步骤,使用此搜索选项。
  • 网站:client.com intext: bvseo_pps-此搜索返回使用Bazaarvoice的遗留客户端(JavaScript或托管显示)解决方案实现的页面。如果您在2013年11月之前已经在您的网站上实现了我们的平台,并且从那以后没有做过很多更改,请使用此搜索选项。
  • 网站:client.com intext: bvseo_lps-此搜索返回使用Bazaarvoice的遗留服务器端解决方案实现的页面。从历史上看,服务器端内容是搜索引擎能够读取的唯一类型的内容。如果您在2013年11月之前已经在您的网站上实现了我们的平台,并且自那以后没有做过太多更改,请使用此搜索选项。

我可以使用哪些插件来过滤搜索结果?

您可以将以下外接程序附加到上述命令以过滤搜索结果。

  • intext: co_hasreviews-附加此命令只返回有评论的页面。

  • intext: co_noreviews-附加此命令只返回没有评论的页面。
  • intext: bvpage2n-附加此命令返回前8个评论之外的评论内容页面。例如,考虑一个产品,第一页显示8条评论,第二页显示30条评论,第三页显示12条评论,总共50条评论。这个查询将返回bvpage2n的两个url。

  • intext: bvpage1-附加此命令仅返回审查内容的第一页。

故障排除

请参阅以下部分以帮助对BVSEO实现进行故障排除。

注意:Bazaarvoice建议使用< a href ="https://support.apple.com/downloads/safari" target="_blank">Safari 用于基于Web的测试的Web浏览器。Safari在Windows和Mac上都可用。

在谷歌中执行以下诊断搜索。

注意:只有当BVSEO处于谷歌可以找到代码和内容的活动环境中时,这些搜索才会起作用。如果谷歌无法访问BVSEO,则跳过诊断查询并继续执行< a href ="#Manual">手动验证.

编辑要替换的这些搜索中的urlexample.com您正在测试的域。然后,从web浏览器加载URL。

这个诊断查询是否为未分页的url提供BVSEO结果?

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

请注意:只检查第1页。

此诊断查询是否提供关于的结果BVSEO在第2页及以上的分页url ?

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

如果两个问题的答案都是肯定的,加载搜索结果中列出的一个页面,然后继续< a href ="#Additional">额外的验证.如果没有,继续< a href ="#Manual">手动验证.

第2页是否包含指向不同URL的规范标记?

这是最常见的错误之一。如果页面包含rel = "规范"标记时,URL必须包含bv分页参数。在大多数情况下,客户端用条件包装规范标记,并且当URL上出现以下任何参数时不包括它:bvrrpbvqapbvsypbvstate,bvpage.指< a href ="#canonical">规范的标签获取更多信息。

在第2页的标题中,“评论”这个词被强调了吗n?

为了提高包含单词评论的搜索短语的排名,我们强烈建议将单词评论附加到和<h1>标记时<b>bvrrp</b>出现在URL中。</p> <h3>一旦tabfied,在被审计的第1页代码中总共有多少行代码?</h3> <p>在所有正确部署了BVSEO的Bazaarvoice客户端中,使用干净简洁的HTML的客户端更一致地获得丰富的代码片段星星。Bazaarvoice指出,在100%的诊断搜索中,代码总数约为600行的页面往往会获得丰富的代码片段星星,而每页代码超过4000行的页面则有60%的几率获得星星。</p> </div> </div> <div> <button class="accordion">手动验证</button> <div class="panel"> <p><a name="Manual"></a>查看HTML源代码以研究以下问题。</p> <h3>在HTML源代码中找到BVSEO代码吗?</h3> <p>搜索<b>BVSEOCPS_GEN</b>(使用Ctrl+f或Command+f来运行查找查询)。如果没有找到,请搜索<b>BVRRSourceID</b>.如果这些都没有找到,则BVSEO不在您的页面中。请联系您的开发人员检查Bazaarvoice集成。</p> <h3>分页链接是否正常工作?</h3> <p>如果有意禁用BVSEO配置中的分页链接,则继续执行< a href ="#Additional">额外的验证</a>.</p> <div class="note"> <b>注意:</b>大多数情况下建议使用搜索友好的分页。</div> <ol> <li>找一个有超过一页评论的产品。在查看源代码时,搜索<b>begin-pagination</b>.在此之后不久,应该有一个HTML链接,以<b>< a href =</b>,并包含<b>bvrrp</b>或<b>bvpage</b>.</li> <div class="note"> <b>注意:</b>如果你看到<b>{INSERT_PAGE_URI}</b>,分页链接无法正常工作。您需要使用SDK重新部署BVSEO。</div> <p>如果你正在使用对话配置,你应该看到以下代码:</p> <pre class="prettyprint" xml:space="preserve"><div itemscope itemtype="http://schema.org/Product"> <div data-bv-show="reviews" data-bv-product-id="<i>ExternalId</i>" > < !——begin-bvseo-reviews——> <meta itemprop="name" content="Product name" /> <!——start -aggregate-rating——> <div id=" bvsea - aggregateratingsection " itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <span class=" bvsea - itemreturned " itemprop=" itemreturned ">Product Name</span> is rated <span class=" bvsea -ratingValue" itemprop="ratingValue">4.8571</span> out of <span class=" bvsea -bestRating" itemprop="bestRating">5</span> by <span class=" bvsea -reviewCount" itemprop="reviewCount">14</span>。< / div > < !——end-aggregate-rating > < !——begin-reviews——> <div id="bvseo-reviewsSection"> <!——删除内容例如> </div> <!——end-reviews——> </div> </div></pre> <li>如果分页链接正常工作,在Safari源代码查看器中选择到第2页的链接并查看以下代码。<pre class="prettyprint">< a href = " http://www.softsurroundings.com/5/23986/P/Newport_Beach_Pant/View_All/?bvrrp=4398/reviews/product/2/23986.htm " ></pre><p>请注意,页码紧随其后<b>/产品/</b>.注意您正在尝试加载的页面。在页面加载后,您还可以在地址栏中看到完整的URL。</p></li> <li>页面加载后,验证用户代理仍然是googlebot,或者重新执行用户代理切换程序以重新加载页面。</li> <li>检查是否适当的SEO内容页面已加载到源代码中。查看页面的HTML源代码并找到<b>bvseo-bulk-cp</b>在源代码中。下面的数字<b>cp -</b>是页码,如下面的代码所示。此号码应与地址栏中的页码相匹配。<pre class="prettyprint"><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=降格)]</li> <li data-bvseo="diagnostics">clientName_YourClientNameHere</li> </ul></pre><p>如果不使用Conversations配置,请查找<b>BVRRSelectedPageNumber</b>在HTML源代码中。标签后的数字表示页码。</p><p>如果确认加载了适当的内容页,则分页链接工作正常。返回到产品页面,而不是分页版本,然后继续< a href ="#Additional">额外的验证</a>.</p></li> </ol> <h3>找不到BVSEO内容。为什么?</h3> <p>可能发生了异常低的执行超时。要覆盖它,您可以启用开发人员工具并覆盖Safari中的用户代理,如下所示:</p> <ol> <li>要使用Safari内置的用户代理切换器,请选择<b>在菜单栏显示“开发”菜单</b>选择从<b>首选项>高级</b>.然后在菜单栏中显示一个标记为“Develop”的菜单。</li> <li>选择<b>开发</b>菜单和选择<b>用户代理>其他</b>.弹出包含当前用户代理的窗口。</li> <li>在末尾添加单词“googlebot”,如下所示,并选择<b>好吧</b>.<div class="img-wrapper"> <figure> <img src="//www.busanline.com/knowledge/wp-content/conversations/en_US/Display/images/enabling_user_agent_search.png" class="img-responsive center-block" title="googlebot"> </figure> </div></li> </ol> <p>当您在浏览器窗口或选项卡中工作时,用户代理现在将使BVSEO SDK使用更宽松的执行超时来操作。如果打开新的浏览器窗口或选项卡,则必须再次执行此过程。</p> </div> </div> <div> <button class="accordion">额外的验证</button> <div class="panel"> <p><a name="Additional"></a>如果结果被发现< a href ="#Diagnost">诊断查询</a>或< a href ="#Manual">手动验证</a>,打开在搜索结果中找到的一个页面,并查看HTML源代码,以调查以下问题。</p> <h3>内容是否如预期的那样令人耳目一新?</h3> <p>找到<b>bvDateModified</b>在HTML源代码中。日期戳的格式为YYYY-MM-DDThh:mmTZD< a href ="http://www.w3.org/TR/NOTE-datetime" target="_blank">ISO 8601标准</a><img src="//www.busanline.com/knowledge/wp-content/assets/images/external-link.png">.与bvDateModified相邻的日期戳应该总是小于两天。例如:</p> <p><code><李id = " bvDateModified " > 2014-06-15 < /李></code></p> <h3>您的页面是否显示生产内容?</h3> <p>搜索<b>data-bvseo = " cf "</b>在源代码中,看看紧跟着它的字符。如果你发现<b>刺激</b>, BVSEO配置为使用生产数据,这就是您想要的。如果你发现<b>stg</b>, BVSEO被配置为使用分段数据,您应该联系您的开发人员来修复它。</p> <p>要验证显示的内容是否正确,请找到<b>itemprop = "描述"</b>在源代码中找到一个实例,其中审查内容紧随其后,如下例所示:</p> <pre class="prettyprint"><span itemprop="description">我要尝尝这种口味的鸡肉干…</pre> <p>将该评论的前几个字与页面中显示给最终用户的评论进行比较。如果自上次SEO更新以来,系统中出现了新的评论,则可能存在差异。运行该测试几次以进行验证。</p> <h3>内容是否在正确的DIV中?</h3> <p>使用浏览器的“查看页面源代码”功能查看源代码和呈现的HTML。验证BVSEO内容是否位于正确的位置<code>< div ></code>标签。要确定这一点,请寻找<b>评价总结</b>或<b>评论</b>在源代码中。如果<code>< div ></code>标签立即打开和关闭,如下例所示:</p> <p><code><div data-bv-show="rating_summary" data-bv-product-id="<i>ExternalId</i>" > < / div ></code></p> <p>内容格式不正确。下面的代码示例显示<code>< div ></code>内容应该是这样的。</p> <pre class="prettyprint" xml:space="preserve"><div data-bv-show="reviews" data-bv-product-id="<i>ExternalId</i>" > < !——begin-bvseo-reviews > < !——start -aggregate-rating——> <div id=" bvsea - aggregateratingsection " itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <span class=" bvsea - itemreturned " itemprop=" itemreturned ">Product Name</span> is rated <span class=" bvsea -ratingValue" itemprop="ratingValue">4.8571</span> out of <span class=" bvsea -bestRating" itemprop="bestRating">5</span> by <span class=" bvsea -reviewCount" itemprop="reviewCount">14</span>。< / div > < !——end-aggregate-rating > < !——begin-reviews——> <div id="bvseo-reviewsSection"> <!——删除内容例如> </div> <!——end-reviews > < / div ></pre> <h3>结构化标记是否使用schema.org格式?</h3> <p>搜索schema.org<b>/ AggregateRating</b>在源代码中。如果没有找到,请搜索schema.org<b>/评论</b>.如果两者都没有找到,则很可能将客户端配置为使用旧版本的BVSEO,应该将配置更新为使用schema.org格式进行结构化标记。</p> <h3>什么时候将BVSEO内容注入页面?字符是否转义?</h3> <p>BVSEO标记必须显示为HTML,而不是转义字符。找到<b>begin-bvseo</b>在源代码中。如果内容出现转义字符,如下例所示,请与开发人员联系以解决该问题。</p> <pre class="prettyprint">& lt; !——begin-bvseo-reviews祝辞</pre> <p>标记应该是这样的:</p> <pre class="prettyprint"><!——begin-bvseo-reviews ></pre> <h3>搜索友好的分页链接隐藏的CSS或NOSCRIPT?</h3> <p>BVSEO使用经过测试的技术来装饰分页链接,但从不用CSS或NOSCRIPT隐藏它们。谷歌将不会抓取CSS或NOSCRIPT隐藏的链接。这是一个常见的错误添加<b>风格= "显示:没有”;</b>属性<code>< div ></code>标签,其中包含BVSEO。这样做会阻塞搜索友好的分页。</p> </div> </div> <div> <button class="accordion">调试</button> <div class="panel"> <h4>步骤1:添加bvreveal=debug</h4> <ol> <li><p>添加<b>bvreveal =调试</b>参数设置为实现BVSEO的任何页面的URL。</p><p>例子:<i>http://yoursite.net/ExampleGetContent.aspx?bvreveal=debug</i></p><p>的<b>bvreveal =调试</b>参数增加<b>BVSEOSDK_meta</b>而且<b>BVSEOSDK_DEBUG</b>列表到源代码,其中包含有关实现的信息。如果没有用户生成内容,<b>bvseo-msg</b>我们将提供更多细节。</p> <div class="note"> <b>注意:</b>如果pageURL没有正确设置,<b>bvreveal =调试</b>不会起作用。如果不提供调试页脚,分页链接可能不正确。</div></li> <li>查看该页的源代码以查找有关您的实现的信息。此信息包含在<b>BVSEOSDK_meta</b>而且<b>BVSEOSDK_DEBUG</b>.请参阅本节末尾的完整示例代码。</li> </ol> <h4>步骤2:检查内容</h4> <p>检查所请求的contentURL是否存在内容,如下步骤所述:</p> <ol> <li>在BVSEOSDK_DEBUG列表中找到contentURL。例子:<code><李data-bvseo = " contentURL " > http://seo stg.bazaarvoice.com/myshco - 69 - cb945801532dcfb57ad2b0d2471b68/main_site en_us/reviews/product/1/5000001.htm李< / ></code></li> <li>从终端运行<code>curl -我</code>命令。例子:<code>curl -i "http://seo-stg.bazaarvoice.com/myshco-69cb945801532dcfb57ad2b0d2471b68/Main_Site-en_US/reviews/product/1/5000001.htm"</code></li> </ol> <p>如果curl命令不返回内容,则可能是防火墙问题或此ProductID不存在内容。请联系您的Bazaarvoice代表以进一步排除故障。</p> <h4>错误消息</h4> <p>调试时可能出现以下错误消息。</p> <ul> <li><b>HTTP状态代码为0返回(或)连接拒绝</b>-表示您的网络中存在防火墙。来自网络的出站请求可能会被防火墙阻塞。联系您的IT团队来解决防火墙问题。</li> <li><b>URL或文件的资源当前不可用</b>-表示实现配置有问题或指定产品没有生成内容。</li> </ul> </div> </div> </div> </div> <div class="mdl-tabs__panel" id="tab2"> <h3>为新客户集成</h3> <ol> <li>安装< a href ="#Add">Java</a>,< a href ="#Add2">net</a>,或< a href ="#Add3">PHP</a>SDK。</li> <li>定义由Bazaarvoice提供的云键。</li> <li>定义根文件夹,它是由Bazaarvoice提供的。</li> <li>通过指定base_URL加上查询字符串和附加参数来定义页面URL。无论您的站点是否使用查询参数,这都是必需的。Bazaarvoice附加了用于SEO分页的参数,并且要求page_URL捕获这些参数。不要在您这边缓存这个,因为page_URL必须实时更新。</li> <li>通过指定产品页面的规范URL来定义基本URL。</li> <li><a href="//www.busanline.com/knowledge/wp-content/conversations-prr/en_US/seo/bvseo_v1.html">添加schema.org标记</a>在产品页面。</li> <li>如果在防火墙后面,请联系您的网络或服务器操作团队加入白名单<b>seo.bazaarvoice.com</b>而且<b>seo-stg.bazaarvoice.com</b>.</li> <li>在非生产(登台)环境中实现时,将登台设置为TRUE。</li> </ol> <p>例子:</p> <div> <div> <button class="accordion">Java</button> <div class="panel"> <pre class="prettyprint linenums" xml:space="preserve">< % @page进口= " com.bazaarvoice.seo.sdk.model。内容类型"%> <%@page import="com.bazaarvoice.seo.sdk.model.SubjectType"%> <%@page import="com.bazaarvoice.seo.sdk.model.BVParameters"%> <%@page import="com.bazaarvoice.seo.sdk.BVManagedUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.BVUIContent"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVClientConfig"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVSdkConfiguration"%> <%@page import="com.bazaarvoice.seo.sdk.config.BVConfiguration"%> <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><% //Establish a new BVConfiguration. Properties within this configuration are typically set in bvconfig.properties. //addProperty can be used to override configurations set in bvconfig.properties. BVConfiguration _bvConfig = new BVSdkConfiguration(); _bvConfig.addProperty(BVClientConfig.CLOUD_KEY, "client-1234cloudkeygoeshere4321zxyz9876"); _bvConfig.addProperty(BVClientConfig.BV_ROOT_FOLDER, "Main_Site-en_US"); //adjust this for each locale _bvConfig.addProperty(BVClientConfig.STAGING, "true"); //Prepare pageURL and SubjectID/ProductID values. String pageURL = request.getQueryString() == null ? request.getRequestURI() : request.getRequestURI() + "?" + request.getQueryString(); String subjectID = "ExternalId"; //Set BV Parameters that are specific to the page and content type. BVParameters _bvParam = new BVParameters(); _bvParam.setBaseURI(request.getRequestURI()); // this value is used to build pagination links _bvParam.setPageURI(pageURL); //this value is used to extract the page number from bv URL parameters _bvParam.setContentType(ContentType.REVIEWS); _bvParam.setSubjectType(SubjectType.PRODUCT); _bvParam.setSubjectId(subjectID); BVUIContent _bvOutput = new BVManagedUIContent(_bvConfig); //Get content and place into strings, which output into the injection divs. String sBvOutputSummary = _bvOutput.getAggregateRating(_bvParam); //getAggregateRating delivers the AggregateRating section only String sBvOutputReviews = _bvOutput.getReviews(_bvParam); //getReviews delivers the review content with pagination only%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Ratings & Reviews integration of BVSEO</h1> <h2>Using cloud for file retrieval</h2> <div itemscope itemtype="http://schema.org/Product"> <meta itemprop="name" content="The Amazing Wonder Ball" /> <div data-bv-show="rating_summary" data-bv-product-id="ExternalId"> <%=sBvOutputSummary%> </div> <div data-bv-show="reviews" data-bv-product-id="ExternalId"> <%=sBvOutputReviews%> </div> </div> </body> </html></pre> </div> </div> <div> <button class="accordion">net</button> <div class="panel"> <pre class="prettyprint linenums" xml:space="preserve">使用系统;使用System.Collections.Generic;使用来;使用包含;使用System.Web.UI;使用System.Web.UI.WebControls;使用BVSeoSdkDotNet.Config;使用BVSeoSdkDotNet.Content;使用BVSeoSdkDotNet.Model;命名空间SampleWebApplication{公共部分类Sample: System.Web.UI.Page{受保护的void Page_Load(对象发送者,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); } } }</pre> </div> </div> <div> <button class="accordion">PHP</button> <div class="panel"> <pre class="prettyprint linenums" xml:space="preserve"><?定义基本url和页面url;确保协议(http或https)与生产站点$base = 'http://'中使用的协议匹配。$ _SERVER [' HTTP_HOST '];$page = 'http://'。$ _SERVER [' HTTP_HOST ']。$ _SERVER [' REQUEST_URI '];//包含bvseosdk.php require('bvseosdk.php');//传递一个具有配置属性和参数的数组$bv = new bv (array(//更新下面的行以使用实际值,这可以从Bazaarvoice获得'cloud_key' => ' myshco-3e3001e88d9c32d19a17cafacb81bec7 ', 'bv_root_folder' => 'Main_Site-ja_JP', 'page_url' => $page, //base_url是最短的URL,将直接到这个特定的产品页面'base_url' => $base, 'staging' => TRUE, //因为主题是产品,将productId设置为'subject_id' => ' 5000001 ', 'execution_timeout' => 1500, 'execution_timeout_bot' => 2000, 'seo_sdk_enabled' => TRUE)); ?> <!DOCTYPE html> <html> <head> <title>BV SDK PHP Example - GetContent This is a test page for Reviews: getContent()
GetContent() will return reviews and aggregate content

reviews->getContent(); ?>

现有客户的集成

您必须更新BVSEO集成< a href ="https://knowledge.bazaarvoice.com/wp-content/conversations-prr/en_US/collect/bvpixel.html">添加BV加载器到你的网站。

Java和PHP

对Java和PHP BVSEO集成进行以下更改:

  • 取代< div id = " BVRRSummaryContainer " >
  • 取代< div id = " BVRRContainer " >
  • 取代< div id = " BVQAContainer " >

地点:

  • data-bv-show-指示BV加载器显示指定的特征。
  • data-bv-product-id-指示BV加载器显示指定产品ID的特性。产品ID必须与ExternalId在产品目录中提供。

net

对。net BVSEO集成进行以下更改:

  • 取代
  • 取代
  • 取代

地点:

  • data-bv-show-指示BV加载器显示指定的特征。
  • data-bv-product-id-指示BV加载器显示指定产品ID的特性。产品ID必须与ExternalId在产品目录中提供。

同时更新引用这些元素id的代码:

  • 取代BVRRContainer。InnerHtmlSEO_BVRRContainer。InnerHtml
  • 取代BVRRSummaryContainer。InnerHtmlSEO_BVRRSummaryContainer。InnerHtm
  • 取代BVQAContainer。InnerHtmlSEO_BVQAContainer。InnerHtml

请注意,在登台环境中对BVSEO所做的更改每周只在周六更新一次。

验证以下内容: