python-amazon-ad-api 1.2.5__py3-none-any.whl → 1.2.7__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.
@@ -1,4 +1,4 @@
1
- from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
1
+ from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse, Utils
2
2
 
3
3
 
4
4
  class CreativeAssets(Client):
@@ -121,3 +121,71 @@ class CreativeAssets(Client):
121
121
 
122
122
  """
123
123
  return self._request(kwargs.pop('path'), params=kwargs)
124
+
125
+ @sp_endpoint('/assets/batchRegister', method='POST')
126
+ def batch_register_assets(self, **kwargs) -> ApiResponse:
127
+ r"""
128
+ Registers several uploaded assets in one call.
129
+
130
+ This route is asynchronous. It answers a ``requestId`` and nothing else,
131
+ so the result has to be read with ``get_batch_register_status``.
132
+
133
+ Request Body (required)
134
+
135
+ - ``assetDetailsList`` (array): between 1 and 50 entries, each one shaped
136
+ like the body ``register_asset`` accepts:
137
+
138
+ - ``url`` (string): where the file sits, from ``upload_asset``.
139
+ - ``name`` (string): the name to give the asset.
140
+ - ``assetType`` (string): ``IMAGE``.
141
+ - ``assetSubTypeList`` (array): ``LOGO``, ``PRODUCT_IMAGE``,
142
+ ``AUTHOR_IMAGE``, ``LIFESTYLE_IMAGE`` or ``OTHER_IMAGE``.
143
+ - ``asinList`` (array): tags the asset with ASINs, so it can be found
144
+ by product later.
145
+ - ``associatedPrograms`` (array): up to 100 entries, one per program
146
+ the asset belongs to.
147
+ - ``otherMetadata`` (object): free key-value pairs of strings.
148
+ - ``tagList`` (array): tags for the asset.
149
+ - ``versionInfo`` (object): ``linkedAssetId`` and ``versionNotes``, to
150
+ register this file as a new version of an existing asset.
151
+ - ``skipAssetSubTypesDetection`` (boolean): keep the subtype as given
152
+ instead of letting the service reclassify it.
153
+
154
+ - ``batchRegistrationContext`` (object): the context applied to the whole
155
+ batch.
156
+
157
+ Returns
158
+ ApiResponse with ``requestId``, which ``get_batch_register_status``
159
+ takes.
160
+
161
+ """
162
+ headers = {
163
+ 'Accept': 'application/vnd.assetsbatchregisterresponse.v1+json',
164
+ 'Content-Type': 'application/vnd.assetsbatchregisterrequest.v1+json',
165
+ }
166
+ body = Utils.convert_body(kwargs.pop('body'), wrap=False)
167
+ return self._request(kwargs.pop('path'), data=body, params=kwargs, headers=headers)
168
+
169
+ @sp_endpoint('/assets/batchRegister/{}', method='GET')
170
+ def get_batch_register_status(self, requestId, **kwargs) -> ApiResponse:
171
+ r"""
172
+ Reports whether a batch registration has finished.
173
+
174
+ The ``requestId`` comes from ``batch_register_assets``. An id the service
175
+ does not know answers ``400`` with
176
+ ``AARServiceBadRequestException ... No request exists for the requestId``,
177
+ not a ``404``: the route answers either way, and the message says the id
178
+ was not found.
179
+
180
+ Path
181
+
182
+ - ``requestId`` (string): required. The identifier the batch call
183
+ returned.
184
+
185
+ Returns
186
+ ApiResponse with the state of that batch.
187
+
188
+ """
189
+ headers = {'Accept': 'application/vnd.creativeassetsgetbatchregisterresponse.v3+json'}
190
+ return self._request(fill_query_params(kwargs.pop('path'), requestId),
191
+ params=kwargs, headers=headers)
ad_api/api/insights.py CHANGED
@@ -5,38 +5,48 @@ class Insights(Client):
5
5
  """ """
6
6
 
7
7
  @sp_endpoint('/insights/audiences/{}/overlappingAudiences', method='GET')
8
- def get_insights(self, audienceId: str, version: int = 1, **kwargs) -> ApiResponse:
8
+ def get_insights(self, audienceId: str, version: int = 2, **kwargs) -> ApiResponse:
9
9
  r"""
10
- get_insights(audienceId: str, version: int = 1, **kwargs) -> ApiResponse
10
+ Returns the audiences that overlap with the one given, ranked by affinity.
11
11
 
12
- Retrieves the top audiences that overlap with the provided audience.
12
+ Keyword Args
13
13
 
14
- Requires one of these permissions: ["advertiser_campaign_edit","advertiser_campaign_view"]
14
+ - ``version`` (int): the ``Accept`` version. **Only 2 answers**; 1 was
15
+ retired and replies ``415`` naming v2 as the sole supported type.
16
+ Defaults to 2. [optional]
15
17
 
