python-amazon-ad-api 1.1.8__tar.gz → 1.1.9__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 (122) hide show
  1. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/PKG-INFO +16 -5
  2. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/README.md +15 -4
  3. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/helpers.py +2 -0
  4. python_amazon_ad_api-1.1.9/ad_api/version.py +1 -0
  5. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/python_amazon_ad_api.egg-info/PKG-INFO +16 -5
  6. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/setup.cfg +1 -1
  7. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/setup.py +1 -1
  8. python_amazon_ad_api-1.1.8/ad_api/version.py +0 -1
  9. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/LICENSE +0 -0
  10. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/__init__.py +0 -0
  11. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/__init__.py +0 -0
  12. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/account.py +0 -0
  13. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/advertising_test_account.py +0 -0
  14. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/attribution.py +0 -0
  15. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/audiences.py +0 -0
  16. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/billing.py +0 -0
  17. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/brand_metrics.py +0 -0
  18. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/creative_assets.py +0 -0
  19. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/eligibility.py +0 -0
  20. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/exports.py +0 -0
  21. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/history.py +0 -0
  22. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/insights.py +0 -0
  23. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/invoices.py +0 -0
  24. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/localization.py +0 -0
  25. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/manager_accounts.py +0 -0
  26. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/metadata.py +0 -0
  27. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/portfolios.py +0 -0
  28. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/portfolios_v3.py +0 -0
  29. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/profiles.py +0 -0
  30. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/recommendations.py +0 -0
  31. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/reports.py +0 -0
  32. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/__init__.py +0 -0
  33. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/ad_creatives_v4.py +0 -0
  34. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/ad_groups.py +0 -0
  35. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/ad_groups_v4.py +0 -0
  36. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/ads_v4.py +0 -0
  37. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/benchmarks.py +0 -0
  38. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/bid_recommendations.py +0 -0
  39. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/brands.py +0 -0
  40. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/budget_rules.py +0 -0
  41. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/campaigns.py +0 -0
  42. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/campaigns_v4.py +0 -0
  43. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/forecast.py +0 -0
  44. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/keywords.py +0 -0
  45. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/keywords_recommendations.py +0 -0
  46. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/landing_page_asins.py +0 -0
  47. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/media.py +0 -0
  48. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/migration.py +0 -0
  49. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/negative_keywords.py +0 -0
  50. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/negative_product_targeting.py +0 -0
  51. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/optimization_rules.py +0 -0
  52. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/product_targeting.py +0 -0
  53. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/recommendations.py +0 -0
  54. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/reports.py +0 -0
  55. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/stores.py +0 -0
  56. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/targeting_categories.py +0 -0
  57. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/targeting_recommendations.py +0 -0
  58. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sb/themes.py +0 -0
  59. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/__init__.py +0 -0
  60. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/ad_groups.py +0 -0
  61. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/bid_recommendations.py +0 -0
  62. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/brand_safety.py +0 -0
  63. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/budget_rules.py +0 -0
  64. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/campaigns.py +0 -0
  65. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
  66. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/creatives.py +0 -0
  67. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/forecast.py +0 -0
  68. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/negative_product_targeting.py +0 -0
  69. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/product_ads.py +0 -0
  70. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/product_targeting.py +0 -0
  71. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/recommendations.py +0 -0
  72. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/reports.py +0 -0
  73. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/snapshots.py +0 -0
  74. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sd/targeting_recommendations.py +0 -0
  75. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/__init__.py +0 -0
  76. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/ad_groups_v3.py +0 -0
  77. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
  78. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
  79. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/budget_recommendations.py +0 -0
  80. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/budget_rules.py +0 -0
  81. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
  82. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
  83. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
  84. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/campaign_negative_targets.py +0 -0
  85. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
  86. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/campaigns_v3.py +0 -0
  87. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/campaings_optimization.py +0 -0
  88. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/keywords_v3.py +0 -0
  89. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/negative_keywords_v3.py +0 -0
  90. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
  91. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/product_ads_v3.py +0 -0
  92. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/product_recommendations.py +0 -0
  93. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/product_targeting_v3.py +0 -0
  94. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
  95. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
  96. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/stores.py +0 -0
  97. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/stream.py +0 -0
  98. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/v1/__init__.py +0 -0
  99. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/v1/ad_groups.py +0 -0
  100. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/v1/ads.py +0 -0
  101. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/v1/campaigns.py +0 -0
  102. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/v1/targets.py +0 -0
  103. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/api/validation_configurations.py +0 -0
  104. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/auth/__init__.py +0 -0
  105. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/auth/access_token_client.py +0 -0
  106. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/auth/access_token_response.py +0 -0
  107. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/auth/credentials.py +0 -0
  108. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/auth/exceptions.py +0 -0
  109. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/__init__.py +0 -0
  110. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/api_response.py +0 -0
  111. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/base_client.py +0 -0
  112. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/client.py +0 -0
  113. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/config.py +0 -0
  114. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/credential_provider.py +0 -0
  115. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/exceptions.py +0 -0
  116. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/marketplaces.py +0 -0
  117. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/ad_api/base/utils.py +0 -0
  118. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/pyproject.toml +0 -0
  119. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/python_amazon_ad_api.egg-info/SOURCES.txt +0 -0
  120. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
  121. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/python_amazon_ad_api.egg-info/requires.txt +0 -0
  122. {python_amazon_ad_api-1.1.8 → python_amazon_ad_api-1.1.9}/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: 1.1.8
