python-amazon-ad-api 0.9.8__tar.gz → 1.0.0__tar.gz

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.
Files changed (132) hide show
  1. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/PKG-INFO +9 -5
  2. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/README.md +8 -4
  3. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/__init__.py +2 -0
  4. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/campaigns.py +0 -164
  5. python_amazon_ad_api-1.0.0/ad_api/version.py +1 -0
  6. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/python_amazon_ad_api.egg-info/PKG-INFO +9 -5
  7. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/setup.cfg +1 -1
  8. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/setup.py +1 -1
  9. python_amazon_ad_api-0.9.8/ad_api/version.py +0 -1
  10. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/LICENSE +0 -0
  11. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/__init__.py +0 -0
  12. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/account.py +0 -0
  13. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/advertising_test_account.py +0 -0
  14. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/attribution.py +0 -0
  15. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/audiences.py +0 -0
  16. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/billing.py +0 -0
  17. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/brand_metrics.py +0 -0
  18. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/creative_assets.py +0 -0
  19. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/dsp/__init__.py +0 -0
  20. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/dsp/access_token_client.py +0 -0
  21. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/dsp/client.py +0 -0
  22. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/dsp/credential_provider.py +0 -0
  23. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/dsp/reports.py +0 -0
  24. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/eligibility.py +0 -0
  25. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/exports.py +0 -0
  26. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/history.py +0 -0
  27. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/insights.py +0 -0
  28. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/invoices.py +0 -0
  29. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/localization.py +0 -0
  30. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/manager_accounts.py +0 -0
  31. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/metadata.py +0 -0
  32. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/portfolios.py +0 -0
  33. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/portfolios_v3.py +0 -0
  34. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/profiles.py +0 -0
  35. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/recommendations.py +0 -0
  36. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/reports.py +0 -0
  37. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/__init__.py +0 -0
  38. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/ad_creatives_v4.py +0 -0
  39. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/ad_groups.py +0 -0
  40. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/ad_groups_v4.py +0 -0
  41. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/ads_v4.py +0 -0
  42. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/benchmarks.py +0 -0
  43. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/bid_recommendations.py +0 -0
  44. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/brands.py +0 -0
  45. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/campaigns.py +0 -0
  46. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/campaigns_v4.py +0 -0
  47. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/forecast.py +0 -0
  48. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/keywords.py +0 -0
  49. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/keywords_recommendations.py +0 -0
  50. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/landing_page_asins.py +0 -0
  51. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/media.py +0 -0
  52. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/moderation.py +0 -0
  53. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/negative_keywords.py +0 -0
  54. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/negative_product_targeting.py +0 -0
  55. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/product_targeting.py +0 -0
  56. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/recommendations.py +0 -0
  57. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/reports.py +0 -0
  58. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/snapshots.py +0 -0
  59. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/stores.py +0 -0
  60. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/targeting_recommendations.py +0 -0
  61. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sb/themes.py +0 -0
  62. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/__init__.py +0 -0
  63. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/ad_groups.py +0 -0
  64. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/bid_recommendations.py +0 -0
  65. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/brand_safety.py +0 -0
  66. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/budget_rules.py +0 -0
  67. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/campaigns.py +0 -0
  68. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
  69. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/creatives.py +0 -0
  70. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/forecast.py +0 -0
  71. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/negative_product_targeting.py +0 -0
  72. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/product_ads.py +0 -0
  73. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/product_targeting.py +0 -0
  74. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/recommendations.py +0 -0
  75. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/reports.py +0 -0
  76. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/snapshots.py +0 -0
  77. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sd/targeting_recommendations.py +0 -0
  78. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/__init__.py +0 -0
  79. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/ad_groups.py +0 -0
  80. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/ad_groups_v3.py +0 -0
  81. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/bid_recommendations.py +0 -0
  82. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
  83. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
  84. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/budget_recommendations.py +0 -0
  85. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/budget_rules.py +0 -0
  86. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
  87. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
  88. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/campaign_negative_keywords.py +0 -0
  89. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
  90. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/campaign_negative_targets.py +0 -0
  91. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
  92. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/campaigns_v3.py +0 -0
  93. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/campaings_optimization.py +0 -0
  94. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/keywords.py +0 -0
  95. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/keywords_v3.py +0 -0
  96. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/negative_keywords.py +0 -0
  97. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/negative_keywords_v3.py +0 -0
  98. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/negative_product_targeting.py +0 -0
  99. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
  100. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/product_ads.py +0 -0
  101. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/product_ads_v3.py +0 -0
  102. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/product_recommendations.py +0 -0
  103. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/product_targeting.py +0 -0
  104. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/product_targeting_v3.py +0 -0
  105. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
  106. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/reports.py +0 -0
  107. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
  108. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/snapshots.py +0 -0
  109. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/sp/suggested_keywords.py +0 -0
  110. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/stores.py +0 -0
  111. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/stream.py +0 -0
  112. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/api/validation_configurations.py +0 -0
  113. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/auth/__init__.py +0 -0
  114. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/auth/access_token_client.py +0 -0
  115. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/auth/access_token_response.py +0 -0
  116. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/auth/credentials.py +0 -0
  117. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/auth/exceptions.py +0 -0
  118. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/__init__.py +0 -0
  119. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/api_response.py +0 -0
  120. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/base_client.py +0 -0
  121. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/client.py +0 -0
  122. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/config.py +0 -0
  123. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/credential_provider.py +0 -0
  124. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/exceptions.py +0 -0
  125. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/helpers.py +0 -0
  126. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/marketplaces.py +0 -0
  127. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/ad_api/base/utils.py +0 -0
  128. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/pyproject.toml +0 -0
  129. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/python_amazon_ad_api.egg-info/SOURCES.txt +0 -0
  130. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
  131. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/python_amazon_ad_api.egg-info/requires.txt +0 -0
  132. {python_amazon_ad_api-0.9.8 → python_amazon_ad_api-1.0.0}/python_amazon_ad_api.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 0.9.8
