class MostPopular::Analytics::GoogleAnalytics

Public Class Methods

new(client, api_method, profile_id, filter) click to toggle source

Don’t call GoogleAnalytics.new directly. Use GoogleAnalyticsBuilder instead. See unit tests

# File lib/most-popular/google_analytics.rb, line 7
def initialize(client, api_method, profile_id, filter)
  @client = client
  @api_method = api_method
  @profile_id = profile_id
  @filter = filter
end

Public Instance Methods

summarize(args={}) click to toggle source
# File lib/most-popular/google_analytics.rb, line 14
def summarize(args={})
  args = defaults.merge(args)
  results = @client.execute(
    :api_method => @api_method,
    :parameters => query_hash(args))
  results.data.rows
end

Private Instance Methods

defaults() click to toggle source
# File lib/most-popular/google_analytics.rb, line 24
def defaults
  {start_date: 'yesterday', end_date: 'today', num_results: 10 }
end
query_hash(args) click to toggle source
# File lib/most-popular/google_analytics.rb, line 28
def query_hash(args)
  {
      'ids' => "ga:" + @profile_id,
      'start-date' => args[:start_date],
      'end-date' => args[:end_date],
      'dimensions' => 'ga:pagePath',
      'metrics' => 'ga:pageviews',
      'sort' => '-ga:pageviews',
      'filters' => 'ga:pagePath=~^/' + @filter.to_s + '/.*',
      'max-results' => args[:num_results]
  }
end