nystudio107/instantanalytics

此包的最新版本(1.1.14)没有提供许可证信息。

Instant Analytics 允许您使用 Google Analytics 跟踪其他无法跟踪的资产和事件,并消除了对 JavaScript 跟踪的需求。

资助包维护!
khalwat

安装: 506

依赖项: 0

建议者: 0

安全: 0

星星: 101

观察者: 10

分支: 4

开放问题: 5

类型:craft-plugin

1.1.14 2018-01-08 20:20 UTC

This package is auto-updated.

Last update: 2024-08-29 04:37:31 UTC


README

No Maintenance Intended

已弃用

此 Craft CMS 2.x 插件不再受支持,但它完全功能正常,您可以按需继续使用它。许可协议还允许您将其分支并按需要修改,以支持旧版本。

此插件的 Craft CMS 3.x 版本可在此处找到:craft-instantanalytics,并且也可以通过 Craft 插件商店在 Craft CP 中安装。

Craft CMS 的 Instant Analytics 插件

Instant Analytics 将完整的 Google Analytics 支持带到您的 Twig 模板中,并自动与 Google Enhanced Ecommerce 集成 Craft Commerce。

相关:Craft 3.x 的 Instant Analytics

Screenshot

安装

要安装 Instant Analytics,请按照以下步骤操作

  1. 下载并解压缩文件,然后将 instantanalytics 目录放入您的 craft/plugins 目录
  2. -或者- 直接在 craft/plugins 文件夹中执行 git clone https://github.com/nystudio107/instantanalytics.git。然后您可以使用 git pull 更新它
  3. -或者- 通过 Composer 安装,执行 composer require nystudio107/instantanalytics
  4. 在 Craft 控制面板的“设置”>“插件”下安装插件
  5. 插件文件夹应命名为 instantanalytics,以便 Craft 能够识别它。GitHub 最近开始将 -master(分支名称)附加到 zip 文件下载的文件夹名称中。

Instant Analytics 在 Craft 2.4.x、Craft 2.5.x 和 Craft 2.6.x 上运行。它需要至少 PHP 5.5 或更高版本才能运行。

注意:Instant Analytics 的 1.1 版本与 1.0.x 版本相比有破坏性的 API 变更。您需要在模板中添加 {% hook 'iaSendPageView' %} 以发送 Google Analytics 数据。此外,sendEventsendPageView Twig 标签已被弃用;分别使用 eventAnalyticspageViewAnalytics 来返回 Analytics 对象(见下文)。

Instant Analytics 概述

Instant Analytics 将完整的 Google Analytics 支持带到您的 Twig 模板中,并自动与 Google Enhanced Ecommerce 集成 Craft Commerce。

Instant Analytics 还允许您使用 Google Analytics 跟踪其他无法跟踪的资产和事件,并消除了对 JavaScript 跟踪的需求。

您不需要在页面上包含典型的 Google Analytics 脚本标签,而是 Instant Analytics 将在您的前端模板通过官方支持的 Google Measurement Protocol 渲染时发送页面视图。

您还可以在 Google Analytics 中跟踪资产/媒体视图,无论是作为页面视图还是作为事件。这使您能够跟踪其他无法跟踪的事情,例如单个 RSS 源访问、图片、PDF 文件等。

Instant Analytics 在演示网站 Brads for Men 上实现

用例

简单页面跟踪

如果您只想将简单的页面跟踪数据发送到 Google Analytics,Instant Analytics 会自动为您完成。Instant Analytics 使用 Google Measurement Protocol 以与 Google Analytics Tracking Code JavaScript 标签相同的方式将页面视图发送到您的 Google Analytics 账户。

此外,即时分析会在您的模板中注入一个instantAnalytics对象,您可以按照自己的需求对其进行操作,并将Google分析属性添加到与您的PageView一起发送的内容中。