3
+ Version: 1.0.0
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
@@ -299,9 +299,13 @@ There is a new version 3 Portfolios API, please check the [migration guide](http
299
299
  * [Get test account information](https://python-amazon-ad-api.readthedocs.io/en/latest/api/advertising_test_account.html#ad_api.api.AdvertisingTestAccount.AdvertisingTestAccount.get_test_account)
300
300
 
301
301
 
302
- ### Sponsored Products v1 (new)
302
+ ### Amazon Ads API v1 (new, unified)
303
303
 
304
- New unified endpoint generation. Campaigns are queried with a single `POST /adsApi/v1/query/campaigns` resource instead of the versioned v2/v3 endpoints.
304
+ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call targets the same resource and the product is selected in the request body with `adProductFilter`. It supersedes the per-product v2/v3 endpoints.
305
+
306
+ ```python
307
+ from ad_api.api import v1
308
+ ```
305
309
 
306
310
  | Method | Endpoint | Body |
307
311
  |---|---|---|
@@ -313,9 +317,9 @@ New unified endpoint generation. Campaigns are queried with a single `POST /adsA
313
317
  All four return a **207 MultiStatus** response (except `query_campaigns`, which returns 200), so check the payload for per-entity errors.
314
318
 
315
319
  ```python
316
- from ad_api.api import sponsored_products
320
+ from ad_api.api import v1
317
321
 
318
- result = sponsored_products.Campaigns(credentials=credentials, debug=True).query_campaigns(
322
+ result = v1.Campaigns(credentials=credentials, debug=True).query_campaigns(
319
323
  body={
320
324
  "adProductFilter": {"include": ["SPONSORED_PRODUCTS"]},
321
325
  "stateFilter": {"include": ["ENABLED"]},
@@ -271,9 +271,13 @@ There is a new version 3 Portfolios API, please check the [migration guide](http
271
271
  * [Get test account information](https://python-amazon-ad-api.readthedocs.io/en/latest/api/advertising_test_account.html#ad_api.api.AdvertisingTestAccount.AdvertisingTestAccount.get_test_account)
272
272
 
273
273
 
274
- ### Sponsored Products v1 (new)
274
+ ### Amazon Ads API v1 (new, unified)
275
275
 
276
- New unified endpoint generation. Campaigns are queried with a single `POST /adsApi/v1/query/campaigns` resource instead of the versioned v2/v3 endpoints.
276
+ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call targets the same resource and the product is selected in the request body with `adProductFilter`. It supersedes the per-product v2/v3 endpoints.
277
+
278
+ ```python
279
+ from ad_api.api import v1
280
+ ```
277
281
 
278
282
  | Method | Endpoint | Body |
279
283
  |---|---|---|
@@ -285,9 +289,9 @@ New unified endpoint generation. Campaigns are queried with a single `POST /adsA
285
289
  All four return a **207 MultiStatus** response (except `query_campaigns`, which returns 200), so check the payload for per-entity errors.
286
290
 
287
291
  ```python
288
- from ad_api.api import sponsored_products
292
+ from ad_api.api import v1
289
293
 
290
- result = sponsored_products.Campaigns(credentials=credentials, debug=True).query_campaigns(
294
+ result = v1.Campaigns(credentials=credentials, debug=True).query_campaigns(
291
295
  body={
292
296
  "adProductFilter": {"include": ["SPONSORED_PRODUCTS"]},
293
297
  "stateFilter": {"include": ["ENABLED"]},
@@ -12,6 +12,7 @@ from .audiences import Audiences
12
12
  from .portfolios import Portfolios
13
13
  from .portfolios_v3 import PortfoliosV3
14
14
  from .insights import Insights
15
+ from . import v1
15
16
  from . import sp as sponsored_products
16
17
  from . import sb as sponsored_brands
17
18
  from . import sd as sponsored_display
@@ -26,6 +27,7 @@ from .exports import Exports
26
27
  from .stores import Stores
27
28
 
28
29
  __all__ = [
30
+ "v1",
29
31
  "sp",
30
32
  "sb",
31
33
  "sd",
@@ -396,167 +396,3 @@ class Campaigns(Client):
396
396
  # """
397
397
  # return self._request(fill_query_params(kwargs.pop('path'), campaignId), params=kwargs)
398
398
  #
399
- @sp_endpoint('/adsApi/v1/query/campaigns', method='POST')
400
- def query_campaigns(self, **kwargs) -> ApiResponse:
401
- r"""
402
- query_campaigns(body: dict) -> ApiResponse
403
-
404
- Amazon Ads API v1 - Query Campaigns (operationId: QueryCampaign)
405
-
406
- Request Body [Required]
407
- | **adProductFilter** (dict): [required]
408
- | **include** (list<AdProduct>) : Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
409
- | **campaignIdFilter** (dict) [optional]
410
- | **include** (list<string>) : Campaign identifiers
411
- | **goalFilter** (dict) [optional]
412
- | **include** (list<Goal>) : Enum [ AWARENESS, CONSIDERATION, CONVERSIONS ]
413
- | **marketplaceScopeFilter** (dict) [optional]
414
- | **include** (list<MarketplaceScope>) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
415
- | **nameFilter** (dict) [optional]
416
- | **include** (list<string>) : Campaign names
417
- | **queryTermMatchType** (string) : [required] Enum [ BROAD_MATCH, EXACT_MATCH ]
418
- | **portfolioIdFilter** (dict) [optional]
419
- | **include** (list<string>) : Portfolio identifiers
420
- | **retailerScopeFilter** (dict) [optional]
421
- | **include** (list<RetailerScope>) : Enum [ AMAZON, OTHER_RETAILERS ]
422
- | **stateFilter** (dict) [optional]
423
- | **include** (list<State>) : Enum [ ARCHIVED, DRAFT, ENABLED, PAUSED ]
424
- | **maxResults** (int) [optional] Minimum 1, Maximum 1000
425
- | **nextToken** (string) [optional] Token to navigate to the next page
426
-
427
- Headers
428
- | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
429
-
430
- Returns
431
- ApiResponse
432
- | **campaigns** (list), **nextToken** (string)
433
-
434
- """
435
- schema_version = 'application/json'
436
- headers = {"Accept": schema_version, "Content-Type": schema_version}
437
- return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
438
-
439
- @sp_endpoint('/adsApi/v1/delete/campaigns', method='POST')
440
- def delete_campaigns(self, **kwargs) -> ApiResponse:
441
- r"""
442
- delete_campaigns(body: dict) -> ApiResponse
443
-
444
- Amazon Ads API v1 - Delete Campaigns (operationId: DeleteCampaign)
445
-
446
- Request Body [Required]
447
- | **campaignIds** (list<string>) : [required] Campaign identifiers to delete
448
-
449
- Headers
450
- | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
451
-
452
- Returns
453
- ApiResponse
454
- | **207** MultiStatus response with partial errors. Inspect the payload
455
- to know which campaign ids succeeded and which failed.
456
-
457
- """
458
- schema_version = 'application/json'
459
- headers = {"Accept": schema_version, "Content-Type": schema_version}
460
- return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
461
-
462
- @sp_endpoint('/adsApi/v1/update/campaigns', method='POST')
463
- def update_campaigns(self, **kwargs) -> ApiResponse:
464
- r"""
465
- update_campaigns(body: dict) -> ApiResponse
466
-
467
- Amazon Ads API v1 - Update Campaigns (operationId: UpdateCampaign)
468
-
469
- Request Body [Required]
470
- | **campaigns** (list<dict>) : [required] One or more campaign objects to update.
471
- Each object requires **campaignId** and may include any of the fields below.
472
-
473
- Campaign fields [optional except campaignId]
474
- | **campaignId** (string) : [required] The identifier of the campaign to update.
475
- | **adProduct** (string) : Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
476
- | **name** (string) : The name of the campaign.
477
- | **state** (string) : Enum [ DRAFT, ENABLED, PAUSED ]
478
- | **budgets** (list<dict>) : Budget objects for the campaign.
479
- | **startDateTime** (string) : Campaign start date and time.
480
- | **endDateTime** (string) : Campaign end date and time.
481
- | **portfolioId** (string) : The identifier of the portfolio.
482
- | **purchaseOrderNumber** (string) : Advertiser purchase order number.
483
- | **tags** (list<dict>) : Advertiser-specified custom identifiers.
484
- | **marketplaces** (list<dict>) : Marketplaces where the campaign runs.
485
- | **marketplaceConfigurations** (list<dict>) : Per-marketplace overrides.
486
- | **countries** (list<string>) : Country codes.
487
- | **costType** (string) : Enum [ CPC, CPM, FIXED_PRICE, VCPM ]
488
- | **fees** (list<dict>) : Fee definitions.
489
- | **flights** (list<dict>) : Flight schedules.
490
- | **frequencies** (list<dict>) : Frequency cap definitions.
491
- | **optimizations** (dict) : Campaign optimization settings.
492
- | **siteRestrictions** (list<dict>) : Site restrictions.
493
- | **skanAppId** (string) : SKAdNetwork app id.
494
- | **targetedPGDealId** (string) : Targeted programmatic guaranteed deal id.
495
- | **adomains** (list<string>) : Ad domains.
496
-
497
- Headers
498
- | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
499
-
500
- Returns
501
- ApiResponse
502
- | **207** MultiStatus response with partial errors. Inspect the payload
503
- to know which campaigns succeeded and which failed.
504
-
505
- """
506
- schema_version = 'application/json'
507
- headers = {"Accept": schema_version, "Content-Type": schema_version}
508
- return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
509
-
510
- @sp_endpoint('/adsApi/v1/create/campaigns', method='POST')
511
- def create_campaigns(self, **kwargs) -> ApiResponse:
512
- r"""
513
- create_campaigns(body: dict) -> ApiResponse
514
-
515
- Amazon Ads API v1 - Create Campaigns (operationId: CreateCampaign)
516
-
517
- Request Body [Required]
518
- | **campaigns** (list<dict>) : [required] One or more campaign objects to create.
519
- Each object requires **adProduct**, **name** and **state**.
520
-
521
- Campaign fields
522
- | **adProduct** (string) : [required] Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
523
- | **name** (string) : [required] The name of the campaign.
524
- | **state** (string) : [required] Enum [ DRAFT, ENABLED, PAUSED ]
525
- | **budgets** (list<dict>) : Budget objects for the campaign.
526
- | **budgetType** (string) : [required] Budget type.
527
- | **budgetValue** (dict) : [required] Budget amount.
528
- | **recurrenceTimePeriod** (string) : [required] Recurrence period.
529
- | **startDateTime** (string) : Campaign start date and time.
530
- | **endDateTime** (string) : Campaign end date and time.
531
- | **portfolioId** (string) : The identifier of the portfolio.
532
- | **purchaseOrderNumber** (string) : Advertiser purchase order number.
533
- | **tags** (list<dict>) : [required key+value] Advertiser-specified custom identifiers.
534
- | **marketplaces** (list<dict>) : Marketplaces where the campaign runs.
535
- | **marketplaceConfigurations** (list<dict>) : Per-marketplace overrides, each with
536
- **marketplace** and **overrides** (both required).
537
- | **countries** (list<string>) : Country codes.
538
- | **costType** (string) : Enum [ CPC, CPM, FIXED_PRICE, VCPM ]
539
- | **fees** (list<dict>) : [required feeType+feeValue+feeValueType] Fee definitions.
540
- | **flights** (list<dict>) : [required budget+startDateTime+endDateTime] Flight schedules.
541
- | **frequencies** (list<dict>) : [required eventMaxCount+frequencyTargetingSetting+
542
- timeCount+timeUnit] Frequency cap definitions.
543
- | **optimizations** (dict) : Campaign optimization settings.
544
- | **siteRestrictions** (list<dict>) : Site restrictions.
545
- | **brandId** (string) : Brand identifier.
546
- | **skanAppId** (string) : SKAdNetwork app id.
547
- | **targetedPGDealId** (string) : Targeted programmatic guaranteed deal id.
548
- | **adomains** (list<string>) : Ad domains.
549
- | **autoCreationSettings** (dict) : Automatic creation settings.
550
-
551
- Headers
552
- | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
553
-
554
- Returns
555
- ApiResponse
556
- | **207** MultiStatus response with partial errors. Inspect the payload
557
- to know which campaigns were created and which failed.
558
-
559
- """
560
- schema_version = 'application/json'
561
- headers = {"Accept": schema_version, "Content-Type": schema_version}
562
- return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
@@ -0,0 +1 @@
1
+ __version__ = "1.0.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 0.9.8
3
+ Version: 1.0.0
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
@@ -299,9 +299,13 @@ There is a new version 3 Portfolios API, please check the [migration guide](http
299
299
  * [Get test account information](https://python-amazon-ad-api.readthedocs.io/en/latest/api/advertising_test_account.html#ad_api.api.AdvertisingTestAccount.AdvertisingTestAccount.get_test_account)
300
300
 
301
301
 
302
- ### Sponsored Products v1 (new)
302
+ ### Amazon Ads API v1 (new, unified)
303
303
 
304
- New unified endpoint generation. Campaigns are queried with a single `POST /adsApi/v1/query/campaigns` resource instead of the versioned v2/v3 endpoints.
304
+ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call targets the same resource and the product is selected in the request body with `adProductFilter`. It supersedes the per-product v2/v3 endpoints.
305
+
306
+ ```python
307
+ from ad_api.api import v1
308
+ ```
305
309
 
306
310
  | Method | Endpoint | Body |
307
311
  |---|---|---|
@@ -313,9 +317,9 @@ New unified endpoint generation. Campaigns are queried with a single `POST /adsA
313
317
  All four return a **207 MultiStatus** response (except `query_campaigns`, which returns 200), so check the payload for per-entity errors.
314
318
 
315
319
  ```python
316
- from ad_api.api import sponsored_products
320
+ from ad_api.api import v1
317
321
 
318
- result = sponsored_products.Campaigns(credentials=credentials, debug=True).query_campaigns(
322
+ result = v1.Campaigns(credentials=credentials, debug=True).query_campaigns(
319
323
  body={
320
324
  "adProductFilter": {"include": ["SPONSORED_PRODUCTS"]},
321
325
  "stateFilter": {"include": ["ENABLED"]},
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = python-amazon-ad-api
3
- version = 0.9.8
3
+ version = 1.0.0
4
4
  author = Daniel Alvaro
5
5
  author_email = denisneuf@hotmail.com
6
6
  description = Python wrapper for the Amazon Advertising API
@@ -2,7 +2,7 @@ from setuptools import setup
2
2
 
3
3
  setup(
4
4
  name='python-amazon-ad-api',
5
- version='0.9.8',
5
+ version='1.0.0',
6
6
  install_requires=[
7
7
  "requests>=2.27.1,<2.35.0",
8
8
  "six>=1.16,<1.18",
@@ -1 +0,0 @@
1
- __version__ = "0.9.8"