Class: AmazonAds::API
- Inherits:
-
Object
- Object
- AmazonAds::API
- Defined in:
- lib/amazon_ads/api.rb
Overview
Base class for Amazon Ads API endpoints
Direct Known Subclasses
AdAssociations, AdExtensions, AdGroups, Ads, AdvertiserAccounts, AdvertisingDealTargets, AdvertisingDeals, BrandStoreEditionPublishVersions, BrandStoreEditions, BrandStorePages, BrandStores, BrandedKeywordsPricings, CampaignForecasts, Campaigns, CommitmentSpends, Commitments, DealPreferences, GeoLocations, KeywordReservationValidations, LocationIndexes, ManagerAccounts, MarketingStream, Profiles, RecommendationTypes, Recommendations, Reporting, ReservedTargetPricings, SellingAccounts, SupplierAdProductPrices, SupplierAdProducts, SupplierProposalDestinations, SupplierProposals, SupplierProposedDealForecasts, SupplierProposedDealHistoricalVersions, SupplierProposedDealRevisions, SupplierProposedDeals, SupplierPublishers, SupplierTargetItems, Targets
Constant Summary collapse
- ENDPOINTS =
{ #: Hash[Symbol, String] na: "advertising-api.amazon.com", eu: "advertising-api-eu.amazon.com", fe: "advertising-api-fe.amazon.com", }.freeze
Instance Attribute Summary collapse
-
#access_token ⇒ Object
readonly
LWA access token.
-
#account_id ⇒ Object
readonly
Advertiser account.
-
#profile_id ⇒ Object
readonly
Advertiser profile, scopes requests to a marketplace.
-
#region ⇒ Object
readonly
API endpoint region.
-
#retries ⇒ Object
readonly
Number of retries when throttled (default: 0).
Instance Method Summary collapse
- #endpoint ⇒ Object
- #http ⇒ Object
-
#initialize(region:, access_token:, profile_id: nil, account_id: nil, retries: 0, http: HTTP) ⇒ API
constructor
A new instance of API.
Constructor Details
#initialize(region:, access_token:, profile_id: nil, account_id: nil, retries: 0, http: HTTP) ⇒ API
Returns a new instance of API.
30 31 32 33 34 35 36 37 |
# File 'lib/amazon_ads/api.rb', line 30 def initialize(region:, access_token:, profile_id: nil, account_id: nil, retries: 0, http: HTTP) @region = region.to_s.downcase.to_sym @access_token = access_token @profile_id = profile_id @account_id = account_id @retries = retries @http = http end |
Instance Attribute Details
#access_token ⇒ Object (readonly)
LWA access token
18 19 20 |
# File 'lib/amazon_ads/api.rb', line 18 def access_token @access_token end |
#account_id ⇒ Object (readonly)
Advertiser account
24 25 26 |
# File 'lib/amazon_ads/api.rb', line 24 def account_id @account_id end |
#profile_id ⇒ Object (readonly)
Advertiser profile, scopes requests to a marketplace
21 22 23 |
# File 'lib/amazon_ads/api.rb', line 21 def profile_id @profile_id end |
#region ⇒ Object (readonly)
API endpoint region
15 16 17 |
# File 'lib/amazon_ads/api.rb', line 15 def region @region end |
#retries ⇒ Object (readonly)
Number of retries when throttled (default: 0)
27 28 29 |
# File 'lib/amazon_ads/api.rb', line 27 def retries @retries end |
Instance Method Details
#endpoint ⇒ Object
40 41 42 43 44 |
# File 'lib/amazon_ads/api.rb', line 40 def endpoint URI::HTTPS.build(host: ENDPOINTS.fetch(region) do raise ArgumentError, "Unknown region: #{region}" end) end |
#http ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/amazon_ads/api.rb', line 47 def http client = @http .headers(default_headers) .use(:auto_inflate) return client if retries.zero? client.retriable(tries: retries + 1, retry_statuses: [429]) end |