首页 > 解决方案 > 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 变量,我一次大量测试多种语言。

有没有人经历过这个并且可以提供帮助?

标签: google-analyticshttp-headersphantomjscasperjsheadless-browser

解决方案


我设法找到了解决这个问题的黑客解决方案。我只是使用 CLI 中的以下命令:

$ LC_ALL=en-gb phantomjs script.js

并将接受语言正确传递给谷歌分析。

我认为 CasperJS 请求标头正确传递给 PhantomJS 存在问题。


推荐阅读