它还有一个额外的优点,即无需在客户端前端加载任何JavaScript即可完成此操作,这带来了以下好处:

  • 您的页面将在浏览器中更快地渲染,不会仅仅为了PageView跟踪而加载外部资源
  • 即使客户端的浏览器禁用或阻止了JavaScript,页面仍然会被跟踪
  • JavaScript错误不会导致Google分析数据无法收集

与Google增强型电商的Craft Commerce集成

如果您正在使用Craft Commerce,即时分析会自动识别并为此操作发送Google增强型电商数据:

  • 加入购物车 - 当有人将Craft Commerce商店中的商品添加到购物车时。这将包括添加到购物车的产品或变体的数据。
  • 从购物车中删除 - 当有人从Craft Commerce商店的购物车中删除商品时(需要Craft Commerce 1.2.x或更高版本)。这将包括从购物车中删除的产品或变体的数据。
  • 购买 - 当有人完成Craft Commerce商店的购买时。这将包括添加到购物车的所有行项目,以及事务ID、收入、税费、运费和使用的优惠券代码(如有)。

此外,您还可以在模板中添加简单的Twig标签来跟踪产品印象、产品详细页面查看,并跟踪结账过程的每个步骤。在Google分析中,您将能够查看Craft Commerce商店销售的详细信息以及其他有用的信息,例如客户在结账过程中放弃购物车的地方。

跟踪资产/资源

即时分析允许您跟踪通常无法跟踪的资产/资源。例如,您可能有一组PDF文档,您想知道它们何时被查看。

使用简单的{{ pageViewTrackingUrl(myAsset.url, myAsset.title) }}{{ eventTrackingUrl(myAsset.url, myAsset.title, "action", "label", "value") }}Twig函数,即时分析将生成一个公开URL,该URL将为资产/资源在Google分析中注册一个PageView,然后显示或下载资产/资源。

跟踪RSS源

由于RSS源通常由不是浏览器的客户端消费,因此获取RSS源的跟踪统计信息可能特别困难,因为这些客户端不会运行JavaScript跟踪代码。

使用即时分析,如果您的RSS源是Twig模板,访问将被自动跟踪。此外,您还可以使用{{ pageViewTrackingUrl(myAsset.url, myAsset.title) }}{{ eventTrackingUrl(myAsset.url, myAsset.title, "action", "label", "value") }}Twig函数来跟踪Google分析中个别节目的访问。

通过Twig或插件进行自定义跟踪

如果您的需求更加专业化,即时分析将为您提供Twig模板或插件的完全访问权限,并允许您发送任意Google分析跟踪数据到Google分析。

您可以从自定义PageView到复杂的Google增强型电商跟踪做任何事情

配置即时分析

安装即时分析后,您将看到欢迎屏幕。单击<强>开始以配置即时分析

  • <强>Google分析跟踪ID:在此处输入您的Google分析跟踪ID。只需输入ID,例如:UA-XXXXXX-XX,而不是整个脚本代码。
  • <强>从PageView URL中删除查询字符串:如果此设置开启,则查询字符串将在发送到Google分析之前从PageView URL中删除。例如:/some/path?token=1235312将发送为仅为/some/path
  • 自动发送“添加到购物车”事件:如果此设置开启,当商品添加到Craft Commerce购物车时,Google Analytics增强电子商务事件将自动发送。
  • 自动发送“从购物车移除”事件:如果此设置开启,当商品从Craft Commerce购物车中移除时,Google Analytics增强电子商务事件将自动发送。
  • 自动发送“购买完成”事件:如果此设置开启,购买完成后,Google Analytics增强电子商务事件将自动发送。
  • 电子商务产品类别字段:选择用于产品或变体字段布局中的产品类别字段,以用于Google Analytics增强电子商务的产品类别字段。
  • 电子商务产品品牌字段:选择用于产品或变体字段布局中的产品品牌字段,以用于Google Analytics增强电子商务的产品品牌字段。

如果您已安装SEOmatic插件,Instant Analytics将自动从其中抓取您的Google Analytics跟踪ID:

