python-amazon-ad-api 1.5.5__py3-none-any.whl → 1.5.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.
ad_api/api/v1/__init__.py CHANGED
@@ -15,6 +15,8 @@ from .manager_accounts import ManagerAccounts
15
15
  from .recommendations import Recommendations
16
16
  from .selling_accounts import SellingAccounts
17
17
  from .label_object_associations import LabelObjectAssociations
18
+ from .geo_locations import GeoLocations
19
+ from .recommendation_types import RecommendationTypes
18
20
 
19
21
  __all__ = [
20
22
  "Campaigns",
@@ -34,4 +36,6 @@ __all__ = [
34
36
  "Recommendations",
35
37
  "SellingAccounts",
36
38
  "LabelObjectAssociations",
39
+ "GeoLocations",
40
+ "RecommendationTypes",
37
41
  ]
@@ -0,0 +1,54 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class GeoLocations(Client):
5
+ r"""
6
+ GeoLocations(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
7
+
8
+ Amazon Ads API v1 - geographic locations for targeting
9
+
10
+ One route, and it only creates:
11
+
12
+ POST /adsApi/v1/create/geoLocations
13
+
14
+ The contract declares no query and no delete, so a location created here
15
+ cannot be read back or removed through this family. Treat it as a write
16
+ that leaves an object in the account rather than as a lookup.
17
+
18
+ Two shapes sit under ``location``, exactly one of them per entry:
19
+
20
+ radiusLocation a point of interest and a radius around it
21
+ smartLocation postal codes picked by a sales index percentile
22
+ """
23
+
24
+ @sp_endpoint('/adsApi/v1/create/geoLocations', method='POST')
25
+ def create_geo_locations(self, **kwargs) -> ApiResponse:
26
+ r"""
27
+ create_geo_locations(body: dict) -> ApiResponse
28
+
29
+ Amazon Ads API v1 - Create Geo Locations (operationId: CreateGeoLocation)
30
+
31
+ Request Body [Required]
32
+ | **geoLocations** (list<GeoLocationCreate>) : [required] 1..100
33
+ | **location** (CreateGeoLocationUnion) : [required] one of:
34
+ | **radiusLocation** (CreateRadiusLocation)
35
+ | **pointOfInterestRadius** (double) : [required] kilometres or miles
36
+ | **units** (DistanceUnit) : [required] Enum [ KILOMETERS, MILES ]
37
+ | **coordinates** (CreateGeoLocationCoordinates) : latitude and longitude
38
+ | **pointOfInterestAddress** (string) : an address or a place name
39
+ | **smartLocation** (CreateSmartLocation)
40
+ | **locationIndexId** (string) : [required] the index the selection is based on
41
+ | **name** (string) : [required]
42
+ | **minIndexValuePercentile** (int) : 0..100
43
+ | **maxIndexValuePercentile** (int) : 0..100, greater than the minimum
44
+
45
+ Answer
46
+ 207 MultiStatus with success[] and error[] indexed the same way;
47
+ each success carries the created GeoLocation and its position.
48
+
49
+ A radius needs at least 0.37 miles (2000 ft, 0.6 km), and the two
50
+ percentile values must not cross.
51
+ """
52
+ schema_version = 'application/json'
53
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
54
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
@@ -0,0 +1,48 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class RecommendationTypes(Client):
5
+ r"""
6
+ RecommendationTypes(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
7
+
8
+ Amazon Ads API v1 - recommendation types for Sponsored Brands
9
+
10
+ One route, read only, and the product is in the path:
11
+
12
+ POST /adsApi/v1/query/recommendationTypes/sb
13
+
14
+ This family lists the kinds of recommendation that exist. Recommendations
15
+ itself, in ad_api.api.v1.Recommendations, lists the ones the account
16
+ actually has.
17
+
18
+ Only the Sponsored Brands segment is published, and its schemas are
19
+ prefixed SB. The route keeps no SB in its name, so another product would
20
+ arrive as .../sp or .../sd beside it.
21
+ """
22
+
23
+ @sp_endpoint('/adsApi/v1/query/recommendationTypes/sb', method='POST')
24
+ def query_sb_recommendation_types(self, **kwargs) -> ApiResponse:
25
+ r"""
26
+ query_sb_recommendation_types(body: dict) -> ApiResponse
27
+
28
+ Amazon Ads API v1 - Query SB Recommendation Types (operationId: SBQueryRecommendationType)
29
+
30
+ Request Body [All optional]
31
+ | **maxResults** (int) : 50..500, default 50
32
+ | **nextToken** (string) : token to navigate to the next page
33
+
34
+ Returns
35
+ | **recommendationTypes** (list<SBRecommendationType>) : 0..500
36
+ | **recommendationTypeId** (string) : [required] a UUID or a unique descriptive string
37
+ | **recommendationTypeTitle** (string) : [required]
38
+ | **nextToken** (string)
39
+
40
+ maxResults starts at 50, so a smaller value is a rejected body rather
41
+ than a shorter page. An empty body is valid and asks for the defaults.
42
+
43
+ Requires one of these permissions:
44
+ advertiser_campaign_view
45
+ """
46
+ schema_version = 'application/json'
47
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
48
+ 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.5.5"
1
+ __version__ = "1.5.7"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.5.5
3
+ Version: 1.5.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
@@ -317,6 +317,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
317
317
  * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/recommendations.html#ad_api.api.v1.Recommendations.Recommendations.query_recommendations)
318
318
  * [Selling Accounts](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/selling_accounts.html#ad_api.api.v1.SellingAccounts.SellingAccounts.query_selling_accounts)
319
319
  * [Label Object Associations](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/label_object_associations.html#ad_api.api.v1.LabelObjectAssociations.LabelObjectAssociations.query_label_object_associations)
320
+ * [Geo Locations](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/geo_locations.html#ad_api.api.v1.GeoLocations.GeoLocations.create_geo_locations)
321
+ * [Recommendation Types](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/recommendation_types.html#ad_api.api.v1.RecommendationTypes.RecommendationTypes.query_sb_recommendation_types)
320
322
 
321
323
 
322
324
  ### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
@@ -1,5 +1,5 @@
1
1
  ad_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- ad_api/version.py,sha256=esYGNsGD9vKJixN6-bSpcgYgxhAezxl29RgIysN60gg,22
2
+ ad_api/version.py,sha256=oF7Y8496FUgsdoGzNFWSpl1UtgtgO43P0Tct09Fxbx0,22
3
3
  ad_api/api/__init__.py,sha256=M07SD5BRC1L4_PqxLc8cKPI9Iq5zC2jPhkFUeHoh6CM,1632
4
4
  ad_api/api/account.py,sha256=CmOvCfHoPWaeTUJvtB0pNoNulZVSz4oMMCKIpVTpHos,2931
5
5
  ad_api/api/account_budgets.py,sha256=jFce5eLWAFK3ydjnYR7_Sv7B0-gHTG5bMTx_TcHyy1A,2319
@@ -89,7 +89,7 @@ ad_api/api/sp/product_recommendations.py,sha256=vXoZIRqcFc5bo9MUprArKndxcEYe_Puy
89
89
  ad_api/api/sp/product_targeting_v3.py,sha256=vk_T0piHzP5uwt8HSHm5hFKP_0sXJD8nbyooPtM-BTs,9567
90
90
  ad_api/api/sp/ranked_keywords_recommendations.py,sha256=QYFje19TFmwhedh7sn5VJIypL8gp6d6tpBQCpf_SIXw,13094
91
91
  ad_api/api/sp/schedule_based_bid_optimization.py,sha256=G8VkS7iP1lTIAxZgbfRCLz8njw1DkVH9HQPOZ63pWNU,2371
92
- ad_api/api/v1/__init__.py,sha256=GdVaR5Iaj7RJIejDe8l0foSfTwfJLhCFLBzerqrRgkg,1107
92
+ ad_api/api/v1/__init__.py,sha256=N1e8b3-ZkHINLz7Ejdb4QGRoKa6R5qMaSYdDFpnBzVQ,1248
93
93
  ad_api/api/v1/ad_associations.py,sha256=g5L8hAIagmsb-yQ09hP7z1zbVVe868NlpOOokv-Mouc,5812
94
94
  ad_api/api/v1/ad_extensions.py,sha256=kL-7xHaXXqb2jXTwZrY0oGttLAG0CW_IjBAqL_CI92U,5519
95
95
  ad_api/api/v1/ad_groups.py,sha256=pQhCVdve_O6kbL4mBA5bxxhKcKNl_BKqa7z9DvrxwaM,12626
@@ -100,9 +100,11 @@ ad_api/api/v1/brand_store_editions.py,sha256=xW4z2jDWhNJn86tWlT3eLIRr0NEpxLhW1eA
100
100
  ad_api/api/v1/brand_store_pages.py,sha256=TrSQbqlXqFv7i7RooxlFZOBrwYfEMPLvRPSJ9FjO87o,2765
101
101
  ad_api/api/v1/brand_stores.py,sha256=zlBsKiOwmdSiIG9filgdqUlPnV6AX-gE6S5nNyAQACc,2131
102
102
  ad_api/api/v1/campaigns.py,sha256=u5PlvoAhgVhMxbCvYkPgqtbYK3TXXcb7TMie0Qjrgwc,9573
103
+ ad_api/api/v1/geo_locations.py,sha256=gH1kR1rPQuIdzStB6wvWI40-XRo5yFyVI9AYYcjN5_8,2641
103
104
  ad_api/api/v1/label_object_associations.py,sha256=zXuD5cUAfqL-PRObvjOM54KC356HFqnzA5ehpGSJPYk,2597
104
105
  ad_api/api/v1/labels.py,sha256=jjPmafIQZTh99Ztj5MCcDC7UyoFFN0YuWdn2syqd3Yg,2438
105
106
  ad_api/api/v1/manager_accounts.py,sha256=cNAs1Qq6SYG0y4_4UpNBDfItqBJ1NvYACsIvFc8h-rw,4980
107
+ ad_api/api/v1/recommendation_types.py,sha256=aEBfXu1EhzcRk9Nhin8_ieFiNnBiusX_vWviJw_qD08,2077
106
108
  ad_api/api/v1/recommendations.py,sha256=RJfmwUQ4YOcTdXiHz_U2ArJ01B29vKleRS_avJFjS14,3737
107
109
  ad_api/api/v1/reports.py,sha256=vJmWhIsALkX27HeijTsSUz3zrYhUBm4RodTCieJD8Y8,6657
108
110
  ad_api/api/v1/selling_accounts.py,sha256=0_R4yzvXGp_gFyfcZeWJyeIr7Wh4eGpLfK12podXqGA,1941
@@ -122,8 +124,8 @@ ad_api/base/exceptions.py,sha256=9D3M40ZIlLS0fA-aQh1BTWPOW-Nvf0tRhbA85jFnDJ4,438
122
124
  ad_api/base/helpers.py,sha256=UK7Q13vZ0mNdF54xzfzoGDn2O_cd2yPrK2X4rOzC41c,2334
123
125
  ad_api/base/marketplaces.py,sha256=44lvCcluXNpqTprWQ80e3weSQmQbJoWL-WDSOWVbCyQ,4657
124
126
  ad_api/base/utils.py,sha256=_qnCBOvyJTLgaZjJzUWTi38GGLHkQszXELs79133Rb4,5618
125
- python_amazon_ad_api-1.5.5.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
126
- python_amazon_ad_api-1.5.5.dist-info/METADATA,sha256=h2c3wpXP4IMqyTGLcrE6fluwvNNxaVEzJNHftIzebBE,23801
127
- python_amazon_ad_api-1.5.5.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
128
- python_amazon_ad_api-1.5.5.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
129
- python_amazon_ad_api-1.5.5.dist-info/RECORD,,
127
+ python_amazon_ad_api-1.5.7.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
128
+ python_amazon_ad_api-1.5.7.dist-info/METADATA,sha256=SYmqs9asFabdrtnqr0znjabRTKzoJminKJ-YBJhQDII,24150
129
+ python_amazon_ad_api-1.5.7.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
130
+ python_amazon_ad_api-1.5.7.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
131
+ python_amazon_ad_api-1.5.7.dist-info/RECORD,,