16
- path **audienceId**:string | Required. The identifier of an audience.
18
+ Path
17
19
 
18
- internal **version**:int | Optional. The version of the overlapping audiences accept 'application/vnd.insightsaudiencesoverlap.v'+str(version)+'+json'. Available values : 1, 2 Default: 1
20
+ - ``audienceId`` (string): required. The audience to measure against.
19
21
 
20
- query **adType**:string | Required. The advertising program. Available values : DSP, SD
22
+ Query
21
23
 
22
- query **advertiserId**:string | Optional. The identifier of the advertiser you'd like to retrieve overlapping audiences for. This parameter is required for the DSP adType, but is optional for the SD adType.
24
+ - ``adType`` (string): required in practice, ``SD`` or ``DSP``. When it
25
+ is left out the service assumes ``DSP`` and answers
26
+ ``400 Missing advertiserId parameter for DSP request``, which names the
27
+ wrong parameter. Send it explicitly.
28
+ - ``advertiserId`` (string): required for ``DSP``, ignored for ``SD``.
29
+ - ``audienceCategory`` (string): keep only audiences of that category,
30
+ such as ``"In-market"``. The contract calls it an array; a plain string
31
+ is what the service accepts and applies.
32
+ - ``maxResults`` (integer): how many overlaps to return. Default 30.
33
+ Works, and the count follows it.
34
+ - ``nextToken`` (string): token from a previous answer. Subsequent calls
35
+ must repeat the same parameters.
23
36
 
24
- query **minimumAudienceSize**:number | Optional. If specified, the sizes of all returned overlapping audiences will be at least the provided size. This parameter is supported only for request to return application/vnd.insightsaudiencesoverlap.v1+json.
37
+ Three parameters are accepted and then ignored: ``minimumAudienceSize``,
38
+ ``maximumAudienceSize`` and ``minimumOverlapAffinity``. The call answers
39
+ ``200`` with the same count as without them, so a filter that was never
40
+ applied is indistinguishable from one that matched everything. Check the
41
+ count, not the status.
25
42
 
26
- query **maximumAudienceSize**:number | Optional. If specified, the sizes of all returned overlapping audiences will be at most the provided size. This parameter is supported only for request to return application/vnd.insightsaudiencesoverlap.v1+json.
27
-
28
- query **minimumOverlapAffinity**:number | Optional. If specified, the affinities of all returned overlapping audiences will be at least the provided affinity.
29
-
30
- query **maximumOverlapAffinity**:number | Optional. If specified, the affinities of all returned overlapping audiences will be at most the provided affinity.
31
-
32
- query **audienceCategory**:array[string] | Optional. f specified, the categories of all returned overlapping audiences will be one of the provided categories.
33
-
34
- query **maxResults**:integer | Optional. Sets the maximum number of overlapping audiences in the response. This parameter is supported only for request to return application/vnd.insightsaudiencesoverlap.v2+json. Default value : 30
35
-
36
- query **nextToken**:string | Optional. TToken to be used to request additional overlapping audiences. If not provided, the top 30 overlapping audiences are returned. Note: subsequent calls must be made using the same parameters as used in previous requests.
43
+ Returns
44
+ ApiResponse with ``requestedAudienceMetadata``, ``overlappingAudiences``,
45
+ ``marketplace`` and ``nextToken``. Each overlap carries
46
+ ``audienceMetadata`` and ``affinity``, a number where higher means a
47
+ closer match.
37
48
 