注意:Instant Analytics可与传统的Google Analytics跟踪代码JavaScript标签一起使用;这不是非此即彼,它们可以共存。Instant Analytics只是将相同的数据以不同的方式发送到Google Analytics。

但是,为了避免重复发送数据,如果您使用Instant Analytics发送PageView数据,您应该通过以下方式关闭JavaScript自动发送PageViews:

  • SEOmatic中关闭自动发送Google Analytics PageView
  • 如果您没有使用SEOmatic,请从您的Google Analytics跟踪代码JavaScript标签中删除ga('send', 'pageview');这一行

然后您仍然可以使用ga()调用将事件发送到Google Analytics。或者,如果您不通过JavaScript发送事件,您可以从页面上完全删除Google Analytics标签/JavaScript。

通过config.php文件进行自定义

Instant Analytics具有许多其他配置选项,可以通过config.php文件按环境进行自定义。不要编辑此文件,而是将其复制到craft/config作为instantanalytics.php(重命名它)并在此处进行更改。

使用Instant Analytics

简单页面跟踪

一旦您已输入您的Google Analytics跟踪ID,您只需在您的前端模板中添加对{% hook 'iaSendPageView' %}的调用,以将PageView跟踪发送到Google Analytics。我们建议您在扩展其他模板的layout.twig模板的底部块中这样做,在</body>标签之前,如下所示

{% block analytics %}
    {% hook 'iaSendPageView' %}
{% endblock %}

就这么多!一旦您添加了此钩子,Instant Analytics就会开始将PageViews发送到Google Analytics。如果没有以下情况,它不会发送任何Google Analytics数据:

  • 您未输入有效的Google Analytics跟踪ID:
  • 您正在查看实时预览模板
  • 请求是CP或控制台请求
  • 如果在config.php文件中将sendAnalyticsData设置为false

默认情况下,用于您页面的“标题”是当前模板路径;如果您已安装SEOmatic,Instant Analytics将自动从其中抓取当前页标题。

Instant Analytics还将自动解析并设置任何UTM查询字符串参数,例如utm_campaignutm_sourceutm_mediumutm_content,在分析对象中。

高级页面跟踪

从这里开始乐趣。即时分析将一个 instantAnalytics 对象注入到您的模板中,就像Craft注入一个 entry 对象或Craft Commerce注入一个 product 对象一样。这是将要发送到Google Analytics的 {% hook 'iaSendPageView' %} 的实际 Analytics 对象。

您可以根据需要操作这个对象,添加要随页面视图发送到Google Analytics的数据。

例如,假设您想添加一个 Affiliation

{% do instantAnalytics.setAffiliation("Brads for Men") %}

或者,也许对于特定的页面,您想更改Google Analytics使用的 Tracking ID

{% do instantAnalytics.setTrackingId("UA-26293624-12") %}

或者同时进行这两项操作

{% do instantAnalytics.setAffiliation("Brads for Men").setTrackingId("UA-26293624-12") %}

您可以为Instant Analytics使用的PHP Google Analytics测量协议库中定义的任何属性添加或更改属性。

默认情况下,注入的 instantAnalytics 对象包含以下信息

  • instantAnalytics.setProtocolVersion('1')
  • instantAnalytics.setTrackingId(YOUR_TRACKING_ID)
  • instantAnalytics.setIpOverride($_SERVER['REMOTE_ADDR'])
  • instantAnalytics.setUserAgentOverride($_SERVER['HTTP_USER_AGENT'])
  • instantAnalytics.setDocumentReferrer($_SERVER['HTTP_REFERER'])
  • instantAnalytics.setClientId(CID)
  • instantAnalytics.setDocumentPath(craft.request.url)
  • instantAnalytics.setDocumentTitle(TEMPLATE_PATH)

如果安装了SEOmatic插件,则它将用于设置标题

  • instantAnalytics.setDocumentTitle(seomaticMeta.seoTitle)

如果有 gclid cookie(用于Google AdWords跟踪),这也会被设置

  • instantAnalytics.setGoogleAdwordsId(GCLID)

