Angular Google Analytics:将自定义交互字段添加到社交交互

Angular Google Analytics:将自定义交互字段添加到社交交互,angular,google-analytics,google-analytics-api,Angular,Google Analytics,Google Analytics Api,有时我的应用程序UI中有两个共享按钮(取决于状态)。它们可以共享相同的数据,但位于UI的不同部分。我们想分析共享是从哪个按钮(UI的一部分)执行的。我希望在这个部分中使用字段sobject字段,如 ga('send'、'social'、[socialNetwork]、[socialAction]、[socialTarget]、[fieldsObject]) 但是,我能找到的所有示例都只使用了前三个字段,通常类似于: ga('send'{ hitType:'社交', 社交网络:“推特”, 社会行动

有时我的应用程序UI中有两个共享按钮(取决于状态)。它们可以共享相同的数据,但位于UI的不同部分。我们想分析共享是从哪个按钮(UI的一部分)执行的。我希望在这个部分中使用
字段sobject
字段,如

ga('send'、'social'、[socialNetwork]、[socialAction]、[socialTarget]、[fieldsObject])

但是,我能找到的所有示例都只使用了前三个字段,通常类似于:

ga('send'{
hitType:'社交',
社交网络:“推特”,
社会行动:“分享”,
社会目标:'http://www.example.com/article-01'
});

此外,我不理解文档的含义:

请注意,与所有send命令一样,在 方便参数也可以在
字段sobject
中指定

我想我可能是在利用“便利参数”。 我的共享代码(来自角度服务):

reportShare(媒体:字符串,上下文:字符串){
让pageUrl:string=this.sanitizeURL();
ga(‘发送’{
hitType:'社交',
社交网络:媒体,
社会行动:“分享”,
socialTarget:pageUrl,
fieldsObject:上下文
});
}

我的谷歌分析调试器说:

VM5405 analytics_debug.js:16运行命令:ga(“发送”、{hitType:“社交”、社交网络:“Twitter”、社交活动:“共享”、社交目标:“/find/1160”、字段对象:“machine”})

但是:
在未知字段上调用集合:“fieldsObject”。

正如我们从其余部分可以看到的,“fieldsObject”没有被传递:

adSenseId(&a)1505578412
匿名化EIP(&aip)1
apiVersion&v)1
客户ID和cid 1703756191.1573561297
编码和反编码UTF-8
hitType(&t)社交网络
已启用Java的(&je)0
美国语言和ul
位置(&dl)http://localhost/find/1160
屏幕颜色(&sd)24位
屏幕分辨率(&sr)1680x1050
社会行动(sa)股份
社交网络(sn)推特
socialTarget(&st)/find/1160
标题(&dt)此页面标题
trackingId(&tid)UA-*********-1
视口大小(&vp)1680x916


有没有一种方法可以使用社交互动传递带有我的上下文字符串的fieldsObject?

你不应该给fieldObjects命名。 文档说明fieldObjects是字段签名中未传递的字段。这意味着您要发送的任何其他字段。文档说明了有关fieldObjects的信息:

一个对象,用于指定未在任何 字段参数

如果字段参数和字段对象中都设置了字段,则 将使用fieldsObject中的值

因此,我认为应该是:

ga('send', {
        hitType: 'social',
        socialNetwork: media,
        socialAction: 'share',
        socialTarget: pageUrl
    }, 
    {
        anyOtherLabel: value
    }
  );
ga命令的文档参考和更多示例可在此处查看:

感谢您的回复! 首先,我从analytics.js转到了gtag.js

我在GA界面中创建了自定义尺寸: 管理>自定义定义>自定义维度,并将其命名为“共享上下文”。gtag的自定义尺寸为

然后我更新我的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(创建自定义维度时提供的名称)访问我的自定义维度


更多信息。

太好了,非常感谢!这有点难检查,因为在GA中显示社交数据需要一段时间。但是我能在社交插件页面上显示这个自定义值吗?我是否必须自定义视图(如果可能的话)才能显示它?我假设是的,它们也应该出现在那里。请编辑您的评论并从中删除您的标签,因为任何人都可以得到它!我不得不在新的评论中修改它,因为编辑的可能性已经丢失:是的,位于Acquisition>Social>Plugins。但是我不得不重新设计它:
reportShare(media:string,context:string){let pageUrl:string=this.sanitizeURL();ga('set','dimension2',context);ga('send',{hitType:'social',socialNetwork:media,socialAction:'share',socialTarget:pageUrl})}
然后更新标记:
config:gtag('config','UA-*********-**',{'custom_-map':{'dimension1':'context'},'custom_-map':{'dimension2':'context'},})
请在您测试并看到事件出现在引用的位置下后让我们知道,这样我也可以为每个人更新答案。我不得不改变我的整个方法。在上面发布了我的工作解决方案。感谢您的输入!