rest - 获取按最近 X 天的指标排序的某个维度的顶级谷歌分析项目

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

例如我想获取过去 30 天内访问量最大的三个页面,并按 session 数排序。

因此,对于每一天,我都希望按 ga:sessions 对每一天的前三个 ga:pagePath 项目进行排序。这可能在单个查询中实现吗?

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

作为另一个例子,是否可以获得三个最快加载 (ga:pageLoadTime) 页面而不是每天访问最多的页面?就排序指标而言,这需要的不是 ASC,而是 DESC 排序。

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

最佳答案

1) 因此,对于每一天,我都希望每天按 ga:sessions 对前三个 ga:pagePath 项目进行排序。这可能在单个查询中实现吗?

是的,这是可能的。这可以通过独特的综合浏览量来完成。 Google 声明:Unique Pageviews 是指定页面至少被浏览一次的 session 数。每个页面 URL + 页面标题组合都会计算一次独特的网页浏览量。

明显的警告是 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 中:

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

在 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 个结果。

关于rest - 获取按最近 X 天的指标排序的某个维度的顶级谷歌分析项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980738/

相关文章:

python - 在控制台而不是 Web 浏览器上显示 Django 错误

java - 如何使用Monit Web Service API java

javascript - NoReverseMatch,反向登录未找到错误

http - 分块编码和连接 :close together

c# - Web 服务调用同一主机上的另一个 Web 服务

javascript - 如何在 chrome 扩展中加载 Google Analytics 和 Facebook SDK?

google-analytics - 过滤器不考虑在 Google Analytics 测量协议(protocol)中覆盖用户 IP

php - RESTful API 方法;头部和选项

google-analytics - Google Universal Analytics-单击一个链接即可跟踪多个事件

php - 我可以将 REST API 用于托管在 WordPress.com 上的网站吗