【问题标题】:How to merge two requests when there are only 9 dimensions allowed当只允许 9 个维度时如何合并两个请求
【发布时间】:2021-11-29 14:27:57
【问题描述】:

我使用以下代码来构建基于 19 个维度和两个指标的 GA 报告。

var request = analytics.Reports.BatchGet(new GetReportsRequest
{
    ReportRequests = new[] {
        new ReportRequest{
            DateRanges = new[] { new DateRange{ StartDate = "2021-01-01", EndDate = "2021-01-31" }},
            Dimensions = new[] {
                new Dimension{ Name = "ga:transactionId" },
                new Dimension{ Name = "ga:campaign" },
                new Dimension{ Name = "ga:source" },
                new Dimension{ Name = "ga:medium" },
                new Dimension{ Name = "ga:landingPagePath" },
                new Dimension{ Name = "ga:adDistributionNetwork" },
                new Dimension{ Name = "ga:operatingSystem" },
                new Dimension{ Name = "ga:mobileDeviceBranding" },
                new Dimension{ Name = "ga:userBucket" },
                /*new Dimension{ Name = "ga:referralPath" },
                new Dimension{ Name = "ga:fullReferrer" },
                new Dimension{ Name = "ga:keyword" },
                new Dimension{ Name = "ga:adGroup" },
                new Dimension{ Name = "ga:adSlot" },
                new Dimension{ Name = "ga:adPlacementUrl" },
                new Dimension{ Name = "ga:adDestinationUrl" },
                new Dimension{ Name = "ga:sessionsToTransaction" },
                new Dimension{ Name = "ga:daysToTransaction" },
                new Dimension{ Name = "ga:dateHour" },*/
            },
            Metrics = new[] { new Metric{ Expression = "ga:users" }, new Metric{ Expression = "ga:sessions" } },
            ViewId = "123456789"
        }
    }
});
GetReportsResponse response = request.Execute();
var dt = DataHelper.GetReportAsDataTable(response.Reports[0]); 

我们知道,Google 不允许每个请求超过 9 个维度。所以我不妨把我的每个请求分成三个。

对我来说,关键维度是 ga:transactionId,这是我希望包含在每个请求中的维度,因为这是我报告的基础。每行都应该包含一个ga:transactionId

但现在我不知道如何将所有维度合并到一张表中。不同的维度组合会导致不同的行数。

有谁知道如何为特定的日期间隔获得正确的逻辑?

【问题讨论】:

  • 你使用什么库来形成这些请求?
  • @BNazaruk Google.Apis.AnalyticsReporting.v4

标签: c# .net google-analytics google-api


【解决方案1】:

看看你如何表明关键维度是 ga:transactionId?对于每个指标,这应该是唯一的。只需确保在所有三个调用中都包含它,然后在该事务 id 上加入表,就像您通常在 SQL 中所做的那样。在编程方面,如果您已经连接了它,通过 SQL 可能会更容易。好吧,也许是一个小型的本地 SQLite。

不同的行数是真的要调试的。这可能是因为并非所有交易都设置了所有维度,但这会给您带来无法获得所有交易的可能性,因此我建议拉出所有没有维度的交易并确保它们的基数相同作为连接表。

还可以考虑将指标拆分为两个单独的请求。它可以帮助您在遇到更多错误时进行调试。

【讨论】:

  • 是的,我会在每次通话中加入ga:transactionId。让我感到困惑的是不同的行数。问题是,上面只有两个维度与ga:transactionId 在同一个“范围”中,其他维度来自其他范围。尽管如此,谷歌并没有根据这个页面抱怨他们ga-dev-tools.web.app/dimensions-metrics-explorer 但是我想知道是否是这个导致了差异,那么人们应该只获得位于同一范围内的维度和指标吗?我不知道。你会说什么?
  • 不,混合范围不是问题。把它想象成总是受到打击。无论范围如何,您在数据中的真实范围总是在您获得数据时被命中。如果维度是会话,则来自该会话的所有命中都将获得相同的值。如果维度是用户,则来自该用户的所有会话的所有命中都将获得相同的维度值。混合范围很好。确保谷歌不对数据进行抽样。也许尝试一个大的查询导出来检查数据的真实外观,它可能会更容易。
  • 我的客户没有向帐户添加任何帐单信息。所以,我认为我无法访问 BigQuery。但很高兴知道混合范围不是问题。我应该更深入地了解为什么我会根据维度组合得到不同的行数。
猜你喜欢
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-01-04
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
相关资源
最近更新 更多