Отсутствует обязательные поля "хронометраж" и "хронометраж" для попадания типа "хронометраж" - 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
Спасибо, что нашли время написать, задать вопрос и выделить проблему, которая у вас была. С таким количеством разных целей и помощников по событиям отчеты об ошибках, подобные этим, очень полезны.