38
49
  """
39
-
40
50
  contentType = 'application/vnd.insightsaudiencesoverlap.v' + str(version) + '+json'
41
51
  headers = {'Accept': contentType}
42
52
  return self._request(fill_query_params(kwargs.pop('path'), audienceId), params=kwargs, headers=headers)
ad_api/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.2.5"
1
+ __version__ = "1.2.7"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.2.5
3
+ Version: 1.2.7
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
@@ -267,8 +267,8 @@ curl \
267
267
  * [Invoices](https://python-amazon-ad-api.readthedocs.io/en/latest/api/invoices.html)
268
268
  * [Billing](https://python-amazon-ad-api.readthedocs.io/en/latest/api/billing.html)
269
269
  * [Audiences](https://python-amazon-ad-api.readthedocs.io/en/latest/api/audiences.html)
270
- * [Change History open Beta](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
271
- * [Creative Assets open Beta](https://python-amazon-ad-api.readthedocs.io/en/latest/api//creative_assets.html)
270
+ * [Change History](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
271
+ * [Creative Assets](https://python-amazon-ad-api.readthedocs.io/en/latest/api/creative_assets.html)
272
272
  * [Elegibility](https://python-amazon-ad-api.readthedocs.io/en/latest/api/eligibility.html)
273
273
  * [Insights](https://python-amazon-ad-api.readthedocs.io/en/latest/api/insights.html)
274
274
  * [Localization](https://python-amazon-ad-api.readthedocs.io/en/latest/api/localization.html)
@@ -1,5 +1,5 @@
1
1
  ad_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- ad_api/version.py,sha256=jBmZf3HLbiQlWiolOsAA6J5-BbxXD2bqFqEqDH3lfqo,22
2
+ ad_api/version.py,sha256=49prCLbE3fFzLfxem5rd2dr1iV4_L-bN0N4J7jxU5yA,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
@@ -7,11 +7,11 @@ ad_api/api/attribution.py,sha256=vHmXP0wDqhEqaS1q3tJyERxJ1JwntqoEb73LVXNHxR0,512
7
7
  ad_api/api/audiences.py,sha256=TQPt4avswFdCodNfQGDGxcJ2mY2LP2BfYvjxP6oJ0qY,3491
8
8
  ad_api/api/billing.py,sha256=84UhquQRAYGle7sGccP6mgsypLw_c_gJi3qe1uYLmYk,4364
9
9
  ad_api/api/brand_metrics.py,sha256=IlOlVJ2t6cL5DA49RaM3M1AW_3KFEyal08e0ZcnLdVE,6036
10
- ad_api/api/creative_assets.py,sha256=EzxrQbxMe5Y1b6qONJ3zi8cwoorCZAqSmHhiug6d87E,6671
10
+ ad_api/api/creative_assets.py,sha256=u0bCnioUFpGOQO5Z_MO0ErSLcAgSZB5GWM5wm2oW6L0,9687
11
11
  ad_api/api/eligibility.py,sha256=xbHMNxpRqToQDlG8y7nhhSr55ZZIJ_ZA304rmWa7Jx0,3680
12
12
  ad_api/api/exports.py,sha256=Y59C99axCAltMgu3gbfzdnoLKjNTsJ7s1z18yzcxzls,2788
13
13
  ad_api/api/history.py,sha256=tB4XawmQNxDMolaubDUjuIHtrYXRFuhOr4WCB8OJ1t8,2568
14
- ad_api/api/insights.py,sha256=Z4h00erksU58yjGm5qX_sHKDAv5UuJagqCA0d3rUlJU,2932
14
+ ad_api/api/insights.py,sha256=b0m2_khfDGskbvn4sidsUpOvV-gr2bsjUup0kSo8HV8,2398
15
15
  ad_api/api/invoices.py,sha256=EwSUVPOTxu1zYPSh0Bg6sCQ22evnUrMJBgU8ZttWN4w,1579
16
16
  ad_api/api/localization.py,sha256=HdkChAawloJ8zj5rCye9NVf7kLnQ7vW6aKsBLZ2W-gI,17158
17
17
  ad_api/api/manager_accounts.py,sha256=tnmJxOGIKTuJ3i8wciwfs931REW0aeNKQiqCpBrTZ2Y,5107
@@ -108,8 +108,8 @@ ad_api/base/exceptions.py,sha256=9D3M40ZIlLS0fA-aQh1BTWPOW-Nvf0tRhbA85jFnDJ4,438
108
108
  ad_api/base/helpers.py,sha256=UK7Q13vZ0mNdF54xzfzoGDn2O_cd2yPrK2X4rOzC41c,2334
109
109
  ad_api/base/marketplaces.py,sha256=44lvCcluXNpqTprWQ80e3weSQmQbJoWL-WDSOWVbCyQ,4657
110
110
  ad_api/base/utils.py,sha256=_qnCBOvyJTLgaZjJzUWTi38GGLHkQszXELs79133Rb4,5618
111
- python_amazon_ad_api-1.2.5.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
112
- python_amazon_ad_api-1.2.5.dist-info/METADATA,sha256=d0ANyn2SfwsIwQhEhdzfFUXzkTonM4Y94nwyDhdyCAU,21479
113
- python_amazon_ad_api-1.2.5.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
114
- python_amazon_ad_api-1.2.5.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
115
- python_amazon_ad_api-1.2.5.dist-info/RECORD,,
111
+ python_amazon_ad_api-1.2.7.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
112
+ python_amazon_ad_api-1.2.7.dist-info/METADATA,sha256=eyFJj-IHXJy_NCd7MJW1Chqqyu3iGvC_vHT8Yum1GUw,21458
113
+ python_amazon_ad_api-1.2.7.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
114
+ python_amazon_ad_api-1.2.7.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
115
+ python_amazon_ad_api-1.2.7.dist-info/RECORD,,