使用 Legato gem 获取查询结果

use*_*344 5 google-analytics ruby-on-rails

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

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

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

谢谢

use*_*344 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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

我希望你能发现这个例子有帮助