PhantomJS — неправильный язык в Google Analytics (Accept-Language)

#google-analytics #http-headers #phantomjs #casperjs #headless-browser

#google-analytics #http-заголовки #phantomjs #casperjs #безголовый браузер

Вопрос:

Я запускаю некоторые тесты с PhantomJS / CasperJS в Ubuntu и Google Analytics, и у меня возникают проблемы с 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 фактически был настройкой по умолчанию для переменной LANG env внутри самой Ubuntu:

 LANG=C.UTF-8
  

На самом деле я могу повлиять на классификацию Google Analytics, изменив свои переменные ENV, используя следующую команду из командной строки:

 export LC_ALL="en_US.UTF-8"
  

Это не сработает, если я установлю только «экспортировать LC_LANG» или «ЯЗЫК». Я тоже не уверен, почему.

Но как мне управлять этим параметром изнутри PhantomJS / CasperJS?Я не могу / не хочу менять свои переменные ENV для каждого запуска PhantomJS из CLI, я тестирую сразу несколько языков в больших количествах.

Кто-нибудь сталкивался с этим и может помочь?

Ответ №1:

Мне удалось найти хакерское решение этой проблемы. Я просто использую следующую команду из командной строки:

 $ LC_ALL=en-gb phantomjs script.js
  

и это правильно передает Accept-Language в Google Analytics.

Я думаю, что есть проблема с корректной передачей заголовков запросов CasperJS в PhantomJS.