有时,我的应用程序UI中有两个共享按钮(取决于状态)。它们可以共享相同的数据,但是位于UI的不同部分。我们要分析从哪个按钮(UI的一部分)执行共享。我希望这部分使用fieldsObject
字段,如documentation:中所示ga('send', 'social', [socialNetwork], [socialAction], [socialTarget], [fieldsObject]);
但是,我可以找到的所有示例仅利用了前三个字段,通常类似于:ga('send', { hitType: 'social', socialNetwork: 'Twitter', socialAction: 'share', socialTarget: 'http://www.example.com/article-01'});
另外,我不了解文档的含义:
“请注意,与所有发送命令一样,
便利性参数也可以在fieldsObject
中指定。”
我可能正在利用“便利性参数”。
我的共享代码(来自Angular服务):reportShare(media:string, context: string) { let pageUrl: string = this.sanitizeURL(); ga('send', { hitType: 'social', socialNetwork: media, socialAction: 'share', socialTarget: pageUrl, fieldsObject: context });}
我的Google Analytics(分析)调试器说:VM5405 analytics_debug.js:16 Running command: ga("send", {hitType: "social", socialNetwork: "Twitter", socialAction: "share", socialTarget: "/find/1160", fieldsObject: "machine"})
但是之后:Set called on unknown field: "fieldsObject".
从其余部分我们可以看到,没有传递“ fieldsObject”:adSenseId (&a) 1505578412anonymizeIp (&aip) 1apiVersion (&v) 1clientId (&cid) 1703756191.1573561297encoding (&de) UTF-8hitType (&t) socialjavaEnabled (&je) 0language (&ul) en-uslocation (&dl) http://localhost/find/1160screenColors (&sd) 24-bitscreenResolution (&sr) 1680x1050socialAction (&sa) sharesocialNetwork (&sn) TwittersocialTarget (&st) /find/1160title (&dt) This pagetitletrackingId (&tid) UA-*********-1viewportSize (&vp) 1680x916
有没有一种方法可以使用社交互动将fieldsObject与上下文字符串一起传递?
最佳答案
您不应该为该fieldObjects命名。
文档指出,fieldObjects是未在字段签名中传递的字段,这意味着要发送的其他任何字段都需要重新发送。该文档说明了有关fieldObjects的内容:
用于指定任何以下未指定的剩余值的对象
字段参数。
如果在fields参数和fieldsObject中都设置了字段,则
将使用fieldsObject中的值。
所以我认为应该是:
ga('send', {
hitType: 'social',
socialNetwork: media,
socialAction: 'share',
socialTarget: pageUrl
},
{
anyOtherLabel: value
}
);
可以在此处查看ga命令的文档参考和更多示例:https://developers.google.com/analytics/devguides/collection/analyticsjs/command-queue-reference#method-details