python-amazon-ad-api 1.2.4__py3-none-any.whl → 1.2.6__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/history.py CHANGED
@@ -5,26 +5,49 @@ class History(Client):
5
5
  """ """
6
6
 
7
7
  @sp_endpoint('/history', method='POST')
8
- def get_history(self, **kwargs) -> ApiResponse:
8
+ def get_history(self, version: str = "1.0", **kwargs) -> ApiResponse:
9
9
  r"""
10
-
11
- get_history(body: (dict, str, file)) -> ApiResponse
12
-
13
- Returns history of changes for provided event sources that match the filters and time ranges specified. Only events that belong to the authenticated Advertiser can be queried. All times will be in UTC Epoch format. This API accepts identifiers in either the alphamumeric format (default), or the numeric format. If numeric IDs are supplied, then numeric IDs will be returned otherwise, alphanumeric IDs are returned.
14
-
15
- body: | REQUIRED {'description': 'A HistoryQuery}'
16
-
17
- | **from_date** | **int** | Max 90 days of history.
18
- | **to_date** | **int** |
19
- | **event_types**
20
- | HistoryEventType
21
- | **next_token** | **str** | token from previous response to get next set of data. | [optional]
22
- | **page_offset** | **int** | Mutually exclusive with 'nextToken'. Max results with pageOffset is 10000. Use nextToken instead for more results. | [optional]
23
- | **count** | **int** | Requested number of results. Default 100. Minimum 50. Maximum 200. | [optional]
24
- | **sort**
25
- | HistorySortParameter
26
- | **any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
10
+ Returns the changes made to campaigns, ad groups, ads and the rest of the
11
+ entity tree, within a time range. Only events belonging to the
12
+ authenticated advertiser come back.
13
+
14
+ Keyword Args
15
+
16
+ - ``version`` (string): the ``Accept`` version, ``"1.0"`` by default.
17
+ Pass ``"1.1"`` to query the ``THEME`` event type, which the service
18
+ refuses at 1.0. The other six types work at either. [optional]
19
+
20
+ Request Body (required)
21
+
22
+ - ``fromDate`` (integer): epoch in **milliseconds**, not seconds.
23
+ - ``toDate`` (integer): epoch in milliseconds.
24
+ - ``eventTypes`` (object): one or more of ``AD``, ``AD_GROUP``,
25
+ ``CAMPAIGN``, ``KEYWORD``, ``NEGATIVE_KEYWORD``, ``PRODUCT_TARGETING``
26
+ and ``THEME``. Each carries an object, usually ``{}`` or
27
+ ``{"filters": [...]}``.
28
+ - ``count`` (integer): page size. Default 100, minimum 50, maximum 200.
29
+ - ``nextToken`` (string): token from a previous answer. Mutually
30
+ exclusive with ``pageOffset``.
31
+ - ``pageOffset`` (integer): alternative to ``nextToken``, up to 10000.
32
+ - ``sort`` (object): ``{"direction": "ASC"|"DESC", "key": "DATE"}``.
33
+
34
+ The field names are camelCase and the service rejects anything else: a
35
+ body written with ``from_date`` answers ``400`` naming ``fromDate`` as a
36
+ required field. The dates are counted back from the moment of the
37
+ request, so a window computed once and reused drifts out of range: the
38
+ service measures 90 days from its own clock, and a few seconds of drift
39
+ past the edge answers ``400 fromDate is more than 90 days ago``.
40
+
41
+ This route throttles. Seven calls within twelve seconds answered ``429``.
42
+
43
+ Returns
44
+ ApiResponse with ``events``, ``pageSize``, ``pageOffset``,
45
+ ``maxPageNumber`` and ``totalRecords``. An empty ``events`` with
46
+ ``totalRecords`` at ``0`` means the account saw no change in the
47
+ window, not that the call failed.
27
48
 
28
49
  """
50
+ accept = 'application/vnd.historyresponse.v' + version + '+json'
51
+ headers = {'Accept': accept}
29
52
  body = Utils.convert_body(kwargs.pop('body'), wrap=False)
30
- return self._request(kwargs.pop('path'), data=body, params=kwargs)
53
+ return self._request(kwargs.pop('path'), data=body, 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.4"
1
+ __version__ = "1.2.6"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.2.4
3
+ Version: 1.2.6
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,7 +267,7 @@ 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)
270
+ * [Change History](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
271
271
  * [Creative Assets open Beta](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)
@@ -1,5 +1,5 @@
1
1
  ad_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- ad_api/version.py,sha256=XBKH8E1LmDxv06U39yqMBbXZapOERFgICEDYZs_kRso,22
2
+ ad_api/version.py,sha256=vMQK58X8_YZGKzRm0ThvPAKFtpfyejGmUnDrY9RQ13w,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
@@ -10,8 +10,8 @@ ad_api/api/brand_metrics.py,sha256=IlOlVJ2t6cL5DA49RaM3M1AW_3KFEyal08e0ZcnLdVE,6
10
10
  ad_api/api/creative_assets.py,sha256=EzxrQbxMe5Y1b6qONJ3zi8cwoorCZAqSmHhiug6d87E,6671
11
11
  ad_api/api/eligibility.py,sha256=xbHMNxpRqToQDlG8y7nhhSr55ZZIJ_ZA304rmWa7Jx0,3680
12
12
  ad_api/api/exports.py,sha256=Y59C99axCAltMgu3gbfzdnoLKjNTsJ7s1z18yzcxzls,2788
13
- ad_api/api/history.py,sha256=KmpUodvxTQPSeJ1kyOSm_uHnfaR23Y6SUvB3gYn5uh4,1727
14
- ad_api/api/insights.py,sha256=Z4h00erksU58yjGm5qX_sHKDAv5UuJagqCA0d3rUlJU,2932
13
+ ad_api/api/history.py,sha256=tB4XawmQNxDMolaubDUjuIHtrYXRFuhOr4WCB8OJ1t8,2568
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.4.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
112
- python_amazon_ad_api-1.2.4.dist-info/METADATA,sha256=TYwJLNkevDvojJVYRbb8DDtVtTMUC7FjQZqFxXQ60R0,21479
113
- python_amazon_ad_api-1.2.4.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
114
- python_amazon_ad_api-1.2.4.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
115
- python_amazon_ad_api-1.2.4.dist-info/RECORD,,
111
+ python_amazon_ad_api-1.2.6.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
112
+ python_amazon_ad_api-1.2.6.dist-info/METADATA,sha256=Exh1vIVjTvA9mkFreWZ4j3M8taTveXGf53Ir1luQrl8,21469
113
+ python_amazon_ad_api-1.2.6.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
114
+ python_amazon_ad_api-1.2.6.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
115
+ python_amazon_ad_api-1.2.6.dist-info/RECORD,,