Задать вопрос

Как правильно подключить Google Analytics к Angular?

Как правильно подключить Google Analytics к Angular?

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=NA-***"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'NA-***');
</script>


Или вставить в src/index.html после открывающегося head и все?
  • Вопрос задан
  • 594 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Niiix Автор вопроса
Старый вариант :)
Как всегда: "Все уже придумали за нас", но есть одно НО...
После регистрации сайта на Google Analytics, выдают script вида:
gtag.js
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=NA-***"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'NA-***');
</script>


Его вставил после открытия тега head.
Все отлично начало отслеживать, все роуты показывает в личном кабинете Google Analytics, пока все находится локально, НО как всегда не обошлось без "бока".

Я, используя Angular, пока не нашел как бороться с роутами, посте того как зальешь проект на хост. Описывал суть проблемы тут
Т.е. что бы нормально переходило по страницам, они отображаются в адресной строке через #.
Пример
www.mysite.com/#/blog

Когда я в app.modules.ts добавил строку
providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}],
То хосте роуты начали работать без проблем, но в личном кабинете Google Analytics переход по странице перестает отслеживаться, показывает что человек постоянно висит на 1-й странице.

Как быть в этой ситуации?


1. Зарегистрировался на Google Analytics, получил script:
gtag.js
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=NA-***"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'NA-***');
</script>


2. Script вставил после открытия тега head.
3. В готовый проект добавил .htaccess
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]

# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html


Все заработало, в реальном времени отслеживает на какой именно странице пользователь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
Посмотри в сторону Angulartics. У них исчерпывающая дока, но если возникнут вопросы в подключении, то отвечу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы