c# - Web 界面和 API 之间的差异

标签 c# google-analytics-api

使用 Google.Apis.AnalyticsReporting.v4,我发出了一个简单的查询以按城市获取地理/位置数据。

在网络界面中,我看到:

City                           Sessions
Saint Cloud
Jun 15, 2016 - Jun 30, 2016    60,279

In the API response, I see:

"dimensions": [
  "Saint Cloud"
],
"metrics": [
  {
    "values": [
      "60300"
    ]
  }

这些数字不匹配。

这是 Fiddler 中的 JSON 请求正文:

{
    "reportRequests": [{
        "dateRanges": [{
            "endDate": "2016-06-30",
            "startDate": "2016-06-15"
        }, {
            "endDate": "2015-06-30",
            "startDate": "2015-06-15"
        }],
        "dimensions": [{
            "name": "ga:city"
        }],
        "metrics": [{
            "expression": "ga:sessions"
        }],
        "orderBys": [{
            "fieldName": "ga:sessions",
            "orderType": "VALUE",
            "sortOrder": "DESCENDING"
        }],
        "pageSize": 10,
        "samplingLevel": "LARGE",
        "viewId": "123"
    }]
}

我尝试了各种采样级别,但得到了相同的结果。

Web 报告没有有黄色的“此报告基于”抽样框。我没有添加任何分割。

有没有办法让 API 结果与网络界面完全匹配?原因是我需要让领域专家验证报告,而这个人将使用 Web 界面作为事实来源。

最佳答案

问题是 API 正在根据城市名称聚合数据,而城市名称不是唯一的。在这种情况下,有一个 Saint Cloud, MN 和一个 Saint Cloud, FL。 Web 界面不会聚合这两者;您可以通过为城市名称添加一个包含过滤器来看到这一点。

enter image description here

注意 60279 + 21 = 60300,API 返回的结果。

解决方法是将 ga:cityId 的次级维度添加到查询中:

"dimensions": [{
    "name": "ga:city"
}, {
    "name": "ga:cityId"
}]

这给出了正确的结果:

"dimensions": [
  "Saint Cloud",
  "1020086"
],
"metrics": [
  {
    "values": [
      "60279"
    ]
  }

我认为这是一个错误。

关于c# - Web 界面和 API 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39357688/

相关文章:

javascript - 如何从谷歌分析跟踪代码中读取我的网站用户(不是谷歌用户)跟踪ID?

c# - "Padding is invalid and cannot be removed"- 这段代码有什么问题?

c# - 关闭弹出窗口 MVC Controller

c# - 在 .Net Core/EF Core 中设置多个相同类的外键

google-analytics-api - 如何使用 Google Analytics Reporting API v4 访问 "App + Web"google analytics 属性中的报告数据?

javascript - 如何创建自己的类似于谷歌分析的 javascript api

c# - JavaScript 中的动态 Html.ActionLink?

c# - 如何使用正则表达式从字符串中获取值

java - GData Java 客户端无法工作,因为 Google 重定向到本地化站点

ajax - 从 Google Analytics 抓取实时访问者