python-amazon-ad-api 1.0.2__py3-none-any.whl → 1.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ad_api/api/v1/__init__.py CHANGED
@@ -1,9 +1,11 @@
1
1
  from .campaigns import Campaigns
2
2
  from .ad_groups import AdGroups
3
3
  from .ads import Ads
4
+ from .targets import Targets
4
5
 
5
6
  __all__ = [
6
7
  "Campaigns",
7
8
  "AdGroups",
8
9
  "Ads",
10
+ "Targets",
9
11
  ]
@@ -0,0 +1,205 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class Targets(Client):
5
+ r"""
6
+ Targets(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
7
+
8
+ Amazon Ads API v1 - unified Targets endpoints
9
+
10
+ The v1 API is not split by product: every call goes to the same resource
11
+ (``/adsApi/v1/...``) and the product is selected in the request body via
12
+ ``adProductFilter``.
13
+
14
+ """
15
+
16
+ @sp_endpoint('/adsApi/v1/query/targets', method='POST')
17
+ def query_targets(self, **kwargs) -> ApiResponse:
18
+ r"""
19
+ query_targets(body: dict) -> ApiResponse
20
+
21
+ Amazon Ads API v1 - Query Targets (operationId: QueryTarget)
22
+
23
+ Request Body [Required]
24
+ | **adProductFilter** (dict) : [required]
25
+ | **include** (list<AdProduct>) : Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
26
+ | **targetIdFilter** (dict) [optional]
27
+ | **include** (list<string>) : Target identifiers
28
+ | **adGroupIdFilter** (dict) [optional]
29
+ | **include** (list<string>) : Ad group identifiers
30
+ | **campaignIdFilter** (dict) [optional]
31
+ | **include** (list<string>) : Campaign identifiers
32
+ | **keywordFilter** (dict) [optional]
33
+ | **include** (list<string>) : Keyword texts
34
+ | **queryTermMatchType** (string) : [required] Enum [ BROAD_MATCH, EXACT_MATCH ]
35
+ | **productIdFilter** (dict) [optional]
36
+ | **include** (list<string>) : Product identifiers
37
+ | **queryTermMatchType** (string) : [required] Enum [ BROAD_MATCH, EXACT_MATCH ]
38
+ | **matchTypeFilter** (dict) [optional]
39
+ | **include** (list<MatchType>) : Enum [ BROAD, EXACT, INTERESTED_AUDIENCE, KEYWORDS_CLOSE_MATCH, KEYWORDS_LOOSE_MATCH, KEYWORDS_RELATED_TO_GIFTS, KEYWORDS_RELATED_TO_PEER_BRANDS_PRODUCT_CATEGORY, KEYWORDS_RELATED_TO_PRIME_DAY, KEYWORDS_RELATED_TO_YOUR_BRAND, KEYWORDS_RELATED_TO_YOUR_LANDING_PAGES, KEYWORDS_RELATED_TO_YOUR_PRODUCT_CATEGORY, PHRASE, PRODUCTS_SIMILAR_TO_ADVERTISED_PRODUCTS, PRODUCT_COMPLEMENTS, PRODUCT_EXACT, PRODUCT_REMARKETING, PRODUCT_SIMILAR, PRODUCT_SUBSTITUTES ]
40
+ | **negativeFilter** (dict) [optional]
41
+ | **include** (list<boolean>) : Keep only negative or non-negative targets
42
+ | **targetTypeFilter** (dict) [optional]
43
+ | **include** (list<TargetType>) : Enum [ AD_INITIATION, AD_PLAYER_SIZE, APP, AUDIENCE, BRAND_SAFETY_CATEGORY, BRAND_SAFETY_TIER, CONTENT_CATEGORY, CONTENT_GENRE, CONTENT_INSTREAM_POSITION, CONTENT_OUTSTREAM_POSITION, CONTENT_RATING, DAYPART, DEVICE, DOMAIN, FOLD_POSITION, INVENTORY_SOURCE, KEYWORD, LOCATION, NATIVE_CONTENT_POSITION, PLACEMENT_TYPE, PRODUCT, PRODUCT_AUDIENCE, PRODUCT_CATEGORY, SKIPPABILITY, THEME, THIRD_PARTY, VIDEO_AD_FORMAT, VIDEO_CONTENT_DURATION ]
44
+ | **nativeLanguageLocaleFilter** (dict) [optional]
45
+ | **include** (list<string>) : Locales of the unlocalized keyword text
46
+ | **retailerIdFilter** (dict) [optional]
47
+ | **include** (list<string>) : Retailer identifiers
48
+ | **stateFilter** (dict) [optional]
49
+ | **include** (list<State>) : Enum [ ARCHIVED, DRAFT, ENABLED, PAUSED ]
50
+ | **marketplaceScopeFilter** (dict) [optional]
51
+ | **include** (list<MarketplaceScope>) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
52
+ | **retailerScopeFilter** (dict) [optional]
53
+ | **include** (list<RetailerScope>) : Enum [ AMAZON, OTHER_RETAILERS ]
54
+ | **maxResults** (int) [optional] Maximum number of records in the response
55
+ | **nextToken** (string) [optional] Token to navigate to the next page
56
+
57
+ Headers
58
+ | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
59
+
60
+ Returns
61
+ ApiResponse
62
+ | **targets** (list), **nextToken** (string)
63
+
64
+ """
65
+ schema_version = 'application/json'
66
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
67
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
68
+
69
+ @sp_endpoint('/adsApi/v1/create/targets', method='POST')
70
+ def create_targets(self, **kwargs) -> ApiResponse:
71
+ r"""
72
+ create_targets(body: dict) -> ApiResponse
73
+
74
+ Amazon Ads API v1 - Create Targets (operationId: CreateTarget)
75
+
76
+ Request Body [Required]
77
+ | **targets** (list<dict>) : [required] One or more target objects.
78
+ Each object requires **adProduct**, **negative**, **state**,
79
+ **targetDetails** and **targetType**.
80
+
81
+ Target fields
82
+ | **adProduct** (string) : [required] Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
83
+ | **negative** (boolean) : [required] True for a negative target
84
+ | **state** (string) : [required] Enum [ DRAFT, ENABLED, PAUSED ]
85
+ | **targetDetails** (dict) : [required] Exactly one of the variants below
86
+ | **targetType** (string) : [required] Enum [ AD_INITIATION, AD_PLAYER_SIZE, APP, AUDIENCE, BRAND_SAFETY_CATEGORY, BRAND_SAFETY_TIER, CONTENT_CATEGORY, CONTENT_GENRE, CONTENT_INSTREAM_POSITION, CONTENT_OUTSTREAM_POSITION, CONTENT_RATING, DAYPART, DEVICE, DOMAIN, FOLD_POSITION, INVENTORY_SOURCE, KEYWORD, LOCATION, NATIVE_CONTENT_POSITION, PLACEMENT_TYPE, PRODUCT, PRODUCT_AUDIENCE, PRODUCT_CATEGORY, SKIPPABILITY, THEME, THIRD_PARTY, VIDEO_AD_FORMAT, VIDEO_CONTENT_DURATION ]
87
+ | **adGroupId** (string) [optional] Identifier of the parent ad group
88
+ | **campaignId** (string) [optional] Identifier of the parent campaign
89
+ | **bid** (dict) [optional]
90
+ | **bid** (number) : Bid value
91
+ | **marketplaceSettings** (list<dict>) : Per marketplace bids
92
+ | **marketplaceScope** (string) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
93
+ | **marketplaces** (list<dict>) : Marketplaces where the target runs
94
+ | **marketplaceConfigurations** (list<dict>) : Each with **marketplace** and **overrides** (both required)
95
+ | **tags** (list<dict>) : Each with **key** and **value** (both required)
96
+
97
+ targetDetails variants (use exactly one key, matching ``targetType``)
98
+ | **keywordTarget** : requires ``keyword`` + ``matchType`` (Enum BROAD, EXACT, PHRASE);
99
+ optional ``nativeLanguageKeyword``, ``nativeLanguageLocale``
100
+ | **productTarget** : requires ``matchType``, ``product``, ``productIdType``
101
+ | **productCategoryTarget** : requires ``productCategoryRefinement``;
102
+ optional ``matchType``, ``productGenreRefinement``
103
+ | **productAudienceTarget** : requires ``asin``, ``event``, ``lookback``, ``matchType``
104
+ | **audienceTarget** : requires ``audienceId``; optional ``acrossGroupOperator``, ``groupId``, ``inGroupOperator``
105
+ | **locationTarget** : requires ``locationId``; optional ``locationIdResolved``
106
+ | **domainTarget** : requires ``domainTargetDetails``, ``domainTargetType``
107
+ | **appTarget** : requires ``appId``, ``appType``
108
+ | **deviceTarget** : requires ``deviceType``; optional ``deviceOrientation``, ``mobileDevice``, ``mobileEnvironment``, ``mobileOs``
109
+ | **dayPartTarget** : requires ``dayOfWeek``, ``timeOfDay``
110
+ | **contentCategoryTarget** : requires ``contentCategoryId``
111
+ | **contentGenreTarget** : requires ``contentGenre``
112
+ | **contentRatingTarget** : requires ``contentRatingType``, ``contentRatingTypeDetails``
113
+ | **brandSafetyTierTarget** : requires ``brandSafetyTier``
114
+ | **brandSafetyCategoryTarget** : requires ``brandSafetyCategory``
115
+ | **inventorySourceTarget** : requires ``inventorySourceId``, ``inventorySourceType``
116
+ | **adInitiationTarget** : requires ``videoInitiationType``
117
+ | **adPlayerSizeTarget** : requires ``adPlayerSize``
118
+ | **videoAdFormatTarget** : requires ``videoAdFormat``
119
+ | **thirdPartyTarget** : requires ``thirdPartyTargetDetails``, ``thirdPartyTargetType``
120
+ | **themeTarget** : requires ``matchType``
121
+ | **contentInstreamPositionTarget** : requires ``instreamPosition``
122
+ | **contentOutstreamPositionTarget** : requires ``outstreamPosition``
123
+ | **videoContentDurationTarget** : requires ``duration``
124
+ | **foldPositionTarget** : requires ``foldPosition``
125
+ | **nativeContentPositionTarget** : requires ``nativePosition``
126
+ | **placementTypeTarget** : requires ``placementType``
127
+ | **skippabilityTarget** : requires ``skippabilityType``
128
+
129
+ Example of the envelope::
130
+
131
+ {"targetDetails": {"keywordTarget": {"keyword": "running shoes", "matchType": "EXACT"}}}
132
+
133
+ Headers
134
+ | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
135
+
136
+ Returns
137
+ ApiResponse
138
+ | **207** MultiStatus response with partial errors. Inspect the payload
139
+ to know which targets were created and which failed.
140
+
141
+ """
142
+ schema_version = 'application/json'
143
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
144
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
145
+
146
+ @sp_endpoint('/adsApi/v1/update/targets', method='POST')
147
+ def update_targets(self, **kwargs) -> ApiResponse:
148
+ r"""
149
+ update_targets(body: dict) -> ApiResponse
150
+
151
+ Amazon Ads API v1 - Update Targets (operationId: UpdateTarget)
152
+
153
+ Request Body [Required]
154
+ | **targets** (list<dict>) : [required] One or more target objects.
155
+ Each object requires **targetId** and may include any of the fields below.
156
+
157
+ Target fields [optional except targetId]
158
+ | **targetId** (string) : [required] The identifier of the target to update.
159
+ | **state** (string) : Enum [ DRAFT, ENABLED, PAUSED ]
160
+ | **bid** (dict) : ``bid`` (number) and ``marketplaceSettings``
161
+ | **campaignId** (string)
162
+ | **marketplaceScope** (string) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
163
+ | **marketplaces** (list<dict>)
164
+ | **marketplaceConfigurations** (list<dict>)
165
+ | **tags** (list<dict>)
166
+
167
+ Note: ``targetDetails``, ``targetType``, ``negative`` and ``adProduct``
168
+ are not part of the update body. To change what a target points at,
169
+ delete it and create a new one.
170
+
171
+ Headers
172
+ | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
173
+
174
+ Returns
175
+ ApiResponse
176
+ | **207** MultiStatus response with partial errors. Inspect the payload
177
+ to know which targets were updated and which failed.
178
+
179
+ """
180
+ schema_version = 'application/json'
181
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
182
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
183
+
184
+ @sp_endpoint('/adsApi/v1/delete/targets', method='POST')
185
+ def delete_targets(self, **kwargs) -> ApiResponse:
186
+ r"""
187
+ delete_targets(body: dict) -> ApiResponse
188
+
189
+ Amazon Ads API v1 - Delete Targets (operationId: DeleteTarget)
190
+
191
+ Request Body [Required]
192
+ | **targetIds** (list<string>) : [required] Target identifiers to delete
193
+
194
+ Headers
195
+ | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
196
+
197
+ Returns
198
+ ApiResponse
199
+ | **207** MultiStatus response with partial errors. Inspect the payload
200
+ to know which target ids succeeded and which failed.
201
+
202
+ """
203
+ schema_version = 'application/json'
204
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
205
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
ad_api/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.0.2"
1
+ __version__ = "1.0.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Python wrapper for the Amazon Advertising API
5
5
  Home-page: https://github.com/denisneuf/python-amazon-ad-api
