python-amazon-ad-api 1.0.2__py3-none-any.whl → 1.0.4__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/sp/ad_groups_v3.py +4 -0
- ad_api/api/sp/campaigns_v3.py +3 -0
- ad_api/api/sp/product_ads_v3.py +4 -0
- ad_api/api/sp/product_targeting_v3.py +4 -0
- ad_api/api/v1/__init__.py +2 -0
- ad_api/api/v1/targets.py +205 -0
- ad_api/version.py +1 -1
- {python_amazon_ad_api-1.0.2.dist-info → python_amazon_ad_api-1.0.4.dist-info}/METADATA +3 -1
- {python_amazon_ad_api-1.0.2.dist-info → python_amazon_ad_api-1.0.4.dist-info}/RECORD +12 -11
- {python_amazon_ad_api-1.0.2.dist-info → python_amazon_ad_api-1.0.4.dist-info}/WHEEL +0 -0
- {python_amazon_ad_api-1.0.2.dist-info → python_amazon_ad_api-1.0.4.dist-info}/licenses/LICENSE +0 -0
- {python_amazon_ad_api-1.0.2.dist-info → python_amazon_ad_api-1.0.4.dist-info}/top_level.txt +0 -0
ad_api/api/sp/ad_groups_v3.py
CHANGED
|
@@ -7,6 +7,7 @@ class AdGroupsV3(Client):
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
@sp_endpoint("/sp/adGroups", method="POST")
|
|
10
|
+
@Utils.deprecated
|
|
10
11
|
def create_ad_groups(self, version: int = 3, prefer: bool = False, **kwargs) -> ApiResponse:
|
|
11
12
|
r"""
|
|
12
13
|
Creates one or more ad groups.
|
|
@@ -31,6 +32,7 @@ class AdGroupsV3(Client):
|
|
|
31
32
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
32
33
|
|
|
33
34
|
@sp_endpoint("/sp/adGroups", method="PUT")
|
|
35
|
+
@Utils.deprecated
|
|
34
36
|
def edit_ad_groups(self, version: int = 3, prefer: bool = False, **kwargs) -> ApiResponse:
|
|
35
37
|
r"""
|
|
36
38
|
Creates one or more ad groups.
|
|
@@ -55,6 +57,7 @@ class AdGroupsV3(Client):
|
|
|
55
57
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
56
58
|
|
|
57
59
|
@sp_endpoint("/sp/adGroups/delete", method="POST")
|
|
60
|
+
@Utils.deprecated
|
|
58
61
|
def delete_ad_groups(self, version: int = 3, **kwargs) -> ApiResponse:
|
|
59
62
|
"""
|
|
60
63
|
Deletes Sponsored Products ad groups by changing it's state to "ARCHIVED".
|
|
@@ -74,6 +77,7 @@ class AdGroupsV3(Client):
|
|
|
74
77
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
75
78
|
|
|
76
79
|
@sp_endpoint("/sp/adGroups/list", method="POST")
|
|
80
|
+
@Utils.deprecated
|
|
77
81
|
def list_ad_groups(self, version: int = 3, **kwargs) -> ApiResponse:
|
|
78
82
|
"""
|
|
79
83
|
Lists Sponsored Products campaigns.
|
ad_api/api/sp/campaigns_v3.py
CHANGED
|
@@ -7,6 +7,7 @@ class CampaignsV3(Client):
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
@sp_endpoint('/sp/campaigns', method='POST')
|
|
10
|
+
@Utils.deprecated
|
|
10
11
|
def create_campaigns(self, version: int = 3, prefer: bool = False, **kwargs) -> ApiResponse:
|
|
11
12
|
r"""
|
|
12
13
|
create_campaigns(body: (dict, str, list)) -> ApiResponse
|
|
@@ -39,6 +40,7 @@ class CampaignsV3(Client):
|
|
|
39
40
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
40
41
|
|
|
41
42
|
@sp_endpoint('/sp/campaigns', method='PUT')
|
|
43
|
+
@Utils.deprecated
|
|
42
44
|
def edit_campaigns(self, version: int = 3, prefer: bool = False, **kwargs) -> ApiResponse:
|
|
43
45
|
r"""
|
|
44
46
|
edit_campaigns(body: (dict, str, list)) -> ApiResponse
|
|
@@ -101,6 +103,7 @@ class CampaignsV3(Client):
|
|
|
101
103
|
)
|
|
102
104
|
|
|
103
105
|
@sp_endpoint('/sp/campaigns/delete', method='POST')
|
|
106
|
+
@Utils.deprecated
|
|
104
107
|
def delete_campaigns(self, version: int = 3, **kwargs) -> ApiResponse:
|
|
105
108
|
r"""
|
|
106
109
|
delete_campaigns(body: (dict, str, list)) -> ApiResponse
|
ad_api/api/sp/product_ads_v3.py
CHANGED
|
@@ -7,6 +7,7 @@ class ProductAdsV3(Client):
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
@sp_endpoint('/sp/productAds/list', method='POST')
|
|
10
|
+
@Utils.deprecated
|
|
10
11
|
def list_product_ads(self, version: int = 3, **kwargs) -> ApiResponse:
|
|
11
12
|
r"""
|
|
12
13
|
Lists Sponsored Products Ads.
|
|
@@ -32,6 +33,7 @@ class ProductAdsV3(Client):
|
|
|
32
33
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
33
34
|
|
|
34
35
|
@sp_endpoint('/sp/productAds', method='POST')
|
|
36
|
+
@Utils.deprecated
|
|
35
37
|
def create_product_ads(self, version: int = 3, prefer: bool = False, **kwargs) -> ApiResponse:
|
|
36
38
|
r"""
|
|
37
39
|
Create one or more SP Product Ads.
|
|
@@ -61,6 +63,7 @@ class ProductAdsV3(Client):
|
|
|
61
63
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
62
64
|
|
|
63
65
|
@sp_endpoint('/sp/productAds', method='PUT')
|
|
66
|
+
@Utils.deprecated
|
|
64
67
|
def edit_product_ads(self, version: int = 3, prefer: bool = False, **kwargs) -> ApiResponse:
|
|
65
68
|
r"""
|
|
66
69
|
Updates one or more product ads specified by identifier.
|
|
@@ -87,6 +90,7 @@ class ProductAdsV3(Client):
|
|
|
87
90
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
88
91
|
|
|
89
92
|
@sp_endpoint('/sp/productAds/delete', method='POST')
|
|
93
|
+
@Utils.deprecated
|
|
90
94
|
def delete_product_ads(self, version: int = 3, **kwargs) -> ApiResponse:
|
|
91
95
|
r"""
|
|
92
96
|
Delete one or multiple sponsored product ads.
|
|
@@ -3,6 +3,7 @@ from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse, Uti
|
|
|
3
3
|
|
|
4
4
|
class TargetsV3(Client):
|
|
5
5
|
@sp_endpoint('/sp/targets/list', method='POST')
|
|
6
|
+
@Utils.deprecated
|
|
6
7
|
def list_product_targets(self, version: int = 3, **kwargs) -> ApiResponse:
|
|
7
8
|
r"""
|
|
8
9
|
Listing product targets.
|
|
@@ -18,6 +19,7 @@ class TargetsV3(Client):
|
|
|
18
19
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
19
20
|
|
|
20
21
|
@sp_endpoint('/sp/targets', method='POST')
|
|
22
|
+
@Utils.deprecated
|
|
21
23
|
def create_product_targets(self, version: int = 3, prefer: bool = False, **kwargs) -> ApiResponse:
|
|
22
24
|
r"""
|
|
23
25
|
Creating product targets.
|
|
@@ -46,6 +48,7 @@ class TargetsV3(Client):
|
|
|
46
48
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
47
49
|
|
|
48
50
|
@sp_endpoint('/sp/targets', method='PUT')
|
|
51
|
+
@Utils.deprecated
|
|
49
52
|
def edit_product_targets(self, version: int = 3, prefer: bool = False, **kwargs) -> ApiResponse:
|
|
50
53
|
r"""
|
|
51
54
|
Updating product targets.
|
|
@@ -72,6 +75,7 @@ class TargetsV3(Client):
|
|
|
72
75
|
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
73
76
|
|
|
74
77
|
@sp_endpoint('/sp/targets/delete', method='POST')
|
|
78
|
+
@Utils.deprecated
|
|
75
79
|
def delete_product_targets(self, version: int = 3, **kwargs) -> ApiResponse:
|
|
76
80
|
r"""
|
|
77
81
|
Deleting product targets
|
ad_api/api/v1/__init__.py
CHANGED
ad_api/api/v1/targets.py
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Targets(Client):
|
|
5
|
+
r"""
|
|
6
|
+
Targets(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
|
|
7
|
+
|
|
8
|
+
Amazon Ads API v1 - unified Targets endpoints
|
|
9
|
+
|
|
10
|
+
The v1 API is not split by product: every call goes to the same resource
|
|
11
|
+
(``/adsApi/v1/...``) and the product is selected in the request body via
|
|
12
|
+
``adProductFilter``.
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@sp_endpoint('/adsApi/v1/query/targets', method='POST')
|
|
17
|
+
def query_targets(self, **kwargs) -> ApiResponse:
|
|
18
|
+
r"""
|
|
19
|
+
query_targets(body: dict) -> ApiResponse
|
|
20
|
+
|
|
21
|
+
Amazon Ads API v1 - Query Targets (operationId: QueryTarget)
|
|
22
|
+
|
|
23
|
+
Request Body [Required]
|
|
24
|
+
| **adProductFilter** (dict) : [required]
|
|
25
|
+
| **include** (list<AdProduct>) : Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
|
|
26
|
+
| **targetIdFilter** (dict) [optional]
|
|
27
|
+
| **include** (list<string>) : Target identifiers
|
|
28
|
+
| **adGroupIdFilter** (dict) [optional]
|
|
29
|
+
| **include** (list<string>) : Ad group identifiers
|
|
30
|
+
| **campaignIdFilter** (dict) [optional]
|
|
31
|
+
| **include** (list<string>) : Campaign identifiers
|
|
32
|
+
| **keywordFilter** (dict) [optional]
|
|
33
|
+
| **include** (list<string>) : Keyword texts
|
|
34
|
+
| **queryTermMatchType** (string) : [required] Enum [ BROAD_MATCH, EXACT_MATCH ]
|
|
35
|
+
| **productIdFilter** (dict) [optional]
|
|
36
|
+
| **include** (list<string>) : Product identifiers
|
|
37
|
+
| **queryTermMatchType** (string) : [required] Enum [ BROAD_MATCH, EXACT_MATCH ]
|
|
38
|
+
| **matchTypeFilter** (dict) [optional]
|
|
39
|
+
| **include** (list<MatchType>) : Enum [ BROAD, EXACT, INTERESTED_AUDIENCE, KEYWORDS_CLOSE_MATCH, KEYWORDS_LOOSE_MATCH, KEYWORDS_RELATED_TO_GIFTS, KEYWORDS_RELATED_TO_PEER_BRANDS_PRODUCT_CATEGORY, KEYWORDS_RELATED_TO_PRIME_DAY, KEYWORDS_RELATED_TO_YOUR_BRAND, KEYWORDS_RELATED_TO_YOUR_LANDING_PAGES, KEYWORDS_RELATED_TO_YOUR_PRODUCT_CATEGORY, PHRASE, PRODUCTS_SIMILAR_TO_ADVERTISED_PRODUCTS, PRODUCT_COMPLEMENTS, PRODUCT_EXACT, PRODUCT_REMARKETING, PRODUCT_SIMILAR, PRODUCT_SUBSTITUTES ]
|
|
40
|
+
| **negativeFilter** (dict) [optional]
|
|
41
|
+
| **include** (list<boolean>) : Keep only negative or non-negative targets
|
|
42
|
+
| **targetTypeFilter** (dict) [optional]
|
|
43
|
+
| **include** (list<TargetType>) : Enum [ AD_INITIATION, AD_PLAYER_SIZE, APP, AUDIENCE, BRAND_SAFETY_CATEGORY, BRAND_SAFETY_TIER, CONTENT_CATEGORY, CONTENT_GENRE, CONTENT_INSTREAM_POSITION, CONTENT_OUTSTREAM_POSITION, CONTENT_RATING, DAYPART, DEVICE, DOMAIN, FOLD_POSITION, INVENTORY_SOURCE, KEYWORD, LOCATION, NATIVE_CONTENT_POSITION, PLACEMENT_TYPE, PRODUCT, PRODUCT_AUDIENCE, PRODUCT_CATEGORY, SKIPPABILITY, THEME, THIRD_PARTY, VIDEO_AD_FORMAT, VIDEO_CONTENT_DURATION ]
|
|
44
|
+
| **nativeLanguageLocaleFilter** (dict) [optional]
|
|
45
|
+
| **include** (list<string>) : Locales of the unlocalized keyword text
|
|
46
|
+
| **retailerIdFilter** (dict) [optional]
|
|
47
|
+
| **include** (list<string>) : Retailer identifiers
|
|
48
|
+
| **stateFilter** (dict) [optional]
|
|
49
|
+
| **include** (list<State>) : Enum [ ARCHIVED, DRAFT, ENABLED, PAUSED ]
|
|
50
|
+
| **marketplaceScopeFilter** (dict) [optional]
|
|
51
|
+
| **include** (list<MarketplaceScope>) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
|
|
52
|
+
| **retailerScopeFilter** (dict) [optional]
|
|
53
|
+
| **include** (list<RetailerScope>) : Enum [ AMAZON, OTHER_RETAILERS ]
|
|
54
|
+
| **maxResults** (int) [optional] Maximum number of records in the response
|
|
55
|
+
| **nextToken** (string) [optional] Token to navigate to the next page
|
|
56
|
+
|
|
57
|
+
Headers
|
|
58
|
+
| **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
|
|
59
|
+
|
|
60
|
+
Returns
|
|
61
|
+
ApiResponse
|
|
62
|
+
| **targets** (list), **nextToken** (string)
|
|
63
|
+
|
|
64
|
+
"""
|
|
65
|
+
schema_version = 'application/json'
|
|
66
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
67
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
68
|
+
|
|
69
|
+
@sp_endpoint('/adsApi/v1/create/targets', method='POST')
|
|
70
|
+
def create_targets(self, **kwargs) -> ApiResponse:
|
|
71
|
+
r"""
|
|
72
|
+
create_targets(body: dict) -> ApiResponse
|
|
73
|
+
|
|
74
|
+
Amazon Ads API v1 - Create Targets (operationId: CreateTarget)
|
|
75
|
+
|
|
76
|
+
Request Body [Required]
|
|
77
|
+
| **targets** (list<dict>) : [required] One or more target objects.
|
|
78
|
+
Each object requires **adProduct**, **negative**, **state**,
|
|
79
|
+
**targetDetails** and **targetType**.
|
|
80
|
+
|
|
81
|
+
Target fields
|
|
82
|
+
| **adProduct** (string) : [required] Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
|
|
83
|
+
| **negative** (boolean) : [required] True for a negative target
|
|
84
|
+
| **state** (string) : [required] Enum [ DRAFT, ENABLED, PAUSED ]
|
|
85
|
+
| **targetDetails** (dict) : [required] Exactly one of the variants below
|
|
86
|
+
| **targetType** (string) : [required] Enum [ AD_INITIATION, AD_PLAYER_SIZE, APP, AUDIENCE, BRAND_SAFETY_CATEGORY, BRAND_SAFETY_TIER, CONTENT_CATEGORY, CONTENT_GENRE, CONTENT_INSTREAM_POSITION, CONTENT_OUTSTREAM_POSITION, CONTENT_RATING, DAYPART, DEVICE, DOMAIN, FOLD_POSITION, INVENTORY_SOURCE, KEYWORD, LOCATION, NATIVE_CONTENT_POSITION, PLACEMENT_TYPE, PRODUCT, PRODUCT_AUDIENCE, PRODUCT_CATEGORY, SKIPPABILITY, THEME, THIRD_PARTY, VIDEO_AD_FORMAT, VIDEO_CONTENT_DURATION ]
|
|
87
|
+
| **adGroupId** (string) [optional] Identifier of the parent ad group
|
|
88
|
+
| **campaignId** (string) [optional] Identifier of the parent campaign
|
|
89
|
+
| **bid** (dict) [optional]
|
|
90
|
+
| **bid** (number) : Bid value
|
|
91
|
+
| **marketplaceSettings** (list<dict>) : Per marketplace bids
|
|
92
|
+
| **marketplaceScope** (string) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
|
|
93
|
+
| **marketplaces** (list<dict>) : Marketplaces where the target runs
|
|
94
|
+
| **marketplaceConfigurations** (list<dict>) : Each with **marketplace** and **overrides** (both required)
|
|
95
|
+
| **tags** (list<dict>) : Each with **key** and **value** (both required)
|
|
96
|
+
|
|
97
|
+
targetDetails variants (use exactly one key, matching ``targetType``)
|
|
98
|
+
| **keywordTarget** : requires ``keyword`` + ``matchType`` (Enum BROAD, EXACT, PHRASE);
|
|
99
|
+
optional ``nativeLanguageKeyword``, ``nativeLanguageLocale``
|
|
100
|
+
| **productTarget** : requires ``matchType``, ``product``, ``productIdType``
|
|
101
|
+
| **productCategoryTarget** : requires ``productCategoryRefinement``;
|
|
102
|
+
optional ``matchType``, ``productGenreRefinement``
|
|
103
|
+
| **productAudienceTarget** : requires ``asin``, ``event``, ``lookback``, ``matchType``
|
|
104
|
+
| **audienceTarget** : requires ``audienceId``; optional ``acrossGroupOperator``, ``groupId``, ``inGroupOperator``
|
|
105
|
+
| **locationTarget** : requires ``locationId``; optional ``locationIdResolved``
|
|
106
|
+
| **domainTarget** : requires ``domainTargetDetails``, ``domainTargetType``
|
|
107
|
+
| **appTarget** : requires ``appId``, ``appType``
|
|
108
|
+
| **deviceTarget** : requires ``deviceType``; optional ``deviceOrientation``, ``mobileDevice``, ``mobileEnvironment``, ``mobileOs``
|
|
109
|
+
| **dayPartTarget** : requires ``dayOfWeek``, ``timeOfDay``
|
|
110
|
+
| **contentCategoryTarget** : requires ``contentCategoryId``
|
|
111
|
+
| **contentGenreTarget** : requires ``contentGenre``
|
|
112
|
+
| **contentRatingTarget** : requires ``contentRatingType``, ``contentRatingTypeDetails``
|
|
113
|
+
| **brandSafetyTierTarget** : requires ``brandSafetyTier``
|
|
114
|
+
| **brandSafetyCategoryTarget** : requires ``brandSafetyCategory``
|
|
115
|
+
| **inventorySourceTarget** : requires ``inventorySourceId``, ``inventorySourceType``
|
|
116
|
+
| **adInitiationTarget** : requires ``videoInitiationType``
|
|
117
|
+
| **adPlayerSizeTarget** : requires ``adPlayerSize``
|
|
118
|
+
| **videoAdFormatTarget** : requires ``videoAdFormat``
|
|
119
|
+
| **thirdPartyTarget** : requires ``thirdPartyTargetDetails``, ``thirdPartyTargetType``
|
|
120
|
+
| **themeTarget** : requires ``matchType``
|
|
121
|
+
| **contentInstreamPositionTarget** : requires ``instreamPosition``
|
|
122
|
+
| **contentOutstreamPositionTarget** : requires ``outstreamPosition``
|
|
123
|
+
| **videoContentDurationTarget** : requires ``duration``
|
|
124
|
+
| **foldPositionTarget** : requires ``foldPosition``
|
|
125
|
+
| **nativeContentPositionTarget** : requires ``nativePosition``
|
|
126
|
+
| **placementTypeTarget** : requires ``placementType``
|
|
127
|
+
| **skippabilityTarget** : requires ``skippabilityType``
|
|
128
|
+
|
|
129
|
+
Example of the envelope::
|
|
130
|
+
|
|
131
|
+
{"targetDetails": {"keywordTarget": {"keyword": "running shoes", "matchType": "EXACT"}}}
|
|
132
|
+
|
|
133
|
+
Headers
|
|
134
|
+
| **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
|
|
135
|
+
|
|
136
|
+
Returns
|
|
137
|
+
ApiResponse
|
|
138
|
+
| **207** MultiStatus response with partial errors. Inspect the payload
|
|
139
|
+
to know which targets were created and which failed.
|
|
140
|
+
|
|
141
|
+
"""
|
|
142
|
+
schema_version = 'application/json'
|
|
143
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
144
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
145
|
+
|
|
146
|
+
@sp_endpoint('/adsApi/v1/update/targets', method='POST')
|
|
147
|
+
def update_targets(self, **kwargs) -> ApiResponse:
|
|
148
|
+
r"""
|
|
149
|
+
update_targets(body: dict) -> ApiResponse
|
|
150
|
+
|
|
151
|
+
Amazon Ads API v1 - Update Targets (operationId: UpdateTarget)
|
|
152
|
+
|
|
153
|
+
Request Body [Required]
|
|
154
|
+
| **targets** (list<dict>) : [required] One or more target objects.
|
|
155
|
+
Each object requires **targetId** and may include any of the fields below.
|
|
156
|
+
|
|
157
|
+
Target fields [optional except targetId]
|
|
158
|
+
| **targetId** (string) : [required] The identifier of the target to update.
|
|
159
|
+
| **state** (string) : Enum [ DRAFT, ENABLED, PAUSED ]
|
|
160
|
+
| **bid** (dict) : ``bid`` (number) and ``marketplaceSettings``
|
|
161
|
+
| **campaignId** (string)
|
|
162
|
+
| **marketplaceScope** (string) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
|
|
163
|
+
| **marketplaces** (list<dict>)
|
|
164
|
+
| **marketplaceConfigurations** (list<dict>)
|
|
165
|
+
| **tags** (list<dict>)
|
|
166
|
+
|
|
167
|
+
Note: ``targetDetails``, ``targetType``, ``negative`` and ``adProduct``
|
|
168
|
+
are not part of the update body. To change what a target points at,
|
|
169
|
+
delete it and create a new one.
|
|
170
|
+
|
|
171
|
+
Headers
|
|
172
|
+
| **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
|
|
173
|
+
|
|
174
|
+
Returns
|
|
175
|
+
ApiResponse
|
|
176
|
+
| **207** MultiStatus response with partial errors. Inspect the payload
|
|
177
|
+
to know which targets were updated and which failed.
|
|
178
|
+
|
|
179
|
+
"""
|
|
180
|
+
schema_version = 'application/json'
|
|
181
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
182
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
183
|
+
|
|
184
|
+
@sp_endpoint('/adsApi/v1/delete/targets', method='POST')
|
|
185
|
+
def delete_targets(self, **kwargs) -> ApiResponse:
|
|
186
|
+
r"""
|
|
187
|
+
delete_targets(body: dict) -> ApiResponse
|
|
188
|
+
|
|
189
|
+
Amazon Ads API v1 - Delete Targets (operationId: DeleteTarget)
|
|
190
|
+
|
|
191
|
+
Request Body [Required]
|
|
192
|
+
| **targetIds** (list<string>) : [required] Target identifiers to delete
|
|
193
|
+
|
|
194
|
+
Headers
|
|
195
|
+
| **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
|
|
196
|
+
|
|
197
|
+
Returns
|
|
198
|
+
ApiResponse
|
|
199
|
+
| **207** MultiStatus response with partial errors. Inspect the payload
|
|
200
|
+
to know which target ids succeeded and which failed.
|
|
201
|
+
|
|
202
|
+
"""
|
|
203
|
+
schema_version = 'application/json'
|
|
204
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
205
|
+
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.0.
|
|
1
|
+
__version__ = "1.0.4"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-amazon-ad-api
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
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
|
|
@@ -305,6 +305,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
|
|
|
305
305
|
|
|
306
306
|
* [Campaigns](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/campaigns.html#ad_api.api.v1.Campaigns.Campaigns.query_campaigns)
|
|
307
307
|
* [Ad Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ad_groups.html#ad_api.api.v1.AdGroups.AdGroups.query_ad_groups)
|
|
308
|
+
* [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ads.html#ad_api.api.v1.Ads.Ads.query_ads)
|
|
309
|
+
* [Targets](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/targets.html#ad_api.api.v1.Targets.Targets.query_targets)
|
|
308
310
|
|
|
309
311
|
|
|
310
312
|
### [Modules Available Sponsored Products 2.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v2.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=acuR_XSJzp4OrQ5T8-Ac5gYe48mUwObuwjRmisFmZ7k,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
|
|
@@ -72,7 +72,7 @@ ad_api/api/sd/snapshots.py,sha256=XJ5s0Hd74KpNllIrb4-31_Wh_sLyQTnpZb7eHW-LRHc,22
|
|
|
72
72
|
ad_api/api/sd/targeting_recommendations.py,sha256=FmuJxGS5GIXod8iFTS1Ryls_-QFTdf8B3uWL_nne80U,3668
|
|
73
73
|
ad_api/api/sp/__init__.py,sha256=79oQXcmZIb21Y8PApxQdPkzHVyBE1xmuDFsh8MMl8fo,2452
|
|
74
74
|
ad_api/api/sp/ad_groups.py,sha256=5UIzpc9t1fzUFR4ycVHKOtaR2dkZu40jJJcIbjOZzrE,7926
|
|
75
|
-
ad_api/api/sp/ad_groups_v3.py,sha256=
|
|
75
|
+
ad_api/api/sp/ad_groups_v3.py,sha256=UCK0es4KvWcYMtlO01pel52T2ZBaWDgW0iGKYueK7Rg,5294
|
|
76
76
|
ad_api/api/sp/bid_recommendations.py,sha256=vEcW6ZRYAzsRPYraJk0syc3JWK8uq0sIjZY8-KOaXas,3337
|
|
77
77
|
ad_api/api/sp/bid_recommendations_v3.py,sha256=gcbPuunUo29SCynBwpvC0F-F3YE4_oNcFLCIOPXotmI,5366
|
|
78
78
|
ad_api/api/sp/budget_initial_recommendation.py,sha256=xYmrbJ8AFxc4ineLMrQ6cT9kx2PQnalDXElntxAuobA,529
|
|
@@ -85,7 +85,7 @@ ad_api/api/sp/campaign_negative_keywords_v3.py,sha256=3y5PHA_r6GtBAFbAXiGH5q6ByW
|
|
|
85
85
|
ad_api/api/sp/campaign_negative_targets.py,sha256=5fzt3wU1omOrGELtwSs4-R1BCcaT8z5H0StjJfCuc9k,8310
|
|
86
86
|
ad_api/api/sp/campaigns.py,sha256=5N8wsB4-tgbOE61f4aNY9VZRz8EZE6zJ8pyLVcSxU14,21790
|
|
87
87
|
ad_api/api/sp/campaigns_budget_usage.py,sha256=njn-Wd3xvbJbL5HMSNQK4RyxCgAflqUgVFo7XhlXmB8,862
|
|
88
|
-
ad_api/api/sp/campaigns_v3.py,sha256=
|
|
88
|
+
ad_api/api/sp/campaigns_v3.py,sha256=hT8vVmsvOxllgi9f069q4ha_Dy9Dfm12l2x0vXFvke4,7897
|
|
89
89
|
ad_api/api/sp/campaings_optimization.py,sha256=CrH9x-KNTsRc56tn_TCDxDTZIF9pYdqDT48LTepys2w,6673
|
|
90
90
|
ad_api/api/sp/keywords.py,sha256=DR_y4BUrL2P_lSqw3RwHmIBFI634ekbCaEHDuDqyqwI,7851
|
|
91
91
|
ad_api/api/sp/keywords_v3.py,sha256=tvpNY0rzCeLVNGLdN2NNa8Y9DyAH9D3GQUnaEieYpXE,3850
|
|
@@ -94,19 +94,20 @@ ad_api/api/sp/negative_keywords_v3.py,sha256=EwCTmQZTUvzaXSdbhOvM4WFJTpl6BsbeJ8D
|
|
|
94
94
|
ad_api/api/sp/negative_product_targeting.py,sha256=Ti7diEJPxF0rqf2h4HtPXFuR4JyYa4ZwUvG6S3-91sk,7706
|
|
95
95
|
ad_api/api/sp/negative_product_targeting_v3.py,sha256=aAVwLialz5qxO1FfYwA1kJ8I6A8wB14-GBHB-i2tOEQ,6647
|
|
96
96
|
ad_api/api/sp/product_ads.py,sha256=n8S91HYNckZkKhjqUOmVdgmAY5InarL8NYFygcqZK5Y,6525
|
|
97
|
-
ad_api/api/sp/product_ads_v3.py,sha256=
|
|
97
|
+
ad_api/api/sp/product_ads_v3.py,sha256=_-KgP2qbsSLrPlI9N6-v3OeiS30bXp0vLs9vzA1EfjI,5975
|
|
98
98
|
ad_api/api/sp/product_recommendations.py,sha256=vXoZIRqcFc5bo9MUprArKndxcEYe_PuySUnw634Ed4U,499
|
|
99
99
|
ad_api/api/sp/product_targeting.py,sha256=oULvw43bzYD2beR-WboRF0gP6WI-dB0a1Xy5jEp3oY8,15950
|
|
100
|
-
ad_api/api/sp/product_targeting_v3.py,sha256=
|
|
100
|
+
ad_api/api/sp/product_targeting_v3.py,sha256=vk_T0piHzP5uwt8HSHm5hFKP_0sXJD8nbyooPtM-BTs,9567
|
|
101
101
|
ad_api/api/sp/ranked_keywords_recommendations.py,sha256=hVB3-pF0RDgX4ZeeblFk0F_pnRxM3JmulNGdIiKSzI0,13092
|
|
102
102
|
ad_api/api/sp/reports.py,sha256=OMNHL86doMZpbcLixIN1GLf6Mtm_KRxxxs6_vuzMLbU,5381
|
|
103
103
|
ad_api/api/sp/schedule_based_bid_optimization.py,sha256=G8VkS7iP1lTIAxZgbfRCLz8njw1DkVH9HQPOZ63pWNU,2371
|
|
104
104
|
ad_api/api/sp/snapshots.py,sha256=Pl72FpsTRhgA-FQYapTCAqhKLioUMn_Bdru502TS_RE,2969
|
|
105
105
|
ad_api/api/sp/suggested_keywords.py,sha256=cmE8W6q9bIBVt9Zuy1bZKOWErvcIuOyCt8-XAgrhnu8,3553
|
|
106
|
-
ad_api/api/v1/__init__.py,sha256=
|
|
106
|
+
ad_api/api/v1/__init__.py,sha256=F2CvJLkWZDG_ykzVnivBb10CvmSWw2lVf-7dy5oH8LM,189
|
|
107
107
|
ad_api/api/v1/ad_groups.py,sha256=pQhCVdve_O6kbL4mBA5bxxhKcKNl_BKqa7z9DvrxwaM,12626
|
|
108
108
|
ad_api/api/v1/ads.py,sha256=YwZGQ-4WuYquleELtwRI9L8w0fGw7FBRejQE-tZ5hKY,7941
|
|
109
109
|
ad_api/api/v1/campaigns.py,sha256=u5PlvoAhgVhMxbCvYkPgqtbYK3TXXcb7TMie0Qjrgwc,9573
|
|
110
|
+
ad_api/api/v1/targets.py,sha256=a4BzPjg9m1JJwqphhpQOFkNIcgCw7v4-K0sNzOihMZI,12355
|
|
110
111
|
ad_api/auth/__init__.py,sha256=B_yKdmsHENQaKfMFAIcSxQqG4aBUmNBm5orKIMUYObk,229
|
|
111
112
|
ad_api/auth/access_token_client.py,sha256=_V0FGXRmqRNMb1fz1AGqnR6gYr_WqFkMTbK1os0yoIk,2983
|
|
112
113
|
ad_api/auth/access_token_response.py,sha256=zlkfo3oWjkhAqNJIUOM0S4g_FvpgDa3IwNLxlREM89A,275
|
|
@@ -122,8 +123,8 @@ ad_api/base/exceptions.py,sha256=9D3M40ZIlLS0fA-aQh1BTWPOW-Nvf0tRhbA85jFnDJ4,438
|
|
|
122
123
|
ad_api/base/helpers.py,sha256=naUkDLK466x_OBCPXxMlzRc2nPC6iQ6H_vyUji0MJJ0,2282
|
|
123
124
|
ad_api/base/marketplaces.py,sha256=44lvCcluXNpqTprWQ80e3weSQmQbJoWL-WDSOWVbCyQ,4657
|
|
124
125
|
ad_api/base/utils.py,sha256=_qnCBOvyJTLgaZjJzUWTi38GGLHkQszXELs79133Rb4,5618
|
|
125
|
-
python_amazon_ad_api-1.0.
|
|
126
|
-
python_amazon_ad_api-1.0.
|
|
127
|
-
python_amazon_ad_api-1.0.
|
|
128
|
-
python_amazon_ad_api-1.0.
|
|
129
|
-
python_amazon_ad_api-1.0.
|
|
126
|
+
python_amazon_ad_api-1.0.4.dist-info/licenses/LICENSE,sha256=h2rpqlmmLy-4l1tN6KpWAFxx1JEMYeEFrMrZUbx_B_o,1105
|
|
127
|
+
python_amazon_ad_api-1.0.4.dist-info/METADATA,sha256=yi3Le2QPCEx7Vk4ZPSYgUWa3D6_ES_CgbWUkvpI1gYE,20576
|
|
128
|
+
python_amazon_ad_api-1.0.4.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
129
|
+
python_amazon_ad_api-1.0.4.dist-info/top_level.txt,sha256=nN9twUos-8pkP514ZwpvRU9YL9L2XyQyHsMQFfudGTU,7
|
|
130
|
+
python_amazon_ad_api-1.0.4.dist-info/RECORD,,
|
|
File without changes
|
{python_amazon_ad_api-1.0.2.dist-info → python_amazon_ad_api-1.0.4.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|