python-amazon-ad-api 1.1.4__py3-none-any.whl → 1.1.5__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/sb/__init__.py CHANGED
@@ -22,6 +22,7 @@ from .benchmarks import Benchmarks
22
22
  from .themes import Themes
23
23
  from .budget_rules import BudgetRules
24
24
  from .optimization_rules import OptimizationRules
25
+ from .targeting_categories import TargetingCategories
25
26
 
26
27
  __all__ = [
27
28
  "Brands",
@@ -48,4 +49,5 @@ __all__ = [
48
49
  "Themes",
49
50
  "BudgetRules",
50
51
  "OptimizationRules",
52
+ "TargetingCategories",
51
53
  ]
@@ -0,0 +1,98 @@
1
+ from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse, Utils
2
+
3
+
4
+ class TargetingCategories(Client):
5
+ """Sponsored Brands targetable categories.
6
+
7
+ Documentation: https://advertising.amazon.com/API/docs/en-us/sponsored-brands/4-0/openapi
8
+
9
+ All three routes are reads, and all three were probed against a live account.
10
+
11
+ .. note::
12
+ ``list_categories`` returns the tree under ``categoryTree``, which the
13
+ contract does not name. Each node carries ``categoryRefinementId``,
14
+ ``name``, ``parentCategoryRefinementId``, ``isTargetable`` and, where the
15
+ service knows it, ``asinCountRange`` with a ``min`` and ``max``.
16
+
17
+ .. note::
18
+ Large root categories come back with ``isTargetable`` set to ``false``:
19
+ they have to be narrowed down to their children before they can be used
20
+ as a target.
21
+ """
22
+
23
+ _MEDIA = 'application/vnd.sbtargeting.v4+json'
24
+
25
+ @sp_endpoint('/sb/targets/categories', method='GET')
26
+ def list_categories(self, supplySource, **kwargs) -> ApiResponse:
27
+ """
28
+ Gets the targetable category tree.
29
+
30
+ Keyword Args
31
+ | query **supplySource** (string): [required] ``AMAZON`` or
32
+ ``STREAMING_VIDEO``.
33
+ | query **locale** (string): [optional] Market locale, for instance
34
+ ``es_ES``, ``en_US`` or ``de_DE``.
35
+ | query **includeOnlyRootCategories** (boolean): [optional] Return
36
+ root categories only.
37
+ | query **parentCategoryRefinementId** (string): [optional] Return
38
+ the children of that category.
39
+ | query **nextToken** (string): [optional] Pagination token.
40
+
41
+ Returns:
42
+ | ApiResponse, ``200``, with the tree under ``categoryTree``.
43
+
44
+ Example node::
45
+
46
+ {"categoryRefinementId": "1909624031", "name": "Chupetes",
47
+ "asinCountRange": {"min": 1247, "max": 2078},
48
+ "isTargetable": true, "parentCategoryRefinementId": "1862267031"}
49
+ """
50
+ return self._request(kwargs.pop('path'), params=kwargs,
51
+ headers={'Accept': self._MEDIA, 'Content-Type': self._MEDIA})
52
+
53
+ @sp_endpoint('/sb/targets/categories/{}/refinements', method='GET')
54
+ def list_refinements(self, categoryRefinementId, **kwargs) -> ApiResponse:
55
+ """
56
+ Gets the refinements of a category.
57
+
58
+ Keyword Args
59
+ | path **categoryRefinementId** (string): [required]
60
+ | query **locale** (string): [optional]
61
+ | query **nextToken** (string): [optional]
62
+
63
+ Returns:
64
+ | ApiResponse, ``200``.
65
+ """
66
+ return self._request(fill_query_params(kwargs.pop('path'), categoryRefinementId),
67
+ params=kwargs,
68
+ headers={'Accept': self._MEDIA, 'Content-Type': self._MEDIA})
69
+
70
+ @sp_endpoint('/sb/targets/products/count', method='POST')
71
+ def get_product_count(self, category, **kwargs) -> ApiResponse:
72
+ """
73
+ Gets the number of products in a category.
74
+
75
+ Request Body [Required]
76
+ | **category** (string): [required] Category refinement identifier.
77
+ | **ageRanges** (array of string): [optional]
78
+ | **brands** (array of string): [optional]
79
+ | **genres** (array of string): [optional]
80
+ | **isPrimeShipping** (boolean): [optional]
81
+ | **ratingRange** ({}): [optional] ``min`` and ``max`` integers.
82
+ | **priceRange** ({}): [optional] ``min`` and ``max`` numbers.
83
+
84
+ Returns:
85
+ | ApiResponse, ``200``.
86
+
87
+ Raises:
88
+ | ``400`` when ``category`` is missing, naming that member.
89
+ """
90
+ body = {'category': category}
91
+ for key in ('ageRanges', 'brands', 'genres', 'isPrimeShipping',
92
+ 'ratingRange', 'priceRange'):
93
+ if key in kwargs:
94
+ body[key] = kwargs.pop(key)
95
+ return self._request(kwargs.pop('path'),
96
+ data=Utils.convert_body(body, False),
97
+ params=kwargs, headers={'Accept': self._MEDIA,
98
+ 'Content-Type': self._MEDIA})
ad_api/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.1.4"
1
+ __version__ = "1.1.5"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.1.4
3
+ Version: 1.1.5
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
@@ -1,5 +1,5 @@
1
1
  ad_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- ad_api/version.py,sha256=XxXhu8-QnuD9hA8Ah0WX5rgpt_DwOQmAwcK-FtpngyQ,22
2
+ ad_api/version.py,sha256=KlgaVSJ1AQxCDJZgh4wFk-gpem-k9PfebW8U3hiKJD4,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
@@ -24,7 +24,7 @@ ad_api/api/reports.py,sha256=gNmDHLULD2uaJgsMpIbCX9kabwhMXRr9WfZBtHUdsOY,6043
24
24
  ad_api/api/stores.py,sha256=7W3RJKZyZOQ3nHzInvK9FDhWTXCH6Xe9a6dCBatEZ-o,2484
25
25
  ad_api/api/stream.py,sha256=JpnF8SKniOAHiEnEq1RPrh6tNy-Q2-8GPBTmnlxEXqQ,2989
26
26
  ad_api/api/validation_configurations.py,sha256=V3o06uWGwvA_Ly1x2lAiCk35Wo7DC_k8AtHgMdpm6wU,3830
27
- ad_api/api/sb/__init__.py,sha256=-rseg1GpT0FaUL_s4c0HTU1OvriGccqVybrNV2oPqws,1407
27
+ ad_api/api/sb/__init__.py,sha256=O5D20u5EZdftFRLJLaVmkaLo_Ucs0f52ZEL5b1gkfW0,1488
28
28
  ad_api/api/sb/ad_creatives_v4.py,sha256=86sF2lhSc3AC6d4P5TXyEnJMBjn9HvsJe4bbCQbSWK0,10508
29
29
  ad_api/api/sb/ad_groups.py,sha256=W06Fk0CCsuEYen1Bd8obR6aHpOMhk6tGWNWApecw59c,2882
30
30
  ad_api/api/sb/ad_groups_v4.py,sha256=f6KpOrJ2RsCa4aznP8vdGbXp0HGsCmLOvC9yXX2pESc,3669
@@ -47,6 +47,7 @@ ad_api/api/sb/product_targeting.py,sha256=o6aB3hIh9jKvi_uTXFi--1hpnPFuXzQ-U9N7VU
47
47
  ad_api/api/sb/recommendations.py,sha256=_21L8tZPuArmJ30XyR1SKQHQH_yswvF0IMqwD9sLhgY,347
48
48
  ad_api/api/sb/reports.py,sha256=icw5DpRrqfj0idEo0NN1GPDpIWQun2h_c2Uwc7CpNUA,3801
49
49
  ad_api/api/sb/stores.py,sha256=sLdA6Lp37VR-ldu_sTUZIqc8MbMzysPhNOh05VaKBcA,4371
50
+ ad_api/api/sb/targeting_categories.py,sha256=mTU3hMEW_orG_D2mlTqUX14DEDPn9A11vH-wntECklk,4212
50
51
  ad_api/api/sb/targeting_recommendations.py,sha256=_7NxD5kC-Od11QOuLT03qpLVxEOIZgy-BtzniWK4CI8,2862
51
52
  ad_api/api/sb/themes.py,sha256=rjxdGcllaqLOUMoTKKgBVSH5iKuxMdF0w-dHq0X3-yU,4618
52
53
  ad_api/api/sd/__init__.py,sha256=RulShFVpowt2L_ZMcifFVgVrQEg5Uf9_SlVRydUnTF4,911
@@ -106,8 +107,8 @@ ad_api/base/exceptions.py,sha256=9D3M40ZIlLS0fA-aQh1BTWPOW-Nvf0tRhbA85jFnDJ4,438
106
107
  ad_api/base/helpers.py,sha256=naUkDLK466x_OBCPXxMlzRc2nPC6iQ6H_vyUji0MJJ0,2282
107
108
  ad_api/base/marketplaces.py,sha256=44lvCcluXNpqTprWQ80e3weSQmQbJoWL-WDSOWVbCyQ,4657
108
109
  ad_api/base/utils.py,sha256=_qnCBOvyJTLgaZjJzUWTi38GGLHkQszXELs79133Rb4,5618
109
- python_amazon_ad_api-1.1.4.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
110
- python_amazon_ad_api-1.1.4.dist-info/METADATA,sha256=Eu-MK8yO9WBcDpXS-oU_GW5N2lz2Ye8XEl_P1kA1npk,20486
111
- python_amazon_ad_api-1.1.4.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
112
- python_amazon_ad_api-1.1.4.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
113
- python_amazon_ad_api-1.1.4.dist-info/RECORD,,
110
+ python_amazon_ad_api-1.1.5.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
111
+ python_amazon_ad_api-1.1.5.dist-info/METADATA,sha256=Bv5SRj3TNj5OvxigNtRz_LataskuZX8W2VsBcKGrz_U,20486
112
+ python_amazon_ad_api-1.1.5.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
113
+ python_amazon_ad_api-1.1.5.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
114
+ python_amazon_ad_api-1.1.5.dist-info/RECORD,,