6
6
  Author: Daniel Alvaro
@@ -305,6 +305,7 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
305
305
 
306
306
  * [Campaigns](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/campaigns.html#ad_api.api.v1.Campaigns.Campaigns.query_campaigns)
307
307
  * [Ad Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ad_groups.html#ad_api.api.v1.AdGroups.AdGroups.query_ad_groups)
308
+ * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ads.html#ad_api.api.v1.Ads.Ads.query_ads)
308
309
 
309
310
 
310
311
  ### [Modules Available Sponsored Products 2.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v2.html)
@@ -1,5 +1,5 @@
1
1
  ad_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- ad_api/version.py,sha256=Y3LSfRioSl2xch70pq_ULlvyECXyEtN3krVaWeGyaxk,22
2
+ ad_api/version.py,sha256=2plzdEEb24FLjE2I2XyBBcJEPYWHccNL4SgtLC_6erg,22
3
3
  ad_api/api/__init__.py,sha256=E9c0ZyK4vplMlKKEBF8CV5u7P4uSkTMSQsAuSQu5bfY,1514
4
4
  ad_api/api/account.py,sha256=CmOvCfHoPWaeTUJvtB0pNoNulZVSz4oMMCKIpVTpHos,2931
5
5
  ad_api/api/advertising_test_account.py,sha256=btOVbdk2tBDmyKSJaQbcIFyzNG8KFJVUmTe4p9xMhpU,1507
@@ -103,10 +103,11 @@ ad_api/api/sp/reports.py,sha256=OMNHL86doMZpbcLixIN1GLf6Mtm_KRxxxs6_vuzMLbU,5381
103
103
  ad_api/api/sp/schedule_based_bid_optimization.py,sha256=G8VkS7iP1lTIAxZgbfRCLz8njw1DkVH9HQPOZ63pWNU,2371
104
104
  ad_api/api/sp/snapshots.py,sha256=Pl72FpsTRhgA-FQYapTCAqhKLioUMn_Bdru502TS_RE,2969
105
105
  ad_api/api/sp/suggested_keywords.py,sha256=cmE8W6q9bIBVt9Zuy1bZKOWErvcIuOyCt8-XAgrhnu8,3553
106
- ad_api/api/v1/__init__.py,sha256=Z6lR-p-gu-OQbdLOM_Zr-zfuvXN-O8fGYXvnmobCCMs,145
106
+ ad_api/api/v1/__init__.py,sha256=F2CvJLkWZDG_ykzVnivBb10CvmSWw2lVf-7dy5oH8LM,189
107
107
  ad_api/api/v1/ad_groups.py,sha256=pQhCVdve_O6kbL4mBA5bxxhKcKNl_BKqa7z9DvrxwaM,12626
108
108
  ad_api/api/v1/ads.py,sha256=YwZGQ-4WuYquleELtwRI9L8w0fGw7FBRejQE-tZ5hKY,7941
109
109
  ad_api/api/v1/campaigns.py,sha256=u5PlvoAhgVhMxbCvYkPgqtbYK3TXXcb7TMie0Qjrgwc,9573
110
+ ad_api/api/v1/targets.py,sha256=a4BzPjg9m1JJwqphhpQOFkNIcgCw7v4-K0sNzOihMZI,12355
110
111
  ad_api/auth/__init__.py,sha256=B_yKdmsHENQaKfMFAIcSxQqG4aBUmNBm5orKIMUYObk,229
111
112
  ad_api/auth/access_token_client.py,sha256=_V0FGXRmqRNMb1fz1AGqnR6gYr_WqFkMTbK1os0yoIk,2983
112
113
  ad_api/auth/access_token_response.py,sha256=zlkfo3oWjkhAqNJIUOM0S4g_FvpgDa3IwNLxlREM89A,275
@@ -122,8 +123,8 @@ ad_api/base/exceptions.py,sha256=9D3M40ZIlLS0fA-aQh1BTWPOW-Nvf0tRhbA85jFnDJ4,438
122
123
  ad_api/base/helpers.py,sha256=naUkDLK466x_OBCPXxMlzRc2nPC6iQ6H_vyUji0MJJ0,2282
123
124
  ad_api/base/marketplaces.py,sha256=44lvCcluXNpqTprWQ80e3weSQmQbJoWL-WDSOWVbCyQ,4657
124
125
  ad_api/base/utils.py,sha256=_qnCBOvyJTLgaZjJzUWTi38GGLHkQszXELs79133Rb4,5618
125
- python_amazon_ad_api-1.0.2.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
126
- python_amazon_ad_api-1.0.2.dist-info/METADATA,sha256=0nzo2nhaWDo6X5cyMsKkS-6dbMIK7DWfgV0U7lVuCHQ,20342
127
- python_amazon_ad_api-1.0.2.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
128
- python_amazon_ad_api-1.0.2.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
129
- python_amazon_ad_api-1.0.2.dist-info/RECORD,,
126
+ python_amazon_ad_api-1.0.3.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
127
+ python_amazon_ad_api-1.0.3.dist-info/METADATA,sha256=MsEaaj5aQwh0a5eRSOAQBZ997cif7SgtkXxYXhg9gWs,20449
128
+ python_amazon_ad_api-1.0.3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
129
+ python_amazon_ad_api-1.0.3.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
130
+ python_amazon_ad_api-1.0.3.dist-info/RECORD,,