angular-google-analytics基础配置全解析:setAccount与Provider方法链式调用的10个核心技巧
【免费下载链接】angular-google-analyticsGoogle Analytics tracking for your AngularJS apps项目地址: https://gitcode.com/gh_mirrors/an/angular-google-analytics
angular-google-analytics 是一个专为 AngularJS 应用设计的 Google Analytics(谷歌分析)追踪模块,只需几行代码就能完成事件、页面、电商等埋点。而setAccount 配置与AnalyticsProvider 方法链式调用正是它最核心、也最容易被新手忽略的两块能力。本文用 10 个实用技巧,带你把 angular-google-analytics 的基础配置一次讲透,从单一账号到多账号、从路由追踪到电商埋点,读完即可直接上手。
一、angular-google-analytics 是什么?为什么值得用?
简单说,它把繁琐的ga()底层调用封装成了 AngularJS 友好的服务:Analytics.trackEvent('video', 'play', 'django.mp4')即可完成一次事件上报,还支持自动页面追踪、电商(ecommerce.js)、增强电商(ec.js)、跨域、离线模式、调试模式等高级能力。
它同时支持经典 ga.js 和通用 analytics.js 两套方案,默认使用 universal analytics。所有配置都通过AnalyticsProvider在config阶段完成,这也是本文的主角。
二、第一步:安装与引入 angular-google-analytics
推荐用包管理器安装,简单快捷:
# Bower bower install angular-google-analytics # NPM npm i angular-google-analytics # Nuget nuget install angular-google-analytics安装后在页面引入脚本,并声明模块依赖:
<script src="bower_components/angular-google-analytics/dist/angular-google-analytics.js"></script>var myApp = angular.module('myModule', ['angular-google-analytics']);然后在config阶段注入AnalyticsProvider,就可以开始配置了。
三、技巧 1:setAccount 配置单一账号的最简写法
最常见也最基础的写法,直接传入跟踪 ID 字符串:
myApp.config(['AnalyticsProvider', function (AnalyticsProvider) { AnalyticsProvider.setAccount('UA-XXXXXXX-X'); // 换成你自己的跟踪 ID }]);源码中setAccount支持四种入参:字符串、对象、数组,以及undefined/false(用于清空账号)。传入字符串时,内部会自动补全为{ tracker: 'UA-XXXXXXX-X', trackEvent: true },保证事件追踪默认可用。相关实现可参考index.js中的setAccount定义。
四、技巧 2:setAccount 对象配置:fields、set 与匿名 IP
当需要精细控制单个跟踪器时,传入对象即可:
AnalyticsProvider.setAccount({ tracker: 'UA-12345-12', name: 'tracker1', fields: { cookieDomain: 'foo.example.com', cookieName: 'myNewName', cookieExpires: 20000 }, crossDomainLinker: true, crossLinkDomains: ['domain-1.com', 'domain-2.com'], displayFeatures: true, enhancedLinkAttribution: true, set: { forceSSL: true }, trackEvent: true, trackEcommerce: true });这里有几个值得记住的细节:
fields:对应ga('create', ..., fields)的参数,比如 cookie 相关配置。set:会在create之后立即执行一组set命令,例如forceSSL: true。- 匿名 IP 需求(GDPR/隐私合规)也可以放在
set里:set: { anonymizeIp: true }。 select:一个可选函数,返回false时该账号不会参与某次命令执行,可用于按需过滤。
五、技巧 3:setAccount 数组配置:一次管理多个跟踪器
需要同时向多个账号上报数据?传入数组即可,仅 universal analytics 支持:
AnalyticsProvider.setAccount([ { tracker: 'UA-12345-12', name: 'tracker1' }, { tracker: 'UA-12345-34', name: 'tracker2' } ]);每个账号对象缺省的属性会自动补齐默认值。后续调用Analytics.trackPage()时,命令会以tracker1.send、tracker2.send的形式分发到每个跟踪器。注意:经典 ga.js 不支持多账号,只使用第一个跟踪器。
六、技巧 4:Provider 方法链式调用,一次写完全部配置
这是 angular-google-analytics 最舒服的设计:所有配置方法都返回 provider 对象本身,因此可以无限链式调用,把配置压缩成一段代码:
myApp.config(['AnalyticsProvider', function (AnalyticsProvider) { AnalyticsProvider .setAccount('UA-XXXXXXX-X') .useECommerce(true, true) .setCurrency('EUR') .trackPages(true) .logAllCalls(true) .enterTestMode(); }]);从setAccount、trackPages到useECommerce、logAllCalls,每个方法都以return this结尾(见index.js中 provider 的配置方法定义),所以你可以按自己的喜好排序组合,代码更整洁,也更容易维护。
七、技巧 5:电商追踪配置:useECommerce 与 setCurrency
做商城类应用,电商埋点必不可少:
// 经典电商 (ecommerce.js) AnalyticsProvider.useECommerce(true, false); // 增强电商 (ec.js),仅 universal analytics AnalyticsProvider.useECommerce(true, true); // 设置货币,默认 USD,使用 ISO 货币代码 AnalyticsProvider.setCurrency('CDN');使用增强电商时,经典电商模块会被自动禁用(这是 Google Analytics 的硬性要求)。配置好之后,就能调用Analytics.addProduct()、Analytics.trackTransaction()等增强电商 API 上报商品与订单数据。
八、技巧 6:路由与页面追踪配置的进阶技巧
默认情况下页面路由变化会自动上报。下面这些配置能帮你精准控制上报行为:
AnalyticsProvider // 是否追踪所有路由变化(默认 true) .trackPages(true) // 是否携带 URL 查询参数(默认 false) .trackUrlParams(true) // 忽略首次页面加载(降低异常跳出率) .ignoreFirstPageLoad(true) // URL 前缀,应用不在根目录时很有用 .trackPrefix('my-application') // 修改页面事件名,配合 ui-router 用 $stateChangeSuccess .setPageEvent('$stateChangeSuccess') // 正则清洗 URL,例如去掉末尾的数字 ID .setRemoveRegExp(/\/\d+?$/);更灵活的做法是开启readFromRoute(true)(需 ngRoute),在$routeProvider的每个路由上直接指定pageTrack字段,还能用doNotTrack: true排除某些页面,减少重定向带来的跳出率虚高。
九、技巧 7:展示功能、增强链接归因与跨域配置
如果需要在 Google Analytics 中使用展示广告报表、链接归因或跨域统计,这三个方法配合使用:
AnalyticsProvider // 开启展示功能模块 .useDisplayFeatures(true) // 开启增强链接归因 .useEnhancedLinkAttribution(true) // 开启跨域链接并配置关联域名 .useCrossDomainLinker(true) .setCrossLinkDomains(['domain-1.com', 'domain-2.com']);在 universal analytics 下,这些设置会作为默认值应用到所有账号;单个账号对象也可以各自覆盖(例如displayFeatures: false)。
十、技巧 8:手动控制脚本注入:delayScriptTag 高级用法
默认情况下,模块实例化时会自动注入 GA 脚本并创建跟踪器。但如果你需要「用户确认后才开始统计」,可以延迟注入:
AnalyticsProvider.delayScriptTag(true);随后在合适的时机手动执行:
Analytics.registerScriptTags(); // 注入 GA 脚本 Analytics.registerTrackers(); // 创建跟踪器这个模式特别适合做用户 opt-out(拒绝追踪)或需要精确控制注入时机的场景。
十一、技巧 9:离线模式与用户退出追踪配置
混合 App、弱网环境或需要临时暂停统计时,离线模式非常好用:
// 启动即进入离线模式(会自动连带 delayScriptTag(true)) AnalyticsProvider.startOffline(true); // 运行时动态切换 Analytics.offline(true); // 进入离线,调用全部排队 Analytics.offline(false); // 恢复在线,一次性补发另外,disableAnalytics(true)可以在脚本注入前通过ga-disable-前缀彻底禁用某个账号的统计,适合已知用户拒绝追踪的场景;而离线模式更适合运行时动态控制。
十二、技巧 10:调试与测试:logAllCalls、enterTestMode 与 enterDebugMode
最后是排查问题三件套:
// 记录所有外呼调用,存到内存数组 Analytics.log 中 AnalyticsProvider.logAllCalls(true); // 进入测试模式:跳过脚本注入,为单测提供 $window.ga() AnalyticsProvider.enterTestMode(); // 开启调试模式,传 true 可同时开启 trace 调试 AnalyticsProvider.enterDebugMode(true);开启logAllCalls后,可以通过Analytics.log按顺序查看每次ga()调用及其参数,是定位埋点问题的利器。项目的test/unit目录下(如universal-google-analytics.js)就有大量链式配置 + 断言日志的测试范例,值得参考。
十三、常见问题与注意事项
- 版本 2.x 破坏性变更:
setCookieConfig、getCookieConfig、createAnalyticsScriptTag、createScriptTag已被移除,请使用文档中的替代方案。 - AdBlock EasyPrivacy 拦截:AdBlock 的黑名单可能拦截
angular-google-analytics.js这个文件名,如果你合并压缩脚本一般不受影响,否则建议改名。 - 别忘
pageView():修改配置或需要把设置推送给 GA 时,记得调用Analytics.pageView()触发上报。 - 本地调试域名:
setDomainName('none')可以在 localhost 环境下测试。
总结
掌握 setAccount 的三种入参(字符串、对象、数组)和 Provider 方法链式调用,你就拿下了 angular-google-analytics 配置的 80%。剩下的无非是结合业务需要,把电商、路由、跨域、离线这些「组合技」串进同一条链式调用里。从最小可用的setAccount('UA-XXXXXXX-X')开始,逐步叠加,你的 AngularJS 应用就能拥有一套完整、可控的 Google Analytics 埋点体系。
【免费下载链接】angular-google-analyticsGoogle Analytics tracking for your AngularJS apps项目地址: https://gitcode.com/gh_mirrors/an/angular-google-analytics
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考