【问题标题】:JSON response from Google Analytics api来自 Google Analytics api 的 JSON 响应
【发布时间】:2014-09-13 21:49:38
【问题描述】:

我正在使用 google-api-ruby-client 从 Google Analytics api 获得响应,这是成功的,但我有点困惑的是响应对象。我想知道如何深入了解特定键及其值,甚至解析响应以使其更易于理解。

以下是我认为 JSON 响应的相关部分

"{\"kind\":\"analytics#gaData\",\"id\":\"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:88893966&dimensions=ga:pagePath&metrics=ga:pageviews&filters=ga:pagePath%3D%3D/&start-date=2014-01-01&end-date=2014-07-22\",\"query\":{\"start-date\":\"2014-01-01\",\"end-date\":\"2014-07-22\",\"ids\":\"ga:88893966\",\"dimensions\":\"ga:pagePath\",\"metrics\":[\"ga:pageviews\"],\"filters\":\"ga:pagePath==/\",\"start-index\":1,\"max-results\":1000},\"itemsPerPage\":1000,\"totalResults\":1,\"selfLink\":\"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:88893966&dimensions=ga:pagePath&metrics=ga:pageviews&filters=ga:pagePath%3D%3D/&start-date=2014-01-01&end-date=2014-07-22\",\"profileInfo\":{\"profileId\":\"88893966\",\"accountId\":\"53082810\",\"webPropertyId\":\"UA-53082810-1\",\"internalWebPropertyId\":\"85713348\",\"profileName\":\"All Web Site Data\",\"tableId\":\"ga:88893966\"},\"containsSampledData\":false,\"columnHeaders\":[{\"name\":\"ga:pagePath\",\"columnType\":\"DIMENSION\",\"dataType\":\"STRING\"},{\"name\":\"ga:pageviews\",\"columnType\":\"METRIC\",\"dataType\":\"INTEGER\"}],\"totalsForAllResults\":{\"ga:pageviews\":\"8\"},\"rows\":[[\"/\",\"8\"]]}"

获取自

# make queries
result = client.execute(:api_method => api_method, :parameters => {
  'ids'        => PROFILE,
  'start-date' => Date.new(2014,1,1).to_s,
  'end-date'   => Date.today.to_s,
  'dimensions' => 'ga:pagePath',
  'metrics'    => 'ga:pageviews',
  'filters'    => 'ga:pagePath==/'
 })

 puts ap(result)

当我这样做时:

puts ap(result.data.rows.inspect)
#returns
"[[\"/\", \"8\"]]"

当我尝试时

response = JSON.parse(result.data.totalsForAllResults)
puts ap(response)
# returns error
TypeError: no implicit conversion of #<Class:0x00000001950550> into String

我想知道如何在没有反斜杠的情况下格式化响应以及如何获取总页面浏览量?

【问题讨论】:

    标签: javascript ruby-on-rails ruby json google-analytics-api


    【解决方案1】:

    您的语法已关闭。

    如果result 只是一个字符串,它是一个 json 对象,如上所示,你想要的是:

    response = JSON.parse(result)
    ap response["totalsForAllResults"]["ga:pageviews"]
    

    查看 google-api-ruby-client,result.data 返回一个对象(如果可从 api 模式解析),如果您传递媒体类型“application/json”,则返回哈希,否则返回字符串。因此,您需要确定您是作为对象还是哈希来访问响应数据。我上面的示例将原始字符串解析为 ruby​​ 哈希。

    tl;博士;有多种方法可以获取您想要的数据。

    【讨论】:

      【解决方案2】:

      是的,您的语法已关闭。它应该看起来像这样。

      https://www.googleapis.com/analytics/v3/data/ga?ids=ga:_____&dimensions=ga:date&metrics=ga:impressions,ga:adClicks,ga:adCost&start-date=2015-10-13&end-date=today
      

      BaseUrl、id、指标、开始日期和结束日期是必需的。并且不要忘记插入 access_token。

      【讨论】:

        猜你喜欢
        • 2016-08-06
        • 2019-02-09
        • 1970-01-01
        • 1970-01-01
        • 2018-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-07
        相关资源
        最近更新 更多