响应redux-beacon跟踪链接点击分析

时间:2019-02-21 12:44:51

标签: reactjs google-analytics react-redux react-router redux-beacon

如果使用Redux-Beacon,在React / Redux应用程序中跟踪内部链接点击分析的最佳方法是什么?

通常,内部链接单击会触发路由器位置更改(不会触发其他任何redux操作)。但是“ LOCATION_CHANGE”实际上是一个 pageView

可以在history.push('...')之前调度事件吗?喜欢:

dispatch({ type: VIEW_BLOG_POST, postId });
.....
history.push(`/${postId}`);
...

没有真正改变状态,只是为了通过redux-beacon中间件捕获事件?

... 外部链接点击也如何?我需要管理这些不同的东西吗? (我想避免混合跟踪实现)

1 个答案:

答案 0 :(得分:2)

  

可以在history.push('...')之前调度事件吗?

是的,那完全可以。您要做的就是将VIEW_BLOG_POST映射到新的事件定义。该动作不必以任何方式更改状态。它将通过减速器,减速器将全部返回对先前状态的引用。如果您使用react-redux,则对性能的影响几乎为零。假设您正在GA中将此事件作为事件进行跟踪,则看起来像这样:

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

const trackBlogPostClick = trackEvent((action, prevState, nextState) => {
  return {
    category: /* fill me in */,
    action: /* fill me in */,
    label: /* (optional) */,
    value: /* (optional) */,
  };
}, /* (optional) tracker names array or tracker name string */ );

// And wherever your events map is:

const eventsMap = {
  VIEW_BLOG_POST: trackBlogPostClick,
}
  

没有真正改变状态,只是为了通过redux-beacon中间件捕获事件?

  

外部链接点击也如何?我需要管理这些不同的东西吗? (我想避免混合跟踪实现)

这在很大程度上取决于您要如何在Google Analytics(分析)中跟踪这些内容。但是从redux-beacon的角度来看,以相同的方式对待它们并没有错。