Craft Commerce与Google增强电子商务跟踪

如果您正在使用Craft Commerce,即时分析会自动识别并为此操作发送Google增强型电商数据:

  • 加入购物车 - 当有人将Craft Commerce商店中的商品添加到购物车时。这将包括添加到购物车的产品或变体的数据。
  • 从购物车中删除 - 当有人从Craft Commerce商店的购物车中删除商品时(需要Craft Commerce 1.2.x或更高版本)。这将包括从购物车中删除的产品或变体的数据。
  • 购买 - 当有人完成Craft Commerce商店的购买时。这将包括添加到购物车的所有行项目,以及事务ID、收入、税费、运费和使用的优惠券代码(如有)。

您只需在您的Google Analytics管理区域中为您的网站属性启用增强电子商务即可

Screenshot

就这样!它会自动工作。除了即时分析执行的基礎自动跟踪外,您还可以使用 instantAnalytics 对象将其他数据发送到Google Analytics增强电子商务。

  • {% do instantAnalytics.addCommerceProductImpression(PRODUCT_VARIANT, INDEX, LIST_NAME, LIST_INDEX) %} - 这将为给定的Craft Commerce ProductVariant(您可以在 PRODUCT_VARIANT 中传递任一)添加一个 印象INDEX 必须是1-200之间的数字,表示该产品在产品列表中的位置。这应在显示多个产品的产品列表页面上使用,以指示用户已看到特定产品。 LIST_NAMELIST_INDEX 是可选的;它们允许您设置产品列表名称以及该列表的索引,该索引是一个1-200之间的数字,并且应对于列表是唯一的。如果未指定,则 LIST_NAME 默认为 defaultLIST_INDEX 默认为 1
  • {% do instantAnalytics.addCommerceProductDetailView(PRODUCT_VARIANT) %} - 这将为给定的Craft Commerce ProductVariant(您可以在 PRODUCT_VARIANT 中传递任一)添加一个 产品详细视图。这应在用户查看产品详细视图时使用。
  • {% do instantAnalytics.addCommerceCheckoutStep(CART, STEP, OPTION) %} - 这将为给定的Craft Commerce CART(通过 craft.commerce.cart 获取)添加一个 结账步骤STEP 参数允许您指定您正在进行的结账过程中的步骤,而 OPTION 参数是您可以选择与这个结账步骤关联的附加信息,例如: Shipping InfoVISA

您可以在您的Google Analytics管理区域中为您的网站属性设置每个结账步骤的名称。

Screenshot

一旦您在模板中使用这些标记,Google Analytics增强电子商务将能够为您提供有关结账过程中人们在哪个步骤放弃购物车、人们查看哪些产品的详细视图等信息的扩展分析。

Screenshot

除了预期的销售数据外

Screenshot

发送事件

您可以通过以下任一方式获取预加载以向Google Analytics发送事件的 Analytics 对象

{% set myAnalytics = eventAnalytics(CATEGORY, ACTION, LABEL, VALUE) %}
-OR-
{% set myAnalytics = craft.instantAnalytics.eventAnalytics(CATEGORY, ACTION, LABEL, VALUE) %}

您可以根据需要定义CATEGORYACTIONLABELVALUE;您可以为应用程序提供任何有意义的 数据,并在Google Analytics中查看它。有关更多信息,请参阅事件跟踪

默认情况下,注入的 instantAnalytics 对象包含以下信息

  • myAnalytics.setProtocolVersion('1')
  • myAnalytics.setTrackingId(YOUR_TRACKING_ID)
  • myAnalytics.setIpOverride($_SERVER['REMOTE_ADDR'])
  • myAnalytics.setUserAgentOverride($_SERVER['HTTP_USER_AGENT'])
  • myAnalytics.setDocumentHostName($_SERVER['SERVER_NAME'])
  • myAnalytics.setDocumentReferrer($_SERVER['HTTP_REFERER'])
  • myAnalytics.setClientId(CID)
  • myAnalytics.setEventCategory(CATEGORY)
  • myAnalytics.setEventAction(ACTION)
  • myAnalytics.setEventLabel(LABEL)
  • myAnalytics.setEventValue(VALUE)

