5

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

也许我漏掉了什么,查询结果应该直接写入模型(DB),这不是我想要的(我想先过一遍)。也许这就是我什么都没看到的原因。

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

谢谢

4

1 回答 1

5

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

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

另请注意,过滤器和结果只返回一个“查询”(就像 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进行探索。

我希望这个例子对你有帮助

于 2013-06-24T18:05:39.227 回答