3
+ Version: 1.1.9
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
@@ -343,24 +343,35 @@ Warning: the campaign, ad group and product ad operations are deprecated in favo
343
343
  * [Ad Groups (deprecated)](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_groups.html)
344
344
  * [Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/keywords.html)
345
345
  * [Negative Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/negative_keywords.html)
346
+ * [Keywords Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/keywords_recommendations.html)
346
347
  * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/product_targeting.html)
347
348
  * [Negative Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/negative_product_targeting.html)
348
349
  * [Targeting Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/targeting_recommendations.html)
349
350
  * [Bid Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/bid_recommendations.html)
351
+ * [Benchmarks](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/benchmarks.html)
350
352
  * [Stores](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/stores.html)
351
353
  * [Landing Page Asins](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/landing_page_asins.html)
352
354
  * [Media](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/media.html)
353
355
  * [Brands](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/brands.html)
354
- * [Moderation](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/moderation.html)
355
- * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
356
- * [Snapshots](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/snapshots.html)
357
356
  * [Themes](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/themes.html)
357
+ * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
358
358
 
359
359
  ### [Modules Available Sponsored Brands 4.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sb_v4.html)
360
360
 
361
+ > The 4.0 contract is fully covered: every operation is implemented except the campaign moderation route, which the service answers with a router `404`, and the report download, which resolves through the shared `_download` helper.
362
+
361
363
  * [Campaigns](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/campaigns_v4.html)
362
364
  * [Ad Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_groups_v4.html)
363
- * [Ads Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ads_v4.html)
365
+ * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ads_v4.html)
366
+ * [Ad Creatives](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_creatives_v4.html)
367
+ * [Forecast](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/forecast.html)
368
+ * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/recommendations.html)
369
+ * [Budget Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/budget_rules.html)
370
+ * [Optimization Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/optimization_rules.html)
371
+ * [Targeting Categories](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/targeting_categories.html)
372
+ * [Migration](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/migration.html)
373
+
374
+ > Most 4.0 routes take a versioned media type and the service routes on it. With `application/json` they answer `404 Could not find resource`, which reads like a missing route but is only the wrong media type. This affects forecasts, budget recommendations, optimization rules, migrations, insights, negative brand recommendations and the collection creatives.
364
375
 
365
376
  ### [Modules Available Sponsored Display](https://python-amazon-ad-api.readthedocs.io/en/latest/sd.html)
366
377
 
@@ -315,24 +315,35 @@ Warning: the campaign, ad group and product ad operations are deprecated in favo
315
315
  * [Ad Groups (deprecated)](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_groups.html)
316
316
  * [Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/keywords.html)
317
317
  * [Negative Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/negative_keywords.html)
318
+ * [Keywords Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/keywords_recommendations.html)
318
319
  * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/product_targeting.html)
319
320
  * [Negative Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/negative_product_targeting.html)
320
321
  * [Targeting Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/targeting_recommendations.html)
321
322
  * [Bid Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/bid_recommendations.html)
323
+ * [Benchmarks](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/benchmarks.html)
322
324
  * [Stores](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/stores.html)
323
325
  * [Landing Page Asins](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/landing_page_asins.html)
324
326
  * [Media](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/media.html)
325
327
  * [Brands](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/brands.html)
326
- * [Moderation](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/moderation.html)
327
- * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
328
- * [Snapshots](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/snapshots.html)
329
328
  * [Themes](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/themes.html)
329
+ * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
330
330
 
