Google Analytics:在SPA中更改运行时的用户ID

vto*_*ola 6 analytics google-analytics web-analytics universal-analytics

文件表明,userid必须这样设置:

ga('create', 'UA-XXXX-Y', { 'userId': 'USER_ID' });
Run Code Online (Sandbox Code Playgroud)

但在单页应用程序(SPA)中,用户以匿名方式启动,然后登录.因此,应用程序将从以下开始:

ga('create', 'UA-XXXX-Y', 'auto');
Run Code Online (Sandbox Code Playgroud)

当他登录时,我想更改为跟踪该用户的特定ID,但是当我尝试时:

ga('create', 'UA-XXXX-Y', { 'userId': 'USER_ID' });
Run Code Online (Sandbox Code Playgroud)

没有任何反应,用户ID不会出现在后续请求中.

哪种是在运行时设置userId的正确方法?

谢谢.

Phi*_*ton 7

不幸的是,文档目前不正确.它可以设置用户ID以外create方法.

你的例子不起作用的原因是因为你打了create两次电话.你想做的就是打电话set.这是如何做:

// Create the tracker instance.
ga('create', 'UA-XXXX-Y', 'auto');

// Once you know the user ID, set it on the current tracker.
ga('set', { userId: USER_ID });
Run Code Online (Sandbox Code Playgroud)

现在,发送给GA的所有后续匹配都将与此用户ID相关联.

更新:

用户ID的文件现在反映使得其可以在外部进行设置create的方法.

  • @MisterPhilip你的建议在这里不起作用,因为OP在创建时不知道用户ID. (2认同)