python-amazon-ad-api 1.5.3__py3-none-any.whl → 1.5.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/v1/__init__.py +4 -0
- ad_api/api/v1/label_object_associations.py +57 -0
- ad_api/api/v1/selling_accounts.py +47 -0
- ad_api/version.py +1 -1
- {python_amazon_ad_api-1.5.3.dist-info → python_amazon_ad_api-1.5.5.dist-info}/METADATA +3 -1
- {python_amazon_ad_api-1.5.3.dist-info → python_amazon_ad_api-1.5.5.dist-info}/RECORD +9 -7
- {python_amazon_ad_api-1.5.3.dist-info → python_amazon_ad_api-1.5.5.dist-info}/WHEEL +0 -0
- {python_amazon_ad_api-1.5.3.dist-info → python_amazon_ad_api-1.5.5.dist-info}/licenses/LICENSE +0 -0
- {python_amazon_ad_api-1.5.3.dist-info → python_amazon_ad_api-1.5.5.dist-info}/top_level.txt +0 -0
ad_api/api/v1/__init__.py
CHANGED
|
@@ -13,6 +13,8 @@ from .reports import Reports
|
|
|
13
13
|
from .labels import Labels
|
|
14
14
|
from .manager_accounts import ManagerAccounts
|
|
15
15
|
from .recommendations import Recommendations
|
|
16
|
+
from .selling_accounts import SellingAccounts
|
|
17
|
+
from .label_object_associations import LabelObjectAssociations
|
|
16
18
|
|
|
17
19
|
__all__ = [
|
|
18
20
|
"Campaigns",
|
|
@@ -30,4 +32,6 @@ __all__ = [
|
|
|
30
32
|
"Labels",
|
|
31
33
|
"ManagerAccounts",
|
|
32
34
|
"Recommendations",
|
|
35
|
+
"SellingAccounts",
|
|
36
|
+
"LabelObjectAssociations",
|
|
33
37
|
]
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class LabelObjectAssociations(Client):
|
|
5
|
+
r"""
|
|
6
|
+
LabelObjectAssociations(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
|
|
7
|
+
|
|
8
|
+
Amazon Ads API v1 - label to object associations
|
|
9
|
+
|
|
10
|
+
One route, read only:
|
|
11
|
+
|
|
12
|
+
POST /adsApi/v1/query/labelObjectAssociations
|
|
13
|
+
|
|
14
|
+
Labels itself lists the labels that exist. This family lists what each
|
|
15
|
+
label is applied to, so the pair answers "which labels do I have" and
|
|
16
|
+
"what is tagged".
|
|
17
|
+
|
|
18
|
+
The required member is ``labelObjectTypeFilter``, not the adProductFilter
|
|
19
|
+
the campaign families carry, and it takes exactly one value:
|
|
20
|
+
|
|
21
|
+
AD_GROUP, CAMPAIGN, DEAL, INVENTORY_GROUP
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
@sp_endpoint('/adsApi/v1/query/labelObjectAssociations', method='POST')
|
|
25
|
+
def query_label_object_associations(self, **kwargs) -> ApiResponse:
|
|
26
|
+
r"""
|
|
27
|
+
query_label_object_associations(body: dict) -> ApiResponse
|
|
28
|
+
|
|
29
|
+
Amazon Ads API v1 - Query Label Object Associations (operationId: QueryLabelObjectAssociation)
|
|
30
|
+
|
|
31
|
+
Request Body [Required]
|
|
32
|
+
| **labelObjectTypeFilter** (dict) : [required] exactly one value
|
|
33
|
+
| **include** (list<LabelObjectType>) : Enum [ AD_GROUP, CAMPAIGN, DEAL, INVENTORY_GROUP ]
|
|
34
|
+
| **adProductFilter** (dict) : [optional] exactly one value
|
|
35
|
+
| **labelIdFilter** (dict) : [optional] 1..50 ids
|
|
36
|
+
| **labelObjectIdFilter** (dict) : [optional] 1..50 ids
|
|
37
|
+
| **maxResults** (int) : 1..5000, default 100
|
|
38
|
+
| **nextToken** (string)
|
|
39
|
+
|
|
40
|
+
Returns
|
|
41
|
+
| **labelObjectAssociations** (list<LabelObjectAssociation>) : 0..5000
|
|
42
|
+
| **labelObjectAssociationId** (string) : [required]
|
|
43
|
+
| **labelId** (string) : [required] the label being applied
|
|
44
|
+
| **labelObjectId** (string) : [required] the object, e.g. a deal id or an ad group id
|
|
45
|
+
| **labelObjectType** (LabelObjectType) : [required]
|
|
46
|
+
| **adProduct** (AdProduct)
|
|
47
|
+
| **nextToken** (string)
|
|
48
|
+
|
|
49
|
+
maxResults reaches 5000 here, far above the 100 of the campaign
|
|
50
|
+
families, because associations grow with the number of tagged objects.
|
|
51
|
+
|
|
52
|
+
Requires one of these permissions:
|
|
53
|
+
campaign_edit, campaign_view
|
|
54
|
+
"""
|
|
55
|
+
schema_version = 'application/json'
|
|
56
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
57
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SellingAccounts(Client):
|
|
5
|
+
r"""
|
|
6
|
+
SellingAccounts(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
|
|
7
|
+
|
|
8
|
+
Amazon Ads API v1 - selling accounts
|
|
9
|
+
|
|
10
|
+
One route, read only:
|
|
11
|
+
|
|
12
|
+
POST /adsApi/v1/query/sellingAccounts
|
|
13
|
+
|
|
14
|
+
No adProductFilter here: a selling account is the account behind the ads,
|
|
15
|
+
not an ad product. Every member of the request is optional, so an empty
|
|
16
|
+
body is a valid request.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
@sp_endpoint('/adsApi/v1/query/sellingAccounts', method='POST')
|
|
20
|
+
def query_selling_accounts(self, **kwargs) -> ApiResponse:
|
|
21
|
+
r"""
|
|
22
|
+
query_selling_accounts(body: dict) -> ApiResponse
|
|
23
|
+
|
|
24
|
+
Amazon Ads API v1 - Query Selling Accounts (operationId: QuerySellingAccount)
|
|
25
|
+
|
|
26
|
+
Request Body [All optional]
|
|
27
|
+
| **sellingAccountLinkTokenFilter** (dict)
|
|
28
|
+
| **sellingProgramFilter** (dict)
|
|
29
|
+
| **maxResults** (int) : 10..100, default 100
|
|
30
|
+
| **nextToken** (string)
|
|
31
|
+
|
|
32
|
+
Returns
|
|
33
|
+
| **sellingAccounts** (list<SellingAccount>) : 0..100
|
|
34
|
+
| **sellingAccountLinkToken** (string) : [required] the token that locates the account
|
|
35
|
+
| **portals** (list<Portal>) : [required] 1..6
|
|
36
|
+
| **sellingProgram** (SellingProgram) : [required]
|
|
37
|
+
| **displayName** (string)
|
|
38
|
+
| **countryCodes** (list<CountryCode>) : 0..30
|
|
39
|
+
| **business** (SellingAccountBusiness)
|
|
40
|
+
| **nextToken** (string)
|
|
41
|
+
|
|
42
|
+
maxResults starts at 10, so a smaller value is a rejected body rather
|
|
43
|
+
than a shorter page.
|
|
44
|
+
"""
|
|
45
|
+
schema_version = 'application/json'
|
|
46
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
47
|
+
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.
|
|
1
|
+
__version__ = "1.5.5"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-amazon-ad-api
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.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
|
|
@@ -315,6 +315,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
|
|
|
315
315
|
* [Labels](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/labels.html#ad_api.api.v1.Labels.Labels.query_labels)
|
|
316
316
|
* [Manager Accounts](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/manager_accounts.html#ad_api.api.v1.ManagerAccounts.ManagerAccounts.query_manager_accounts)
|
|
317
317
|
* [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/recommendations.html#ad_api.api.v1.Recommendations.Recommendations.query_recommendations)
|
|
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
|
+
* [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)
|
|
318
320
|
|
|
319
321
|
|
|
320
322
|
### [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=
|
|
2
|
+
ad_api/version.py,sha256=esYGNsGD9vKJixN6-bSpcgYgxhAezxl29RgIysN60gg,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=
|
|
92
|
+
ad_api/api/v1/__init__.py,sha256=GdVaR5Iaj7RJIejDe8l0foSfTwfJLhCFLBzerqrRgkg,1107
|
|
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,10 +100,12 @@ 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/label_object_associations.py,sha256=zXuD5cUAfqL-PRObvjOM54KC356HFqnzA5ehpGSJPYk,2597
|
|
103
104
|
ad_api/api/v1/labels.py,sha256=jjPmafIQZTh99Ztj5MCcDC7UyoFFN0YuWdn2syqd3Yg,2438
|
|
104
105
|
ad_api/api/v1/manager_accounts.py,sha256=cNAs1Qq6SYG0y4_4UpNBDfItqBJ1NvYACsIvFc8h-rw,4980
|
|
105
106
|
ad_api/api/v1/recommendations.py,sha256=RJfmwUQ4YOcTdXiHz_U2ArJ01B29vKleRS_avJFjS14,3737
|
|
106
107
|
ad_api/api/v1/reports.py,sha256=vJmWhIsALkX27HeijTsSUz3zrYhUBm4RodTCieJD8Y8,6657
|
|
108
|
+
ad_api/api/v1/selling_accounts.py,sha256=0_R4yzvXGp_gFyfcZeWJyeIr7Wh4eGpLfK12podXqGA,1941
|
|
107
109
|
ad_api/api/v1/targets.py,sha256=a4BzPjg9m1JJwqphhpQOFkNIcgCw7v4-K0sNzOihMZI,12355
|
|
108
110
|
ad_api/auth/__init__.py,sha256=B_yKdmsHENQaKfMFAIcSxQqG4aBUmNBm5orKIMUYObk,229
|
|
109
111
|
ad_api/auth/access_token_client.py,sha256=_V0FGXRmqRNMb1fz1AGqnR6gYr_WqFkMTbK1os0yoIk,2983
|
|
@@ -120,8 +122,8 @@ ad_api/base/exceptions.py,sha256=9D3M40ZIlLS0fA-aQh1BTWPOW-Nvf0tRhbA85jFnDJ4,438
|
|
|
120
122
|
ad_api/base/helpers.py,sha256=UK7Q13vZ0mNdF54xzfzoGDn2O_cd2yPrK2X4rOzC41c,2334
|
|
121
123
|
ad_api/base/marketplaces.py,sha256=44lvCcluXNpqTprWQ80e3weSQmQbJoWL-WDSOWVbCyQ,4657
|
|
122
124
|
ad_api/base/utils.py,sha256=_qnCBOvyJTLgaZjJzUWTi38GGLHkQszXELs79133Rb4,5618
|
|
123
|
-
python_amazon_ad_api-1.5.
|
|
124
|
-
python_amazon_ad_api-1.5.
|
|
125
|
-
python_amazon_ad_api-1.5.
|
|
126
|
-
python_amazon_ad_api-1.5.
|
|
127
|
-
python_amazon_ad_api-1.5.
|
|
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,,
|
|
File without changes
|
{python_amazon_ad_api-1.5.3.dist-info → python_amazon_ad_api-1.5.5.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|