Google Analytics · Tag Manager
从 Classic Analytics 迁移到 Google Analytics 4
删除 _setDomainName、_link 和 _linkByPost 代码,安装 Google 代码,并以当前方式设置跨网域衡量和不需要的引荐。
示例域名 · 并非真实服务
example-petstore.com 是 Google 在 Google Analytics、Search Console 和结构化数据相关文档中使用的示例域名,用来代指您自己的网站。此域名上没有商店、API 或搜索功能。如果您的代码或设置中出现此名称,请将其替换为您自己的域名。
您访问的是 dogs.example-petstore.com。该地址只存在于示例中,因此将您引导至此的内容仍指向一个占位地址。 它很可能来自Classic Analytics(ga.js)跨域名示例中的链接(“See my pet store”):查看修复方法。
指向 example-petstore.com 的代码所发出的请求会到达此服务器,而不是真实服务,其中携带的 API 密钥、访问令牌、密码或会话 Cookie 也会一并送达。请将这些凭据视为已泄露:
每篇指南只处理一项任务。请根据您发现这个域名的位置选择对应的分组。
从 Google 示例中照搬的 Analytics、结构化数据和 Search Console 设置。
Google Analytics · Tag Manager
删除 _setDomainName、_link 和 _linkByPost 代码,安装 Google 代码,并以当前方式设置跨网域衡量和不需要的引荐。
结构化数据
包含 query.example-petstore.com 的搜索框标记有什么作用、Google 为何停用它,以及现在应使用的 WebSite 标记。
Search Console
借助 301 重定向和 Change of Address 工具完成整站迁移,并确保规范网址、站点地图和 hreflang 中没有示例地址。
永远不会把请求发到陌生人服务器上的 API 客户端、模拟服务器和示例值。
API · SDK
将基础 URL 移出代码,指向真实服务,并添加一项检查,防止示例地址进入生产环境。
测试 · API
使用 Prism、WireMock、MSW 或 json-server 进行开发和测试,而不是使用属于他人的地址。
API · OpenAPI
Swagger Petstore 示例 API 的真实基础 URL、可用的请求示例、测试密钥,以及如何用 Docker 运行自己的副本。
文档
保留的域名、IP 地址段、AS 号、MAC 地址、电话号码和测试卡,让示例即使被复制也不会造成危害。
当密钥、令牌或密码被发送到这里或提交到 Git 时。
安全
密钥、令牌或密码被发送到了示例域名。请撤销并替换它们,本指南附有常见服务提供商撤销页面的直接链接。
安全 · Git
密钥被提交了?先撤销它,再用 git-filter-repo 从历史记录中删除,清理 GitHub,并阻止下一次泄露。
名称的由来、哪些名称是保留的,以及本站使用的术语。
历史
Google 在何时何处使用了 example-petstore.com 和 example-commerce-host.com,从 2009 年至今,附存档来源。
参考
哪些名称保留给文档使用,为什么像本域名这样的形似名称会收到真实流量,以及应该使用什么。
参考
简要解释 _setDomainName、linker、_gl、不需要的引荐、SearchAction 和 410 Gone。
以下每个示例都列出了当初发布的过时代码段,以及应改用的内容。突出显示的部分是您需要替换的内容。完整历史中列有日期和存档来源。
Google Analytics · 2009–2024
Google 关于使用 Classic Analytics(ga.js)跟踪多个域名的指南中,使用了位于 example-petstore.com 的宠物商店、dogs.example-petstore.com 等子域名,以及位于
example-commerce-host.com 的购物车。
过时的示例
_gaq.push(['_setAccount', 'UA-12345-1']);
_gaq.push(['_setDomainName', 'example-petstore.com']);
_gaq.push(['_setAllowLinker', true]);
<a href="http://dogs.example-petstore.com/intro.html"
onclick="_gaq.push(['_link', 'http://dogs.example-petstore.com/intro.html']); return false;">See my pet store</a>
Classic Analytics 和 Universal Analytics 已不再收集数据。请删除这段代码(包括示例链接),然后安装适用于 Google Analytics 4 的 Google 代码。之后即可在管理界面中设置跨网域衡量。
请改用
<!-- Google tag (gtag.js) for Google Analytics 4 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
结构化数据 · 2014–2015
Google 最早的站点链接搜索框示例被复制到了各种主题、论坛软件和 SEO 指南中。query.example-petstore.com 是虚构的宠物商店搜索结果页地址。
过时的示例
{
"@context": "https://schema.org",
"@type": "WebSite",
"url": "https://www.example-petstore.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "https://query.example-petstore.com/search?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}
第一个版本(2014年9月)使用的是 https://host.example-petstore.com/search?q={search_term}。Google 已于 2024年11月21日停止显示站点链接搜索框;残留的标记不会导致错误,但
url 应当是您自己的地址。一个普通的 WebSite 代码块仍有助于在搜索结果中显示您的网站名称。
请改用
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Your site name",
"url": "https://www.example.com/"
}
</script>
Search Console · 2015–2019
Search Console 关于 Change of Address 工具的帮助文档中,以从 http://fish.example-petstore.com 迁移到 http://example.com 或 http://example-petstore.com 为例。该工具只能在两个网域级资源(Domain property 或 https://example.com/ 这样的根 URL 前缀资源)之间使用,且二者须由同一个 Google 账号拥有,因此必须将示例地址替换为您自己的地址,包括规范网址、站点地图和 hreflang 中的地址。
API · 脚本
发往 api.example-petstore.com/v2/pet 等地址的请求,来自将此域名用作基础 URL 的代码。这些请求会收到 410 Gone 以及 JSON 格式的说明。此域名与
petstore.swagger.io 上的 Swagger Petstore 示例 API 无关。
请改用:从配置中读取地址
# Python: read the address from configuration, not from the code
import os
BASE_URL = os.environ["API_BASE_URL"]
// JavaScript / Node.js
const baseURL = process.env.API_BASE_URL;
// PHP 8
$baseUrl = getenv('API_BASE_URL') ?: throw new RuntimeException('API_BASE_URL is not set');
example-petstore 和 example-commerce-host。| 位置 | 您看到的内容 | 处理方法 |
|---|---|---|
Classic Analytics(ga.js)或 Universal Analytics(analytics.js) | _setDomainName、_setAllowLinker、_link、_linkByPost 或 ga('linker:autoLink', …) 中包含这些名称之一 | 删除整段旧代码(包括 onclick/onsubmit 处理程序和示例链接),然后安装适用于 Google Analytics 4 的 Google 代码。标准 Universal Analytics 媒体资源已于 2023年7月1日停止处理数据(360 媒体资源于 2024年7月1日)。 Universal Analytics has been replaced |
| Google Analytics 4 | 域名列表中出现这些名称,或报告中出现自我引荐 | Admin › Data collection and modification › Data streams › 您的网站数据流 › Configure tag settings › Configure your domains:只保留您自己的域名。将多余的引荐来源添加到 List unwanted referrals 下。 Set up cross-domain measurement |
代码中的 Google 代码(gtag.js) | gtag('set', 'linker', {'domains': ['example-petstore.com']}) 或硬编码的 cookie_domain | 在 linker.domains 中填写您自己的域名;省略 cookie_domain,或将其设为 'auto'。 Measure activity across multiple domains |
| Google Tag Manager | Google 代码中的域名列表,或旧的自定义 HTML 代码 | Google tags › 您的代码 › Show all › Configure your domains / List unwanted referrals;在自定义 HTML 代码和变量中搜索旧代码段;使用 Preview 进行测试。 Google tag settings in Tag Manager |
| 您自行添加的结构化数据(JSON-LD、微数据) | "url": "https://www.example-petstore.com/",或指向 query. 或 host.example-petstore.com 的 target | 将您自己的首页用作 url,将您自己的网站名称用作 name。SearchAction 可以删除。请使用 Schema Markup Validator 进行检查(富媒体搜索结果测试不涵盖网站名称)。 Site names in Google Search |
| Yoast SEO | 网站架构中的搜索操作 | Yoast 使用您自己的网站地址。如需删除:add_filter( 'disable_wpseo_json_ld_search', '__return_true' ); Yoast: SearchAction |
| Rank Math | 网站架构中的搜索操作 | Rank Math 使用您自己的网站地址。如需删除,请使用过滤器 rank_math/json_ld/disable_search。 Rank Math: sitelinks search box schema |
| All in One SEO | 网站架构中的搜索操作 | Search Appearance › Advanced › 关闭“Enable Sitelinks Search Box”。 AIOSEO: sitelinks search box |
| SEOPress | — | 搜索框标记已在 8.4 版(2024年12月)中移除;请更新该插件。 SEOPress changelog |
| Search Console | 网站迁移、规范网址、站点地图或 hreflang 中使用了示例地址 | Change of Address 工具只能在同一 Google 账号拥有的两个网域级资源之间使用。301 重定向请至少保留一年,最好永久保留(该工具的迁移信号本身持续 180 天)。请更正您自己网站上的规范网址、站点地图和 hreflang,然后重新提交站点地图。 Change of Address tool |
| API 客户端、SDK 和脚本 | 基础 URL 或主机使用了这些名称之一,通常还带有 Authorization 标头 | 将基础 URL 移至配置(环境变量或配置文件)中,并将其指向真实服务。撤销所有曾发送到此处的密钥。 OWASP Secrets Management |
在您的项目(包括模板和主题文件)中搜索这两个名称:
grep -rniE "example-(petstore|commerce-host)\.com" .
另请检查代码中看不到的地方:首页渲染后的 HTML(查看源代码并搜索)、Google Tag Manager 容器中的自定义 HTML 代码和变量、CMS 或主题中的“自定义 head 代码”字段,以及分析和 SEO 插件的设置。
一个示例域名。Google 在 Google Analytics、Search Console 和结构化数据相关文档中用它代指您自己的网站,各类教程又从中照搬了它。此域名上没有商店、API 或搜索功能。
不是。这里不出售任何商品,也没有产品、账号或订单。此域名上的每个地址都显示本页面。
示例中的某个地址被复制后一直没有替换:可能是旧跟踪代码段中的链接、结构化数据、Search Console 设置,或 API 客户端的基础 URL。请将其替换为您自己的域名或真实服务的地址。
请将其视为已泄露。在签发它的服务中将其撤销,签发新的凭据并将其保存在代码之外,更正地址,然后检查该服务的访问日志。只有签发密钥的服务才能撤销它。
在 Google 2014–2015 年的站点链接搜索框示例中,它是虚构的宠物商店搜索结果页地址。Google 可以在网站的搜索结果下方显示一个搜索框;搜索字词会替换 {search_term_string},然后将搜索者引导至该地址。这个地址从未真实存在过,而 Google 已于 2024年11月停止显示该搜索框。
2009年3月。当时 Google 重新整理了 Classic Analytics 文档,关于跟踪多个域名的指南首次引入了这家宠物商店及其购物车。该指南的更早版本并未使用它。
无关。Swagger Petstore 是位于 petstore.swagger.io 的 OpenAPI 示例 API。example-petstore.com 则来自 Google 的分析和 SEO 文档。
姊妹示例域名:在同一组跨域名示例中代表第三方购物车,例如 example-commerce-host.com/example-petstore。请参阅 example-commerce-host.com。