Отсутствует обязательные поля "хронометраж" и "хронометраж" для попадания типа "хронометраж" - Google Analytics [redux-beacon]

Я использую redux-beacon отправлять хиты Google Analytics. Работает нормально с Event Tracking но не удалось с User Timings, Как я могу прочитать в документе для User Timing, это требует timingCategory, timingVar, а также timingValue но redux-beacon отправляет его без timing префикс.

Следующий код создает допустимое событие в журналах избыточного маяка для trackEvent и не удалось для trackTiming,

import {trackTiming, trackEvent} from '@redux-beacon/google-analytics';

const userTiming = trackTiming(action => {
  return {
    category: 'Test category',
    var: 'load',
    value: 3549,
    label: action.type
  };
});

const event = trackEvent(action => {
  return {
    category: 'Test category',
    action: action.type,
    label: 'Test label',
    value: 45
  };
});

export const eventsMap = {
  USER_TIMING_ACTION: userTiming,
  EVENT_ACTION: event
};

Это дает мне следующую ошибку:

Running command: ga("send", {hitType: "timing", customTrackerId: undefined, category: "Test category", var: "load", value: 3549, label: "USER_TIMING_ACTION"})
Set called on unknown field: "customTrackerId".
Set called on unknown field: "category".
Set called on unknown field: "var".
Set called on unknown field: "value".
Set called on unknown field: "label".

Missing required field '"timingCategory"' for hit of type '"timing"'
Missing required field '"timingVar"' for hit of type '"timing"'

Это то, что redux-beacon распечатать в консоли для userTracking:

hitType: "timing", customTrackerId: undefined, category: "Test category", var: "load", value: 3549, var: "load"}

Я делаю что-то не так или это ошибка с redux-beacon для отслеживания времени?

Версии, которые я использую:

"@redux-beacon/google-analytics": "1.0.2",
"@redux-beacon/logger": "1.0.0",
"redux-beacon": "2.0.3"

1 ответ

Решение

Это была ошибка с помощником события. Это сейчас исправлено. Пожалуйста, обновите до последней версии цели GA:

npm install --save @redux-beacon/google-analytics@1.0.3

В качестве дополнительного совета. Если когда-либо возникнут проблемы с помощником, вы легко можете обойтись без них. Если вам нужно быстрое решение.

Например, в вашей ситуации вы можете написать:

const userTiming = action => ({
  hitType: 'timing',
  timingCategory: 'Test category',
  timingVar: 'load',
  timingLabel: action.type,
});

export const eventsMap = {
  USER_TIMING_ACTION: userTiming,
};

Вот документы по написанию определений событий: https://rangle.gitbook.io/redux-beacon/index-1/event-definition

Спасибо, что нашли время написать, задать вопрос и выделить проблему, которая у вас была. С таким количеством разных целей и помощников по событиям отчеты об ошибках, подобные этим, очень полезны.

Другие вопросы по тегам