【问题标题】:ASP.NET Google Reporting API values differ from Google Analytics DashboardASP.NET Google Reporting API 值与 Google Analytics Dashboard 不同
【发布时间】:2018-12-10 08:13:19
【问题描述】:

举报

我已阅读此主题:Google Analytics API: Why is the API data different than what's being seen on the Analytics Dashboard? 但仍然无法弄清楚为什么我的结果与我的分析仪表板有如此大的差异。

如果我的响应包含 sampleData,我如何签入 .Net?这是我正在使用的代码:

string[] s = new string[]{"https://www.googleapis.com/auth/analytics.readonly"};

var auth = GoogleAnalyticsServiceAccount.AuthenticateServiceAccount("XXXXX", "D:\\Spawtz\\Src\\client_id.json", s);

// Create the DateRange object.

//DateRange lastWeek = new DateRange() { StartDate = "2018-12-02", EndDate = "2018-12-09" };

DateRange lastMonth = new DateRange() { StartDate = "2018-11-09", EndDate = "2018-12-09" };

DateRange lastYear = new DateRange() { StartDate = "2017-12-09", EndDate = "2018-12-09" };

// Create the Metrics object.

Metric pageViews = new Metric { Expression = "ga:pageViews"};

//Create the Dimensions object.

Dimension pagePath = new Dimension { Name = "ga:pagePath" };

// Create the ReportRequest object.
// Create the ReportRequest object.

ReportRequest reportRequest = new ReportRequest

        {
            ViewId = "XXXXX",
            DateRanges = new List<DateRange>() { lastMonth, lastYear},
            Dimensions = new List<Dimension>() { pagePath },
            Metrics = new List<Metric>() { pageViews },
            FiltersExpression = "ga:pagePath==/cricket-player/t20/playerid=2348"

        };

List<ReportRequest> requests = new List<ReportRequest>();            
requests.Add(reportRequest);

// Create the GetReportsRequest object.

GetReportsRequest getReport = new GetReportsRequest() { ReportRequests = requests };

// Call the batchGet method.

GetReportsResponse response = auth.Reports.BatchGet(getReport).Execute();

我可以在 asp.Net 中设置 SamplingLevel 和 Max-Results 吗?

【问题讨论】:

  • 请拍下您在仪表板中看到的数字以及运行代码时看到的结果。
  • 您好,感谢您的回复。这是为相同 dateRange 值拍摄的两张图像:ibb.co/QpQCBRwibb.co/JRKf7sZ
  • @DeonLastManStands - 在你的代码中你有 /cricket-player/t20/playerid=2348 但在屏幕截图中它有 /cricket-player/t20&amp;playerid=2348 - 可能是扭曲的东西?

标签: c# google-analytics google-api google-analytics-api google-api-dotnet-client


【解决方案1】:

是的,您可以为您的报告设置Sampling level。应该是这样的让我知道如果它不起作用我可以测试它。

ReportRequest reportRequest = new ReportRequest
    {
        ViewId = "XXXXX",
        DateRanges = new List<DateRange>() { lastMonth, lastYear},
        Dimensions = new List<Dimension>() { pagePath },
        Metrics = new List<Metric>() { pageViews },

isDataGolden

如果数据已完成处理,则每个报告的响应数据应返回一个名为 isDataGolden 的值。

提示

请记住,如果您希望数据相同,您在仪表板中的请求必须与您向 API 发出的请求完全相同。完全相同的维度、指标和日期。您不能在仪表板中查看包含五个维度的报告,然后向 api 发出请求,仅查看页面浏览量,这些数字不会相加。

        FiltersExpression = "ga:pagePath==/cricket-player/t20/playerid=2348"
        Sampling = "SAMPLINGUNSPECIFIED"
    };

更新

根据您发布的图片,您正在查看具有以下维度和指标的报告。

  • 页面

  • 浏览量

  • 独特的网页浏览量
  • 页面平均停留时间
  • 入口
  • 跳出率
  • % 退出
  • 页面价值

您对 api 的请求必须发出完全相同的请求,这意味着您需要使用完全相同的维度和指标。

【讨论】:

  • 获取错误报告请求不包含采样的定义。看起来它需要一个类型 SamplingLevel ?
  • 它看起来需要一个字符串值,所以我尝试了这个:SamplingLevel = "SAMPLINGUNSPECIFIED" - 但仍然无法正常工作。
  • 检查更新您在请求中使用的维度和指标与您在报告中查看的不同。
  • 好的,所以即使我只是在寻找那段时间的综合浏览量,我是否需要输入这些值?有没有比上面更好的方法来只查找 dateRange 的总浏览量?
  • Sampling = "SAMPLINGUNSPECIFIED" 也不起作用,与上述相同的错误。
猜你喜欢
  • 2016-12-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多