有时,我的应用程序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) 1505578412
anonymizeIp (&aip) 1
apiVersion (&v) 1
clientId (&cid) 1703756191.1573561297
encoding (&de) UTF-8
hitType (&t) social
javaEnabled (&je) 0
language (&ul) en-us
location (&dl) http://localhost/find/1160
screenColors (&sd) 24-bit
screenResolution (&sr) 1680x1050
socialAction (&sa) share
socialNetwork (&sn) Twitter
socialTarget (&st) /find/1160
title (&dt) This pagetitle
trackingId (&tid) UA-*********-1
viewportSize (&vp) 1680x916
有没有一种方法可以通过社交互动将fieldsObject与上下文字符串一起传递?
答案 0 :(得分:1)
您不应命名该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
答案 1 :(得分:1)
感谢您的回复! 首先,我已经从analytics.js迁移到gtag.js。
我在GA界面中创建了自定义维度: 管理员>自定义定义>自定义维度,并将其命名为“共享上下文”。 gtag的自定义维度为documentet here。
然后我更新我的js调用:
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-**********-*', {
'custom_map': {'dimension1': 'context'},
'custom_map': {'dimension2': 'context'},
'anonymize_ip': true,
'allow_ad_personalization_signals': false
});
然后我可以在报告服务中致电:
reportShare(media:string, context: string) {
gtag('event', 'Sharing Context', {
'dimension2': context,
'event_category': 'social',
'event_label': media,
'value': this.sanitizedURL
});
}
最后,在 Acquisition> Social> Plugins 下,我可以从 Social Entity> Secondary Dimensions> Custom Dimension> Share Context (这是您提供的名称)访问我的自定义维度创建自定义维度时)。
有关reporting non-standard data as custom dimensions & metrics的更多信息。