如果有 gclid cookie(用于Google AdWords跟踪),这也会被设置

  • myAnalytics.setGoogleAdwordsId(GCLID)

您可以根据需要操作myAnalytics对象,添加或更改Instant Analytics使用的PHP Google Analytics度量协议库中定义的任何属性。

但是,除非您通过以下方式告诉它,否则事件不会发送到Google Analytics

{% do myAnalytics.sendEvent() %}

一个完整的示例可能是

{% set myAnalytics = eventAnalytics('UX', 'View Ad', entry.someAdName, entry.someImpressions) %}
{% do myAnalytics.setAffiliation(entry.someAffiliation).sendEvent() %}

跟踪资产/资源

Instant Analytics允许您通过提供用于前端模板的跟踪URL来跟踪通常无法跟踪的资产/资源。

您可以通过以下方式将其作为页面视图跟踪:

{{ pageViewTrackingUrl(URL, TITLE) }}
-OR-
{{ craft.instantAnalytics.pageViewTrackingUrl(URL, TITLE) }}

或者,您也可以通过以下方式将其作为事件跟踪:

{{ eventTrackingUrl(URL, CATEGORY, ACTION, LABEL, VALUE) }}
-OR-
{{ craft.instantAnalytics.eventTrackingUrl(URL, CATEGORY, ACTION, LABEL, VALUE) }}

这些可以围绕任何URL包装,因此您可以将跟踪URL包装在图像、PDF或外部链接文件周围……等等。

当点击链接时,Instant Analytics会将跟踪页面视图或事件发送到Google Analytics,然后无缝访问原始URL。

Instant Analytics生成的URL看起来像这样

http://yoursite.com/instantAnalytics/pageViewTrack/FILENAME.EXT?url=XXX&title=AAA
-OR-
http://yoursite.com/instantAnalytics/eventTrack/FILENAME.EXT?url=XXX&eventCategory=AAA&eventAction=BBB&eventLabel=CCC&eventValue=DDD

这样做是为了使URL可以直接用于媒体对象URL的RSS feeds,这些RSS feeds要求文件名在URL路径中。

通过Twig或插件进行自定义跟踪

如果您有更特殊的需求,可以使用Instant Analytics构建任意的Google Analytics数据包。要获取Analytics对象,请执行以下操作

Twig

{% set myAnalytics = craft.instantAnalytics.analytics() %}

通过插件使用PHP

$myAnalytics = craft()->instantAnalytics->analytics();

在任何情况下,您都可以通过PHP Google Analytics度量协议库更改任何参数

$myAnalytics->setProtocolVersion('1')
    ->setTrackingId(YOUR_TRACKING_ID)
    ->setIpOverride($_SERVER['REMOTE_ADDR'])
    ->setAsyncRequest(false)
    ->setClientId(CID);
    ->setGoogleAdwordsId(GCLID);

然后,您可以通过PHP Google Analytics度量协议库更改任何参数,以满足您的需求

以下是一个简单示例,其中我们发送特定页面的页面视图(在添加联盟关系之后)

Twig

{% set myAnalytics = craft.instantAnalytics.analytics() %}
{% do myAnalytics.setDocumentPath('/some/page').setAffiliation('nystudio107').sendPageview() %}

通过插件使用PHP

$myAnalytics = craft()->instantAnalytics->analytics();
$myAnalytics->setDocumentPath('/some/page')
    ->setAffiliation('nystudio107')
    ->sendPageview();

在这种情况下,没有限制,您可以从简单的页面视图到复杂的Google增强型电子商务分析跟踪做任何事情。

Instant Analytics路线图

要完成的事情和潜在功能的想法

  • 支持如退款之类的Craft Commerce数据

nystudio107提供