簡體   English   中英

Google Analytics API的JSON響應

[英]JSON response from Google Analytics api

我正在使用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

我想知道如何在不使用反斜杠的情況下格式化響應,以及如何表示獲得總頁面瀏覽量?

您的語法已關閉。

如果result只是一個字符串,它是一個json對象,就像上面的樣子,那么您想要的是:

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

查看google-api-ruby-client, result.data返回一個對象(如果可以從api模式解析),如果您傳遞了媒體類型“ application / json”,則返回一個哈希,否則返回一個字符串。 因此,您需要確定您是以對象還是哈希形式訪問響應數據。 上面的示例將原始字符串解析為ruby哈希。

TL;博士; 有多種獲取所需數據的方法。

是的,您的語法已關閉。 它看起來應該像這樣。

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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM