class Embulk::Input::SearchAnalytics::Plugin

Public Class Methods

columns_from_task(task) click to toggle source
# File lib/embulk/input/search_analytics/plugin.rb, line 37
def self.columns_from_task(task)
  columns = task["dimensions"].map{|dimension|
    Column.new(nil, dimension, :string)
  }
  columns << Column.new(nil, "clicks", :long)
  columns << Column.new(nil, "impressions", :long)
  columns << Column.new(nil, "ctr", :double)
  columns << Column.new(nil, "position", :double)
  columns
end
resume(task, columns, count) { |task, columns, count| ... } click to toggle source
# File lib/embulk/input/search_analytics/plugin.rb, line 30
def self.resume(task, columns, count, &control)
  task_reports = yield(task, columns, count)

  next_config_diff = {}
  return next_config_diff
end
transaction(config, &control) click to toggle source
# File lib/embulk/input/search_analytics/plugin.rb, line 7
def self.transaction(config, &control)
  task = {
    # API Authorize Parameters
    "token_credential_uri" => "https://accounts.google.com/o/oauth2/token",
    "audience" => "https://accounts.google.com/o/oauth2/token",
    "client_id" => config.param("client_id", :string),
    "client_secret" => config.param("client_secret", :string),
    "refresh_token" => config.param("refresh_token", :string),
    "scope" => "https://www.googleapis.com/auth/webmasters.readonly",

    # API Request Parameters
    "site_url" => config.param("site_url", :string),
    "start_date" => config.param("start_date", :string),
    "end_date" => config.param("end_date", :string),
    "dimensions" => config.param("dimensions", :array),
    "dimension_filter_groups" => config.param("dimension_filter_groups", :array, default: nil),
    "search_type" => config.param("search_type", :string, default: "web"),
    "row_limit" => config.param("row_limit", :integer, default: 5000),
  }
  columns = columns_from_task(task)
  resume(task, columns, 1, &control)
end

Public Instance Methods

init() click to toggle source
# File lib/embulk/input/search_analytics/plugin.rb, line 48
def init
end
run() click to toggle source
# File lib/embulk/input/search_analytics/plugin.rb, line 51
def run
  columns = self.class.columns_from_task(task)
  Client.new(task, @is_preview).invoke.each do |row|
    @page_builder.add columns.map{|col| row[col.name]}
  end
  @page_builder.finish
  task_report = {}
  task_report
end