Должен ли я использовать кэширование рабочей среды staleWhileRevalidate для кэширования gtm.js? - PullRequest
0 голосов
/ 08 января 2019

Я использую GTM в своем приложении next.js и использую next-offline, который использует workbox-webpack-plugin внутренне для автономной поддержки. Хорошая идея использовать стратегию кэширования во время выполнения staleWhileRevalidate для кэширования gtm. JS?

Мое приложение работает в автономном режиме и сохраняет аналитику в автономном режиме и отправляет их при подключении к Интернету, импортировав этот скрипт:

// Initialize offline google analytics which will store failed analytics requests and try again later when connection is back
// it will also cache the analytics.js library
workbox.googleAnalytics.initialize({
  // using a custom dimension(cd1) to track online vs. offline interactions
  parameterOverrides: {
    cd1: "offline"
  },
  // Using a custom metric to track time requests spent in the queue
  hitFilter: params => {
    const queueTimeInSeconds = Math.round(params.get("qt") / 1000);
    params.set("cm1", queueTimeInSeconds);
  }
});

Допустим, пользователь при втором посещении открыл мою домашнюю страницу. Я использую кэш времени выполнения со стратегией networkFirst для кэширования html, поэтому, если пользователь снова посетит мою домашнюю страницу, пока он полностью отключен, он получит полностью работающее приложение, особенно если я используйте ту же стратегию кэширования времени выполнения networkFirst для кэширования запросов API, но в то время как полностью автономный запрос на получение gtm.js вернет 404, и аналитика не будет работать в автономном режиме, потому что gtm.js не будет инициировать запрос на получение analytics.js который будет обслуживаться из кэша рабочего стола. Моя идея заключалась в том, чтобы использовать стратегию staleWhileRevalidate для кэширования gtm.js, чтобы автономная аналитика работала, даже если пользователь открывает приложение в автономном режиме и если он вернулся в оперативный режим, эта аналитика будет повторно отправлена ​​рабочим боксом.

Это хорошая идея? это будет работать, как ожидалось, или я что-то упустил?

1 Ответ

0 голосов
/ 09 января 2019

Я не знаком с gtm.js, но workbox-google-analytics автоматически создаст подходящий маршрут кэширования во время выполнения для обработки автономного доступа к сценариям analytics.js и gtag.js для вас:

Workbox Google Analytics делает именно это. Это также добавляет выборку обработчики для кэширования сценариев analytics.js и gtag.js, чтобы они могли также будет работать в автономном режиме. Наконец, когда неудачные запросы повторяются Workbox Google Analytics также автоматически устанавливает (или обновляет) qt в запрашивать полезную нагрузку, чтобы гарантировать, что метки времени в Google Analytics время исходного взаимодействия с пользователем.

Похоже, что gtm.js загружается с другого URL-адреса, чем gtag.js, и может иметь другой синтаксис для своих эхо-запросов коллекции, поэтому отправка запроса функции в репозиторий Workbox GitHub с запросом gtm.js поддержка звучит как ваша лучшая ставка.

...