analytical42/googleanalyticscookie

使 Google Analytics 使用服务器端 HTTP Cookie 而不是默认的 document.cookie 设置的 JavaScript Cookie。

0.1 2019-03-12 09:11 UTC

This package is auto-updated.

Last update: 2024-09-26 20:31:32 UTC


README

使 Google Analytics 使用服务器端 HTTP Cookie 而不是默认的 document.cookie 设置的 JavaScript Cookie。

背景

浏览器厂商越来越限制使用和持久化 document.cookie 设置的 Cookie 的能力。其中之一,这影响了 Google Analytics 识别和识别例如返回用户的能力。

解决方案

截至目前,设置在 HTTP 头中的第一方 Cookie 不受浏览器厂商采取的步骤的影响。因此,通过使用 HTTP Cookie,可以在 Google Analytics 中保留数据质量。此软件包就是这样做的。

该库当前通过在自定义 HTTP Only Cookie(_ga_storage)中存储 Client ID 来工作。每当用户访问网站时,库首先检查此 Cookie 中的 Client ID。如果未找到,则在默认 GA Cookie(_ga)中搜索 Client ID,如果这也未找到,则生成新的 Client ID。

然后,将 Client ID 存储在 _ga_storage Cookie 中,有效期为两年。其次,Client ID 还写入 _ga Cookie,然后由 Google Analytics 使用。

不包括的内容?

目前,不支持跨域跟踪。为了支持这一点,需要实现浏览器指纹,由于 PHP 不能读取浏览器中安装的插件,这需要使用 JavaScript,这将使实现复杂化。

安装

您可以通过 Composer 安装此软件包

$ composer require analytical42/googleanalyticscookkie

如果您的项目不使用 Composer,可以直接下载 Cookie.php 文件,将其保存到您的项目中,然后需要并实例化。

用法

默认情况下,在引导应用程序时,您可以在没有任何配置的情况下运行该软件包。只需实例化该类

$gaCookie = new Analytical42\GoogleAnalyticsCookie\Cookie;

接下来,请确保 Google Analytics 不会自动更新并覆盖 Cookie。只需使用 GTM 将 cookieUpdate 字段设置为 false。

就这样!

配置

如果需要,在实例化时可以手动设置 Cookie 名称和 Cookie 域名

$gaCookie = new Analytical42\GoogleAnalyticsCookie\Cookie( '_myGaCookieName', 'mydomain.com', true );

注意:如果您在这里设置 Cookie 名称和/或域名,您需要将相同的更改应用到您的 Google Analytics 片段实现;这里的配置不会更改 Google Analytics 的配置。

默认参数

默认情况下,该软件包将使用 Google Analytics 的默认 Cookie 名称(_ga)。此外,如果您未指定域名,则该软件包将使用 $_SERVER['HTTP_HOST'] 的值。

最后一个选项表示是否写入安全 Cookie(安全 = true,不安全 = false)。

致谢

此库中的解决方案受到以下思想、代码示例等灵感的启发

许可

MIT 许可证(MIT)

版权所有 (c) 2019 Phillip Studinski

特此授予任何人免费获得本软件及其相关文档副本(“软件”)的权利,用于处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件复制品,并允许向提供软件的人授予这样做,但受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是基于合同行为、侵权行为或其他任何原因,以及与软件或其使用或其他方式相关的事件。