GTM, ошибка описания объекта? Поддерживается только в режиме ECMASCRIPT6?
Я пытаюсь использовать GTM для отправки данных из webVitals в Google Analytics.
Используя этот пакет: https://github.com/GoogleChrome/web-vitals#load-web-vitals-from-a-cdn
<script defer src="https://unpkg.com/web-vitals@1.1.0/dist/web-vitals.umd.js"></script>
<script>
function sendToGoogleAnalytics ({name, delta, id}) {
// Assumes the global `gtag()` function exists, see:
// https://developers.google.com/analytics/devguides/collection/gtagjs
gtag('event', name, {
event_category: 'Web Vitals',
// The `id` value will be unique to the current page load. When sending
// multiple values from the same page (e.g. for CLS), Google Analytics can
// compute a total by grouping on this ID (note: requires `eventLabel` to
// be a dimension in your report).
event_label: id,
// Google Analytics metrics must be integers, so the value is rounded.
// For CLS the value is first multiplied by 1000 for greater precision
// (note: increase the multiplier for greater precision if needed).
value: Math.round(name === 'CLS' ? delta * 1000 : delta),
// Use a non-interaction event to avoid affecting bounce rate.
non_interaction: true,
});
}
addEventListener('DOMContentLoaded', function() {
webVitals.getCLS(sendToGoogleAnalytics);
webVitals.getFID(sendToGoogleAnalytics);
webVitals.getLCP(sendToGoogleAnalytics);
});
</script>
GTM жалуется: Ошибка в строке 3, символ 38: Эта языковая функция поддерживается только в режиме ECMASCRIPT6 или лучше: деструктуризация объекта.
Я думал, что проблема в вызове функции. Я попытался изменить функцию на:
var sendToGoogleAnalytics = function ({name, delta, id}){...
Кажется, проблема не в этом. Может кто указать, что линтер не любит?
2 ответа
Вам нужно использовать имя переменной в качестве параметра, а затем получить доступ к атрибутам, ссылающимся на это имя переменной.
function sendToGoogleAnalytics (data) {
...
gtag('event', data.name, {
...
Если вы измеряете Web Vitals в GTM, я бы порекомендовал подход, описанный здесь Симо Ахава: https://www.simoahava.com/analytics/track-core-web-vitals-in-ga4-with-google- тег-менеджер /
Он написал собственный шаблон для кода, на который вы ссылались выше, поэтому вам не придется беспокоиться о том, как его установить.