ideasonpurpose/wp-google-analytics

添加 wp_head 动作以注入 Google 分析代码片段

v1.1.2 2023-08-18 19:37 UTC

README

版本:1.1.2

Packagist codecov Coverage Status Code Climate maintainability styled with prettier

此包为 WordPress 网站添加 Google 标签管理器。项目目标是帮助从收集的统计数据中去除开发噪音。仅在未登录用户的情况下注入跟踪片段,对于将 WP_DEBUG 设置为 true 的开发任务,将使用回退 UA-xxxx 跟踪 ID。

is_user_logged_in() 为 false 时,将只注入 Google 标签管理器代码。我们希望收集访客流量,而不是作者或开发者的流量。对于流量较低的网站,这可以真正地带来差异。

is_user_logged_in() 为 false 时,将注入主要或回退跟踪 ID 的跟踪代码。此包假定当 WP_DEBUG 为 true 时,网站处于开发状态,应使用回退跟踪 ID。否则,在没有用户登录且 WP_DEBUG 未设置或为 false 的情况下,将提供主要跟踪 ID。

用法

此库可在 Packagist 上找到,只需在 composer.json 中引入它即可将其添加到项目中,或告诉 Composer 加载该包

$ composer require ideasonpurpose/wp-google-analytics

然后使用主要和回退跟踪 ID 初始化代码

use IdeasOnPurpose\WP\GoogleAnalytics;

new GoogleAnalytics("G-XYZ456", "G-JKL890");

为了未来的维护,将跟踪 ID 存储在描述性变量中是一个好主意

$client_prod_id = "G-XYZ456";
$local_dev_id = "G-JKL890";
new GoogleAnalytics($client_prod_id, $local_dev_id);

向后兼容 GA4 和通用分析

在某些情况下,Google 推荐将两个代码片段注入到页面中,一个用于旧的通用分析属性,然后是带有新 GA4 属性 ID 的副本。

分析 ID 参数可以是一个字符串或字符串数组。当提供多个 ID 时,将为每个 ID 注入一个片段

new GoogleAnalytics(["UA-012345-1", "G-XYZ456"], $local_dev_id);

将生成类似以下内容

<!-- Google tag (gtag.js) -->
<script async src="https://#/gtag/js?id=UA-012345-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-012345-1');
</script>

<!-- Google tag (gtag.js) -->
<script async src="https://#/gtag/js?id=G-XYZ456"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-XYZ456');
</script>