Как отследить путешествие пользователя в одностраничном веб-приложении Flutter? - PullRequest
0 голосов
/ 18 апреля 2020

Я новичок в Google Analytics, хочу отслеживать движение пользователя в моем одностраничном Флаттере приложении. Приложение состоит из 6 страниц с использованием PageView. В частности, я хочу знать, как долго пользователь остается на каждой странице и его событиях / движениях мыши. Я пробовал это https://pub.dev/packages/google_tag_manager, но каким-то образом в моем аккаунте аналитики не отслеживались события (не удалось).

Вот как я реализовал


import 'package:google_tag_manager/google_tag_manager.dart' as gtm;

class HomeView extends StatefulWidget {
...
}

class HomeViewState extends State<HomeView> with TickerProviderStateMixin  {
  ...
  Widget build(BuildContext context ) {
    homePageLanded();
    ...
  }
  void homePageLanded(){
    gtm.pushEvent('homeView-landed');
  }
}

Код выше как я пытался зарегистрировать событие пользователей земли на Homeview. Точно так же я проделал то же самое с другими представлениями.

Это основная структура сайта.

PageView(
    physics: physics,
    pageSnapping: true,
    scrollDirection: Axis.vertical,
    controller: _pageController,
    children: <Widget>[
        HomeView(utilities, _pageController),
        ViewTwo(utilities, _pageController),
        ViewThree(utilities, _pageController),
        ViewFour(utilities, _pageController),
        ViewFive(utilities, _pageController),
    ]
),

Требуются ли какие-либо другие шаги, такие как настройка в Google Analytics?

Заранее спасибо !!

-------------------- ОБНОВЛЕНИЕ -------------- ------

Я не совсем уверен, что шаг 'развертывание GTM', у меня есть этот скрипт в начале индекса. html:

  <script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-162984477-1');

  <script>
  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-5NHZTFT');
  </script>
...