Module: AdwordsApi::ApiConfig

Extended by:
AdsCommon::ApiConfig
Defined in:
lib/adwords_api/api_config.rb

Overview

Contains helper methods for loading and managing the available services.

Constant Summary collapse

DEFAULT_VERSION =

Set defaults

:v201101
DEFAULT_ENVIRONMENT =
:PRODUCTION
LATEST_VERSION =
:v201101
API_NAME =

Set other constants

'AdwordsApi'
API_PATH =
'adwords_api'
CLIENT_LIB_VERSION =
'0.2.0'
DEFAULT_CONFIG_FILENAME =
'adwords_api.yml'
@@service_config =

Configure the services available to each version

{
  :v13 => [:AccountService, :ReportService, :TrafficEstimatorService],
  :v200909 => [:AdExtensionOverrideService, :AdGroupAdService,
               :AdGroupCriterionService, :AdGroupService, :AdParamService,
               :BulkMutateJobService, :CampaignAdExtensionService,
               :CampaignCriterionService, :CampaignService,
               :CampaignTargetService, :GeoLocationService, :InfoService,
               :TargetingIdeaService],
  :v201003 => [:AdExtensionOverrideService, :AdGroupAdService,
               :AdGroupCriterionService, :AdGroupService, :AdParamService,
               :BidLandscapeService, :BulkMutateJobService,
               :CampaignAdExtensionService, :CampaignCriterionService,
               :CampaignService, :CampaignTargetService,
               :GeoLocationService, :InfoService, :MediaService,
               :ReportDefinitionService, :TargetingIdeaService],
  :v201008 => [:AdExtensionOverrideService, :AdGroupAdService,
               :AdGroupCriterionService, :AdGroupService, :AdParamService,
               :AlertService, :BidLandscapeService, :BulkMutateJobService,
               :CampaignAdExtensionService, :CampaignCriterionService,
               :CampaignService, :CampaignTargetService,
               :CustomerSyncService, :ExperimentService,
               :GeoLocationService, :InfoService, :MediaService,
               :ReportDefinitionService, :ServicedAccountService,
               :TargetingIdeaService, :TrafficEstimatorService,
               :UserListService],
  :v201101 => [:AdExtensionOverrideService, :AdGroupAdService,
               :AdGroupCriterionService, :AdGroupService, :AdParamService,
               :AlertService, :BulkMutateJobService,
               :BulkOpportunityService, :CampaignAdExtensionService,
               :CampaignCriterionService, :CampaignService,
               :CampaignTargetService, :ConversionTrackerService,
               :CustomerSyncService, :DataService, :ExperimentService,
               :GeoLocationService, :InfoService, :MediaService,
               :ReportDefinitionService, :ServicedAccountService,
               :TargetingIdeaService, :TrafficEstimatorService,
               :UserListService]
}
@@environment_config =

Configure the different environments, with the base URL for each one

{
  :PRODUCTION => {
    :v13 => 'https://adwords.google.com/api/adwords/',
    :v200909 => 'https://adwords.google.com/api/adwords/',
    :v201003 => 'https://adwords.google.com/api/adwords/',
    :v201008 => 'https://adwords.google.com/api/adwords/',
    :v201101 => 'https://adwords.google.com/api/adwords/'
  },
  :SANDBOX => {
    :v13 => 'https://sandbox.google.com/api/adwords/',
    :v200909 => 'https://adwords-sandbox.google.com/api/adwords/',
    :v201003 => 'https://adwords-sandbox.google.com/api/adwords/',
    :v201008 => 'https://adwords-sandbox.google.com/api/adwords/',
    :v201101 => 'https://adwords-sandbox.google.com/api/adwords/'
  }
}
@@subdir_config =

Configure the subdirectories for each version / service pair. A missing pair means that only the base URL is used.

