获取按最近X天的指标排序的维度的顶级Google Analytics分析项

时间:2017-03-23 15:40:42

标签: rest http google-analytics google-reporting-api

E.g。我希望按照会话数量排序过去30天内访问量最大的三个页面。

因此,对于每一天,我希望按ga:pagePath排序每天排名的三个ga:sessions项。这可以在一个查询中吗?

此查询应返回90个项目,每天3个ga:pagePath个项目。

另一个例子是,有可能获得三个最快的加载(ga:pageLoadTime)页面而不是每天访问最多的页面吗?这不需要ASC,而是需要对排序度量进行DESC排序。

如有必要,我可以使用v4 API。

1 个答案:

答案 0 :(得分:3)

1)因此,对于每一天,我都想要通过ga:sessions为每天排序的三个顶级ga:pagePath项目。这可以在一个查询中吗?

是的,这是可能的。这可以通过唯一的综合浏览量来完成。 Google声明:Unique Pageviews is the number of sessions during which the specified page was viewed at least once. A unique pageview is counted for each page URL + page Title combination.

显而易见的警告是URL +页面标题组合,但根据应用程序的不同,这可能对您有利。

在Google Analytics中:

转到行为>网站内容>所有页面。按唯一身份浏览量排序。

在GAv4 API中

{
  "reportRequests": [
    {
      "viewId": "VIEW_ID",
      "dateRanges": [
        {
          "startDate": "30daysAgo",
          "endDate": "yesterday"
        }
      ],
      "metrics": [
        {
          "expression": "ga:uniquePageViews"
        }
      ],
      "dimensions": [
        {
          "name": "ga:pagePath"
        }
      ],
      "pageSize": 3,
      "orderBys": [
        {
          "fieldName": "ga:uniquePageViews",
          "sortOrder": "DESCENDING"
        }
      ]
    }
  ]
}

2)也可以获得三个最快的加载(ga:pageLoadTime)页面,而不是每天访问最多的页面?这不需要ASC,而是需要对排序度量进行DESC排序。

是的,这也是可能的。但是,您可能希望使用ga:avgPageLoadTime,因为ga:pageLoadTime是总时间(来自所有网页浏览量)。

在Google Analytics中:

转到行为>网站速度>页面计时。将数字列更改为平均。页面加载时间(秒)并按此列排序。

在GAv4 API中

{
  "reportRequests": [
    {
      "viewId": "VIEWID",
      "dateRanges": [
        {
          "startDate": "30daysAgo",
          "endDate": "yesterday"
        }
      ],
      "metrics": [
        {
          "expression": "ga:uniquePageViews"
        }
      ],
      "dimensions": [
        {
          "name": "ga:pagePath"
        }
      ],
      "pageSize": 3,
      "orderBys": [
        {
          "fieldName": "ga:avgPageLoadTime",
          "sortOrder": "ASCENDING"
        }
      ]
    }
  ]
}

但是,这份报告可能不会太有用,因为它主要会收集异常值,而不是感兴趣的页面。我会将此调用与另一个调用相结合,以便通过唯一的综合浏览量检索1)顶部的 n 页面,并且2)将其用作页面加载时间调用的过滤器。

例如(在R中,使用googleAnalyticsR):

1)
#retrieve the top 100 pages (ranked via unique pageviews)
test <- google_analytics_4(VIEW_ID, 
  date_range = c("30daysAgo", "yesterday"), 
  metrics = "uniquePageviews",
  dimensions = "pagePath", 
  max=100, #this is the top n pages
  order = order_type("uniquePageviews", sort_order=c("DESCENDING"),orderType = c("VALUE")))

2)
#call the top 3 pages via avgPageLoadTime
test2 <- google_analytics_4(VIEW_ID, 
  date_range = c("30daysAgo", "yesterday"), 
  metrics = "avgPageLoadTime",   
#But only for the top 100 pages (ranked via unique pageviews).
#filterExpression = uniquePageViews is greater then the unique pageviews 
#of the 100th ranked page.
  filtersExpression=paste("ga:uniquePageViews>",tail(test$uniquePageviews, 1), sep=""),
  dimensions = "pagePath", 
  max=3, 
  order = order_type("avgPageLoadTime", sort_order=c("ASCENDING"),orderType = c("VALUE")))

<强>更新

您在单个查询中无法实现的目标。

问题是结果的顺序对您尝试查询的日期有反应。

数据透视表无法使用,即使您可以逐页转动并有30列,它也会显示前三页的每日流量,而不是每天的前三页。

要获得您正在寻找的结果,您需要在最后x天运行一个循环,调用感兴趣的指标的前3个结果。