使用Legato gem获取查询结果

时间:2013-06-13 08:47:51

标签: ruby-on-rails google-analytics

尝试使用Legato gem从Google Analytics获取查询结果(按照之前的建议我去那里+进行一些研究)。似乎很容易定义我的查询,但是我无法理解如何实际获得结果。阅读自述文件显示了如何构建一些“构建块”,但是我没有得到一个可以从中读取结果的对象。

也许我错过了什么,查询结果应该直接写入模型(DB),这不是我想要的(我想首先考虑它们)。也许这就是我没有看到任何东西的原因。

有人可以分享一个如何阅读结果的例子吗?例如,只需将综合浏览量打印到屏幕即可。

由于

1 个答案:

答案 0 :(得分:4)

所以这就是我发现使用它的方式: 您创建了一个定义查询“模型”的类(和Active-Model返回关系一样,您也可以在此处连接)。在这个例子中:

  • 网页浏览的模型/查询检查& ga:pagePathLevel1维度中的唯一网页浏览量。
  • 您可以使用一个可选的过滤器,在pagePathLevel1中查找“index”(如您所见,您可以选择是否使用它,添加更多过滤器,连接它们等等。

另请注意,过滤器&结果只返回一个“查询”(就像ActiveModel :: Relation),执行是通过调用它来完成的,比如'each'或'to_a'等。

class Pageviews
  extend Legato::Model

  metrics :pageviews, :uniquePageviews
  dimensions :pagePathLevel1

  filter(:by_index_in_path_level_1) {|page_path_level1| contains(:pagePathLevel1, 'index')}

  def self.query(profile, start_date, end_date)
    Pageviews.results(profile,
                      :start_date => start_date,
                      :end_date => end_date
    )
    # Just for reference, sorting descending by pageviews is done by:   :sort => '-pageviews'
  end

  def self.query_index(profile, start_date, end_date)
    Pageviews.by_index_in_path_level_1.results(profile,
                                               :start_date => start_date,
                                               :end_date => end_date
    )
  end
end

准备好后,您可以执行以下操作:

Pageviews.query(profile, start_date, end_date).each do |result|
    # Just print the pageviews & unique-pageviews, for example
    puts result.try(:pageviews)
    puts result.try(:uniquePageviews)
end

最后,我建议您先使用Google Analytics Query Explorer进行探索。

我希望你能找到这个有用的例子