【问题标题】:Google Analytics: Connect acquisition data with server side reportingGoogle Analytics:将采集数据与服务器端报告联系起来
【发布时间】:2017-10-10 20:28:50
【问题描述】:

我们有一个系统,用户可以从多个域到达一个应用程序系统,我们希望跟踪他们的活动。申请系统由几个步骤组成,我们想看看哪个 utm_source 带来了最先进的候选人。

这只能在后端知道,因此我正在为 GA 使用服务器端事件发送。 我转移到后端: _ga, _gid cookie 值(我们可以从中提取调用的 cid 和 gid 参数。这是一个正确的方法吗?我不能 100% 确定应该从这些值中填充 cid 和 gid 参数。

        MultiValueMap<String, String> body = new LinkedMultiValueMap<>();
        body.add("v", "1");
        body.add("tid", trackingId);

        // coming from the cookie _ga
        // ga id is like GA1.2.1051421203.1507107210
        // from that, we need: 1051421203.1507107210
        body.add("cid", cid);


        // coming from the cookie: _gid
        // _gid GA1.2.2063422210.1507532018
        // from that, we need: 2063422210.1507532018
        body.add("gid", gid);

        body.add("t", "event");
        body.add("ec", "Button");
        body.add("ea", "Click");
        body.add("el", label);

        addIfNotEmpty("cs", application.getUtmSource(), body::add);
        addIfNotEmpty("cm", application.getUtmMedium(), body::add);
        addIfNotEmpty("cn", application.getUtmCampaign(), body::add);

        log.debug("Sending event: {}", body);

        restTemplate.postForLocation(ANALYTICS_URL, body);

只要我们有 UTM 来源和填写的字段,我们就可以使用它将数据与我们在 GA 中的活动联系起来。

我的问题是: 谷歌分析如何将域变化联系在一起?我已经阅读了很多关于跨域链接的内容,但是如果接收站点是后端应用程序,我没有找到任何好的解决方案。 我可以使用

ga.getAll()[0].get('linkerParam')

并传输到后端,并将其用于事件传播,但这不会进行自动链接。应该传递哪些其他参数来链接域更改?

有没有办法让 Google Analytics(分析)了解用户流,而无需每次移动 utm_source、utm_medium、utm_campaign 值?这不应该只通过正确发送 cid / gid 来完成吗?如果是,这个值应该来自哪里?

【问题讨论】:

    标签: java spring google-analytics cross-domain server-side


    【解决方案1】:

    Google 分析不关心链接域。您的 postForLocation 将在 GA 中与您的后端服务器域建立一个新会话,作为 GA 报告中的 hostname 字段。 您可能只需要 Measurement Protocol POST 请求中的 clienId 字段,而 Analytics 帮助对此有一个简洁的文档。假设您有一个访问者是如何从源 A 来的,然后又从源 B 来,然后您的后端服务器发送了一个访问者进度事件。决定要保存和重新发送的来源很棘手
    评估此问题的来源的最可靠方法是切换到 Google Analytics(分析)中的多渠道报告,您可以在其中查看来源 A 的首次点击转化和协助来源 B 的转化,而无需为您的 POST 请求提供来源。

    【讨论】:

    • 我使用ga.getAll()[0].get('clientId'); 来获取clientId,并将其发送到cid 参数中。我在分析中看到了一些google / organic 命中,因此它可能将来自网站 A 的数据与来自网站 B 服务器端的数据连接在一起。这向我表明,它不会创建不同的会话,而是与前一个会话连接。有可能吗?
    • 我建议您在 Google Analytics(分析)中使用 clientId 作为自定义维度,以便您以后可以调查每个单独的匹配。根据许多因素,您的 POST 肯定会有不同的 GA 源分配。这是关于如何分配 GA 源 support.google.com/analytics/answer/6205762?hl=en 以及如何定义会话 support.google.com/analytics/answer/2731565?hl=en 的一些简洁解释希望这会有所帮助
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多