我正在玩ruby的Garb gem,但我无法访问结果。
这是我的代码。
Garb::Session.login('user@demo.com', 'password')
profile = Garb::Management::Profile.all.detect {|profile| profile.web_property_id == 'UA-XXXXX-X'}
@ga = profile.stats(:start_date => (Date.today - 1), :end_date => Date.today)
如果我在视图上使用debug,我可以看到结果,但无论我尝试什么,我都无法访问结果。
这是调试结果
--- !ruby/object:Garb::ResultSet
results:
- !ruby/object:OpenStruct
table:
:exits: "7820"
:pageviews: "24171"
sampled: false
total_results: 1
即
我已经尝试过将它制作成阵列而没有运气。
你以前用过这个宝石吗?如果是这样,我如何访问这些结果。
答案 0 :(得分:4)
Garb::ResultSet
是一个枚举器,因此您可以使用其中的任何枚举器方法(each
,map
等)。单个结果为OpenStruct
,因此您可以直接访问它们。
@ga.map &:exits # returns an array of all exits
答案 1 :(得分:0)
我使用此代码来使用GARB提取我想要的内容。
require 'rubygems'
require 'garb'
require 'csv'
CA_CERT_FILE = "Cthe exact location of your cacert.pem file"
username = "your google analytics email address"
password = "your google analytics password"
web_profile = "UA-the correct number here"
limit = 10000
filter = {:productName.contains => "some product"} # this is your filter
sorter = :date.desc # you can use this part to sort
csvfile = "YourResults.csv"
Garb::Session.login(username, password, :secure => true)
class Report
extend Garb::Model
metrics :itemQuantity
dimensions :productName,
:date,
:customVarName2
end
CSV.open(csvfile, "w") do |csv|
csv << [ "itemQuantity",
"productName",
"date",
"customVarName2"
]
end
1.times do |i| # Be careful, you can cause duplication with this iteration. only do once per 10,000 expected rows
profile = Garb::Management::Profile.all.detect {|p| p.web_property_id == web_profile}
options = {
:start_date => (Date.today - 30),
:end_date => Date.today,
:limit => limit,
:offset => (i*limit) + 1,
:sort => sorter
}
result = Report.results(profile, options)
result = Report.results(profile, :filters => filter)
CSV.open(csvfile, "a") do |csv|
result.each do |r|
csv << ["#{r.item_quantity}",
"#{r.product_name}",
"#{r.date}",
"#{r.custom_var_name2}"
]
end
end
end
要查找cacert.pem文件,请转到此处http://curl.haxx.se/ca/cacert.pem 将其保存为文件并在代码中引用它。
需要注意的一点是,您需要在pascalcase中请求指标和维度,然后将它们放入带有下划线大小写的CSV中(为什么,我不知道)。
除此之外你还是金子般的好。完成后只需打开CSV文件即可。