{
  # v13
  [:v13, :AccountService] => '',
  [:v13, :ReportService] => '',
  [:v13, :TrafficEstimatorService] => '',
  # v200909
  [:v200909, :AdExtensionOverrideService] => 'cm/',
  [:v200909, :AdGroupAdService] => 'cm/',
  [:v200909, :AdGroupCriterionService] => 'cm/',
  [:v200909, :AdGroupService] => 'cm/',
  [:v200909, :AdParamService] => 'cm/',
  [:v200909, :BulkMutateJobService] => 'job/',
  [:v200909, :CampaignAdExtensionService] => 'cm/',
  [:v200909, :CampaignCriterionService] => 'cm/',
  [:v200909, :CampaignService] => 'cm/',
  [:v200909, :CampaignTargetService] => 'cm/',
  [:v200909, :GeoLocationService] => 'cm/',
  [:v200909, :InfoService] => 'info/',
  [:v200909, :TargetingIdeaService] => 'o/',
  # v201003
  [:v201003, :AdExtensionOverrideService] => 'cm/',
  [:v201003, :AdGroupAdService] => 'cm/',
  [:v201003, :AdGroupCriterionService] => 'cm/',
  [:v201003, :AdGroupService] => 'cm/',
  [:v201003, :AdParamService] => 'cm/',
  [:v201003, :BidLandscapeService] => 'cm/',
  [:v201003, :BulkMutateJobService] => 'job/',
  [:v201003, :CampaignAdExtensionService] => 'cm/',
  [:v201003, :CampaignCriterionService] => 'cm/',
  [:v201003, :CampaignService] => 'cm/',
  [:v201003, :CampaignTargetService] => 'cm/',
  [:v201003, :GeoLocationService] => 'cm/',
  [:v201003, :InfoService] => 'info/',
  [:v201003, :MediaService] => 'cm/',
  [:v201003, :ReportDefinitionService] => 'cm/',
  [:v201003, :TargetingIdeaService] => 'o/',
  # v201008
  [:v201008, :AdExtensionOverrideService] => 'cm/',
  [:v201008, :AdGroupAdService] => 'cm/',
  [:v201008, :AdGroupCriterionService] => 'cm/',
  [:v201008, :AdGroupService] => 'cm/',
  [:v201008, :AdParamService] => 'cm/',
  [:v201008, :AlertService] => 'mcm/',
  [:v201008, :BidLandscapeService] => 'cm/',
  [:v201008, :BulkMutateJobService] => 'job/',
  [:v201008, :CampaignAdExtensionService] => 'cm/',
  [:v201008, :CampaignCriterionService] => 'cm/',
  [:v201008, :CampaignService] => 'cm/',
  [:v201008, :CampaignTargetService] => 'cm/',
  [:v201008, :CustomerSyncService] => 'ch/',
  [:v201008, :ExperimentService] => 'cm/',
  [:v201008, :GeoLocationService] => 'cm/',
  [:v201008, :InfoService] => 'info/',
  [:v201008, :MediaService] => 'cm/',
  [:v201008, :ReportDefinitionService] => 'cm/',
  [:v201008, :ServicedAccountService] => 'mcm/',
  [:v201008, :TargetingIdeaService] => 'o/',
  [:v201008, :TrafficEstimatorService] => 'o/',
  [:v201008, :UserListService] => 'cm/',
  # v201101
  [:v201101, :AdExtensionOverrideService] => 'cm/',
  [:v201101, :AdGroupAdService] => 'cm/',
  [:v201101, :AdGroupCriterionService] => 'cm/',
  [:v201101, :AdGroupService] => 'cm/',
  [:v201101, :AdParamService] => 'cm/',
  [:v201101, :AlertService] => 'mcm/',
  [:v201101, :BulkMutateJobService] => 'job/',
  [:v201101, :BulkOpportunityService] => 'o/',
  [:v201101, :CampaignAdExtensionService] => 'cm/',
  [:v201101, :CampaignCriterionService] => 'cm/',
  [:v201101, :CampaignService] => 'cm/',
  [:v201101, :CampaignTargetService] => 'cm/',
  [:v201101, :ConversionTrackerService] => 'cm/',
  [:v201101, :CustomerSyncService] => 'ch/',
  [:v201101, :DataService] => 'cm/',
  [:v201101, :ExperimentService] => 'cm/',
  [:v201101, :GeoLocationService] => 'cm/',
  [:v201101, :InfoService] => 'info/',
  [:v201101, :MediaService] => 'cm/',
  [:v201101, :ReportDefinitionService] => 'cm/',
  [:v201101, :ServicedAccountService] => 'mcm/',
  [:v201101, :TargetingIdeaService] => 'o/',
  [:v201101, :TrafficEstimatorService] => 'o/',
  [:v201101, :UserListService] => 'cm/'
}
@@auth_server_config =