331
331
  ### [Modules Available Sponsored Brands 4.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sb_v4.html)
332
332
 
333
+ > The 4.0 contract is fully covered: every operation is implemented except the campaign moderation route, which the service answers with a router `404`, and the report download, which resolves through the shared `_download` helper.
334
+
333
335
  * [Campaigns](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/campaigns_v4.html)
334
336
  * [Ad Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_groups_v4.html)
335
- * [Ads Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ads_v4.html)
337
+ * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ads_v4.html)
338
+ * [Ad Creatives](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_creatives_v4.html)
339
+ * [Forecast](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/forecast.html)
340
+ * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/recommendations.html)
341
+ * [Budget Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/budget_rules.html)
342
+ * [Optimization Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/optimization_rules.html)
343
+ * [Targeting Categories](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/targeting_categories.html)
344
+ * [Migration](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/migration.html)
345
+
346
+ > Most 4.0 routes take a versioned media type and the service routes on it. With `application/json` they answer `404 Could not find resource`, which reads like a missing route but is only the wrong media type. This affects forecasts, budget recommendations, optimization rules, migrations, insights, negative brand recommendations and the collection creatives.
336
347
 
337
348
  ### [Modules Available Sponsored Display](https://python-amazon-ad-api.readthedocs.io/en/latest/sd.html)
338
349
 
@@ -1,3 +1,4 @@
1
+ import functools
1
2
  from io import BytesIO
2
3
  from typing import TypeVar
3
4
 
@@ -17,6 +18,7 @@ T = TypeVar("T")
17
18
 
18
19
  def sp_endpoint(path, method="GET"):
19
20
  def decorator(function: T) -> T:
21
+ @functools.wraps(function)
20
22
  def wrapper(*args, **kwargs):
21
23
  kwargs.update({"path": path, "method": method})
22
24
  return function(*args, **kwargs)
@@ -0,0 +1 @@
1
+ __version__ = "1.1.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.1.8
3
+ Version: 1.1.9
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
@@ -343,24 +343,35 @@ Warning: the campaign, ad group and product ad operations are deprecated in favo
343
343
  * [Ad Groups (deprecated)](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_groups.html)
344
344
  * [Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/keywords.html)
345
345
  * [Negative Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/negative_keywords.html)
346
+ * [Keywords Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/keywords_recommendations.html)
346
347
  * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/product_targeting.html)
347
348
  * [Negative Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/negative_product_targeting.html)
348
349
  * [Targeting Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/targeting_recommendations.html)
349
350
  * [Bid Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/bid_recommendations.html)
351
+ * [Benchmarks](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/benchmarks.html)
350
352
  * [Stores](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/stores.html)
351
353
  * [Landing Page Asins](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/landing_page_asins.html)
352
354
  * [Media](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/media.html)
353
355
  * [Brands](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/brands.html)
354
- * [Moderation](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/moderation.html)
355
- * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
356
- * [Snapshots](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/snapshots.html)
357
356
  * [Themes](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/themes.html)
357
+ * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
358
358
 
359
359
  ### [Modules Available Sponsored Brands 4.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sb_v4.html)
360
360
 
361
+ > The 4.0 contract is fully covered: every operation is implemented except the campaign moderation route, which the service answers with a router `404`, and the report download, which resolves through the shared `_download` helper.
362
+
361
363
  * [Campaigns](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/campaigns_v4.html)
362
364
  * [Ad Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_groups_v4.html)
363
- * [Ads Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ads_v4.html)
365
+ * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ads_v4.html)
366
+ * [Ad Creatives](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/ad_creatives_v4.html)
367
+ * [Forecast](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/forecast.html)
368
+ * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/recommendations.html)
369
+ * [Budget Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/budget_rules.html)
370
+ * [Optimization Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/optimization_rules.html)
371
+ * [Targeting Categories](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/targeting_categories.html)
372
+ * [Migration](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/migration.html)
373
+
374
+ > Most 4.0 routes take a versioned media type and the service routes on it. With `application/json` they answer `404 Could not find resource`, which reads like a missing route but is only the wrong media type. This affects forecasts, budget recommendations, optimization rules, migrations, insights, negative brand recommendations and the collection creatives.
364
375
 
365
376
  ### [Modules Available Sponsored Display](https://python-amazon-ad-api.readthedocs.io/en/latest/sd.html)
366
377
 
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = python-amazon-ad-api
3
- version = 1.1.8
3
+ version = 1.1.9
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='1.1.8',
5
+ version='1.1.9',
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__ = "1.1.8"