google-analytics - PhantomJS - Google Analytics 中的错误语言(接受语言)
问题描述
我正在 Ubuntu 和 Google Analytics 上使用 PhantomJS / CasperJS 运行一些测试,并且我在 GA 中遇到问题,无法正确识别我在 HTTP 请求标头中发送的语言设置。
无论我在 Accept-Language 标题中输入什么,我最终都会将 GA 分类为“c”。
我确定我的 Accept-Language 标题是正确的,这是一个示例:
ACCEPT-ENCODING:gzip, deflate
CONNECTION:Keep-Alive
ACCEPT-LANGUAGE:en-US
USER-AGENT:Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
ACCEPT:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
经过长时间的反复试验,我发现 C 实际上是 Ubuntu 内部 LANG 环境变量的默认设置:
LANG=C.UTF-8
事实上,我可以通过在命令行中使用以下命令更改我的 ENV 变量来影响 Google Analytics 分类:
export LC_ALL="en_US.UTF-8"
如果我只设置“export LC_LANG”或“LANGUAGE”,它就不起作用。我也不知道为什么。
但是我如何从 PhantomJS / CasperJS 内部控制这个设置?我不能/不想为从 CLI 运行的每个 PhantomJS 更改我的 ENV 变量,我一次大量测试多种语言。
有没有人经历过这个并且可以提供帮助?
解决方案
我设法找到了解决这个问题的黑客解决方案。我只是使用 CLI 中的以下命令:
$ LC_ALL=en-gb phantomjs script.js
并将接受语言正确传递给谷歌分析。
我认为 CasperJS 请求标头正确传递给 PhantomJS 存在问题。
推荐阅读
- kubernetes - `ServiceEntry` 可以仅应用于一项服务吗?
- json - 如何使用 jsonpath 解析 json 字符串?
- python - 如何在 html 字符串中使用 findall?
- mysql - MySQL - 数字列 desc 索引,最后显示 Null
- angular - 权限被拒绝使用 Firebase 身份验证登录
- python - 仅检测对 discord.py 中机器人发送的特定消息的反应
- azure-devops - 通过 OpenVpn 配置 CD
- r - 带引号的处理程序表达式的观察事件
- c# - 当视图聚焦在 UWP 上时,不应用 BackgroundColor
- node.js - UnhandledPromiseRejectionWarning: TypeError: model.byid is not a function