Configure the auth servers to use for each environment

{
  :PRODUCTION => 'https://www.google.com',
  :SANDBOX => 'https://www.google.com'
}
@@headers_config =
{
  :REQUEST_HEADER => 'RequestHeader',
  :HEADER_NAMESPACE_PREAMBLE =>
      'https://adwords.google.com/api/adwords/cm/',
  :LOGIN_SERVICE_NAME => 'adwords'
}

Class Method Summary collapse

Class Method Details

.api_nameObject



219
220
221
# File 'lib/adwords_api/api_config.rb', line 219

def self.api_name
  API_NAME
end

.api_pathObject



223
224
225
# File 'lib/adwords_api/api_config.rb', line 223

def self.api_path
  API_PATH
end

.auth_server_configObject



239
240
241
# File 'lib/adwords_api/api_config.rb', line 239

def self.auth_server_config
  @@auth_server_config
end

.default_config_filenameObject



243
244
245
# File 'lib/adwords_api/api_config.rb', line 243

def self.default_config_filename
  DEFAULT_CONFIG_FILENAME
end

.default_environmentObject



211
212
213
# File 'lib/adwords_api/api_config.rb', line 211

def self.default_environment
  DEFAULT_ENVIRONMENT
end

.default_versionObject

Getters for constants and module variables.



207
208
209
# File 'lib/adwords_api/api_config.rb', line 207

def self.default_version
  DEFAULT_VERSION
end

.environment_configObject



231
232
233
# File 'lib/adwords_api/api_config.rb', line 231

def self.environment_config
  @@environment_config
end

.headers_configObject



247
248
249
# File 'lib/adwords_api/api_config.rb', line 247

def self.headers_config
  @@headers_config
end

.interface_name(version, service) ⇒ Object

Returns the full interface class name for a given service. Overriding this method from ads_common to fix odd behaviour with v13 class names.

Args:

  • version: the API version (as an integer)

  • service: the service name (as a string)

Returns: The full interface class name for the given service (as a string)



261
262
263
264
265
# File 'lib/adwords_api/api_config.rb', line 261

def self.interface_name(version, service)
  service_str = service.to_s
  service_str = service_str.sub(/Service$/, '') if version == :v13
  return module_name(version, service) + "::#{service_str}Interface"
end

.latest_versionObject



215
216
217
# File 'lib/adwords_api/api_config.rb', line 215

def self.latest_version
  LATEST_VERSION
end

.report_download_url(environment, version) ⇒ Object

Get the download URL for reports.

Args:

  • environment: the service environment to be used (as a string)

  • version: the API version (as an integer)

Returns: The endpoint URL (as a string)



276
277
278
279
280
281
282
283
284
# File 'lib/adwords_api/api_config.rb', line 276

def self.report_download_url(environment, version)
  base = get_wsdl_base(environment, version)
  if base
    path = service_config[version].include?(:ReportDefinitionService) ?
        'reportdownload' : nil
    base += path.to_s
  end
  return base
end

.service_configObject



227
228
229
# File 'lib/adwords_api/api_config.rb', line 227

def self.service_config
  @@service_config
end

.subdir_configObject



235
236
237
# File 'lib/adwords_api/api_config.rb', line 235

def self.subdir_config
  @@subdir_config
end