python-amazon-ad-api 1.0.3__tar.gz → 1.0.5__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 (137) hide show
  1. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/PKG-INFO +3 -12
  2. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/README.md +2 -11
  3. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/__init__.py +5 -29
  4. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/ad_groups_v3.py +4 -0
  5. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/campaigns_v3.py +3 -0
  6. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/product_ads_v3.py +4 -0
  7. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/product_targeting_v3.py +4 -0
  8. python_amazon_ad_api-1.0.5/ad_api/version.py +1 -0
  9. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/python_amazon_ad_api.egg-info/PKG-INFO +3 -12
  10. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/python_amazon_ad_api.egg-info/SOURCES.txt +0 -17
  11. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/setup.cfg +1 -1
  12. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/setup.py +1 -2
  13. python_amazon_ad_api-1.0.3/ad_api/api/dsp/__init__.py +0 -11
  14. python_amazon_ad_api-1.0.3/ad_api/api/dsp/access_token_client.py +0 -6
  15. python_amazon_ad_api-1.0.3/ad_api/api/dsp/client.py +0 -13
  16. python_amazon_ad_api-1.0.3/ad_api/api/dsp/credential_provider.py +0 -15
  17. python_amazon_ad_api-1.0.3/ad_api/api/dsp/reports.py +0 -71
  18. python_amazon_ad_api-1.0.3/ad_api/api/sp/ad_groups.py +0 -158
  19. python_amazon_ad_api-1.0.3/ad_api/api/sp/bid_recommendations.py +0 -81
  20. python_amazon_ad_api-1.0.3/ad_api/api/sp/campaign_negative_keywords.py +0 -155
  21. python_amazon_ad_api-1.0.3/ad_api/api/sp/campaigns.py +0 -398
  22. python_amazon_ad_api-1.0.3/ad_api/api/sp/keywords.py +0 -172
  23. python_amazon_ad_api-1.0.3/ad_api/api/sp/negative_keywords.py +0 -164
  24. python_amazon_ad_api-1.0.3/ad_api/api/sp/negative_product_targeting.py +0 -163
  25. python_amazon_ad_api-1.0.3/ad_api/api/sp/product_ads.py +0 -154
  26. python_amazon_ad_api-1.0.3/ad_api/api/sp/product_targeting.py +0 -323
  27. python_amazon_ad_api-1.0.3/ad_api/api/sp/reports.py +0 -65
  28. python_amazon_ad_api-1.0.3/ad_api/api/sp/snapshots.py +0 -54
  29. python_amazon_ad_api-1.0.3/ad_api/api/sp/suggested_keywords.py +0 -86
  30. python_amazon_ad_api-1.0.3/ad_api/version.py +0 -1
  31. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/LICENSE +0 -0
  32. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/__init__.py +0 -0
  33. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/__init__.py +0 -0
  34. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/account.py +0 -0
  35. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/advertising_test_account.py +0 -0
  36. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/attribution.py +0 -0
  37. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/audiences.py +0 -0
  38. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/billing.py +0 -0
  39. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/brand_metrics.py +0 -0
  40. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/creative_assets.py +0 -0
  41. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/eligibility.py +0 -0
  42. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/exports.py +0 -0
  43. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/history.py +0 -0
  44. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/insights.py +0 -0
  45. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/invoices.py +0 -0
  46. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/localization.py +0 -0
  47. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/manager_accounts.py +0 -0
  48. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/metadata.py +0 -0
  49. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/portfolios.py +0 -0
  50. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/portfolios_v3.py +0 -0
  51. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/profiles.py +0 -0
  52. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/recommendations.py +0 -0
  53. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/reports.py +0 -0
  54. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/__init__.py +0 -0
  55. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/ad_creatives_v4.py +0 -0
  56. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/ad_groups.py +0 -0
  57. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/ad_groups_v4.py +0 -0
  58. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/ads_v4.py +0 -0
  59. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/benchmarks.py +0 -0
  60. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/bid_recommendations.py +0 -0
  61. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/brands.py +0 -0
  62. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/campaigns.py +0 -0
  63. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/campaigns_v4.py +0 -0
  64. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/forecast.py +0 -0
  65. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/keywords.py +0 -0
  66. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/keywords_recommendations.py +0 -0
  67. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/landing_page_asins.py +0 -0
  68. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/media.py +0 -0
  69. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/moderation.py +0 -0
  70. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/negative_keywords.py +0 -0
  71. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/negative_product_targeting.py +0 -0
  72. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/product_targeting.py +0 -0
  73. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/recommendations.py +0 -0
  74. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/reports.py +0 -0
  75. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/snapshots.py +0 -0
  76. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/stores.py +0 -0
  77. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/targeting_recommendations.py +0 -0
  78. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sb/themes.py +0 -0
  79. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/__init__.py +0 -0
  80. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/ad_groups.py +0 -0
  81. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/bid_recommendations.py +0 -0
  82. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/brand_safety.py +0 -0
  83. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/budget_rules.py +0 -0
  84. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/campaigns.py +0 -0
  85. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
  86. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/creatives.py +0 -0
  87. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/forecast.py +0 -0
  88. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/negative_product_targeting.py +0 -0
  89. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/product_ads.py +0 -0
  90. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/product_targeting.py +0 -0
  91. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/recommendations.py +0 -0
  92. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/reports.py +0 -0
  93. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/snapshots.py +0 -0
  94. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sd/targeting_recommendations.py +0 -0
  95. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
  96. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
  97. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/budget_recommendations.py +0 -0
  98. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/budget_rules.py +0 -0
  99. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
  100. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
  101. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
  102. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/campaign_negative_targets.py +0 -0
  103. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
  104. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/campaings_optimization.py +0 -0
  105. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/keywords_v3.py +0 -0
  106. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/negative_keywords_v3.py +0 -0
  107. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
  108. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/product_recommendations.py +0 -0
  109. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
  110. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
  111. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/stores.py +0 -0
  112. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/stream.py +0 -0
  113. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/v1/__init__.py +0 -0
  114. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/v1/ad_groups.py +0 -0
  115. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/v1/ads.py +0 -0
  116. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/v1/campaigns.py +0 -0
  117. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/v1/targets.py +0 -0
  118. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/api/validation_configurations.py +0 -0
  119. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/auth/__init__.py +0 -0
  120. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/auth/access_token_client.py +0 -0
  121. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/auth/access_token_response.py +0 -0
  122. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/auth/credentials.py +0 -0
  123. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/auth/exceptions.py +0 -0
  124. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/__init__.py +0 -0
  125. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/api_response.py +0 -0
  126. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/base_client.py +0 -0
  127. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/client.py +0 -0
  128. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/config.py +0 -0
  129. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/credential_provider.py +0 -0
  130. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/exceptions.py +0 -0
  131. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/helpers.py +0 -0
  132. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/marketplaces.py +0 -0
  133. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/ad_api/base/utils.py +0 -0
  134. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/pyproject.toml +0 -0
  135. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
  136. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/python_amazon_ad_api.egg-info/requires.txt +0 -0
  137. {python_amazon_ad_api-1.0.3 → python_amazon_ad_api-1.0.5}/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.0.3
3
+ Version: 1.0.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
@@ -306,12 +306,7 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
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
308
  * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ads.html#ad_api.api.v1.Ads.Ads.query_ads)
309
-
310
-
311
- ### [Modules Available Sponsored Products 2.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v2.html)
312
-
313
- Warning: [PLANNED DEPRECATION 6/30/2023]
314
- There is a new version 3 of Sponsored Product API, please check the [migration guide](https://advertising.amazon.com/API/docs/en-us/sponsored-products/v3-migration-guide).
309
+ * [Targets](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/targets.html#ad_api.api.v1.Targets.Targets.query_targets)
315
310
 
316
311
 
317
312
  ### [Modules Available Sponsored Products 3.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v3.html)
@@ -323,7 +318,7 @@ Warning: `list_campaigns` is deprecated. Use the v1 `query_campaigns` method ins
323
318
  * [Keyword Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/ranked_keywords_recommendations.html)
324
319
  * [Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/keywords_v3.html)
325
320
  * [Negative Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/negative_keywords_v3.html)
326
- * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_targeting.html)
321
+ * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_targeting_v3.html)
327
322
  * [Campaign Optimization](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/campaign_optimization_rules.html)
328
323
  * [Budget Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/budget_rules.html)
329
324
  * [Product Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_ads_v3.html)
@@ -382,10 +377,6 @@ Warning: `list_campaigns` is deprecated. Use the v1 `query_campaigns` method ins
382
377
  * [Forecasts](https://python-amazon-ad-api.readthedocs.io/en/latest/sd/forecast.html)
383
378
  * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sd/recommendations.html)
384
379
 
385
- ### [Modules Available DSP](https://python-amazon-ad-api.readthedocs.io/en/latest/dsp.html)
386
-
387
- * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/dsp/reports.html)
388
-
389
380
  ### Amazon Ads API v1 - basic example
390
381
 
391
382
  ```python
@@ -278,12 +278,7 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
278
278
  * [Campaigns](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/campaigns.html#ad_api.api.v1.Campaigns.Campaigns.query_campaigns)
279
279
  * [Ad Groups](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ad_groups.html#ad_api.api.v1.AdGroups.AdGroups.query_ad_groups)
280
280
  * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ads.html#ad_api.api.v1.Ads.Ads.query_ads)
281
-
282
-
283
- ### [Modules Available Sponsored Products 2.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v2.html)
284
-
285
- Warning: [PLANNED DEPRECATION 6/30/2023]
286
- There is a new version 3 of Sponsored Product API, please check the [migration guide](https://advertising.amazon.com/API/docs/en-us/sponsored-products/v3-migration-guide).
281
+ * [Targets](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/targets.html#ad_api.api.v1.Targets.Targets.query_targets)
287
282
 
288
283
 
289
284
  ### [Modules Available Sponsored Products 3.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v3.html)
@@ -295,7 +290,7 @@ Warning: `list_campaigns` is deprecated. Use the v1 `query_campaigns` method ins
295
290
  * [Keyword Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/ranked_keywords_recommendations.html)
296
291
  * [Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/keywords_v3.html)
297
292
  * [Negative Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/negative_keywords_v3.html)
298
- * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_targeting.html)
293
+ * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_targeting_v3.html)
299
294
  * [Campaign Optimization](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/campaign_optimization_rules.html)
300
295
  * [Budget Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/budget_rules.html)
301
296
  * [Product Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_ads_v3.html)
@@ -354,10 +349,6 @@ Warning: `list_campaigns` is deprecated. Use the v1 `query_campaigns` method ins
354
349
  * [Forecasts](https://python-amazon-ad-api.readthedocs.io/en/latest/sd/forecast.html)
355
350
  * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sd/recommendations.html)
356
351
 
357
- ### [Modules Available DSP](https://python-amazon-ad-api.readthedocs.io/en/latest/dsp.html)
358
-
359
- * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/dsp/reports.html)
360
-
361
352
  ### Amazon Ads API v1 - basic example
362
353
 
363
354
  ```python
@@ -1,25 +1,13 @@
1
- from .campaigns import Campaigns
2
1
  from .campaigns_v3 import CampaignsV3
3
- from .ad_groups import AdGroups
4
2
  from .ad_groups_v3 import AdGroupsV3
5
3
  from .keywords_v3 import KeywordsV3
6
4
  from .negative_keywords_v3 import NegativeKeywordsV3
7
5
  from .negative_product_targeting_v3 import NegativeTargetsV3
8
- from .product_ads import ProductAds
9
6
  from .product_ads_v3 import ProductAdsV3
10
- from .bid_recommendations import BidRecommendations
11
7
  from .bid_recommendations_v3 import BidRecommendationsV3
12
- from .keywords import Keywords
13
- from .negative_keywords import NegativeKeywords
14
- from .campaign_negative_keywords import CampaignNegativeKeywords
15
8
  from .campaign_negative_keywords_v3 import CampaignNegativeKeywordsV3
16
- from .campaign_negative_targets import CampaignNegativeTargets
17
9
  from .product_targeting_v3 import TargetsV3
18
- from .suggested_keywords import SuggestedKeywords
19
- from .product_targeting import Targets
20
- from .negative_product_targeting import NegativeTargets
21
- from .reports import Reports
22
- from .snapshots import Snapshots
10
+ from .campaign_negative_targets import CampaignNegativeTargets
23
11
  from .budget_rules import BudgetRules
24
12
  from .budget_initial_recommendation import InitialBudgetRecommendation
25
13
  from .campaings_optimization import CampaignOptimization
@@ -32,27 +20,16 @@ from .campaigns_budget_usage import CampaignsBudgetUsage
32
20
  from .schedule_based_bid_optimization import ScheduleBasedBidOptimizationRules
33
21
 
34
22
  __all__ = [
35
- "Campaigns",
36
23
  "CampaignsV3",
37
- "AdGroups",
38
24
  "AdGroupsV3",
39
- "ProductAds",
40
- "ProductAdsV3",
41
- "BidRecommendations",
42
- "Keywords",
43
25
  "KeywordsV3",
44
- "NegativeKeywords",
45
26
  "NegativeKeywordsV3",
46
- "CampaignNegativeKeywords",
27
+ "NegativeTargetsV3",
28
+ "ProductAdsV3",
29
+ "BidRecommendationsV3",
47
30
  "CampaignNegativeKeywordsV3",
48
- "CampaignNegativeTargets",
49
- "SuggestedKeywords",
50
- "Targets",
51
31
  "TargetsV3",
52
- "NegativeTargets",
53
- "NegativeTargetsV3",
54
- "Reports",
55
- "Snapshots",
32
+ "CampaignNegativeTargets",
56
33
  "BudgetRules",
57
34
  "InitialBudgetRecommendation",
58
35
  "CampaignOptimization",
@@ -63,5 +40,4 @@ __all__ = [
63
40
  "ProductRecommendations",
64
41
  "CampaignsBudgetUsage",
65
42
  "ScheduleBasedBidOptimizationRules",
66
- "BidRecommendationsV3",
67
43
  ]
@@ -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.
@@ -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
@@ -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
@@ -0,0 +1 @@
1
+ __version__ = "1.0.5"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.0.3
3
+ Version: 1.0.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
@@ -306,12 +306,7 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
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
308
  * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ads.html#ad_api.api.v1.Ads.Ads.query_ads)
309
-
310
-
311
- ### [Modules Available Sponsored Products 2.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v2.html)
312
-
313
- Warning: [PLANNED DEPRECATION 6/30/2023]
314
- There is a new version 3 of Sponsored Product API, please check the [migration guide](https://advertising.amazon.com/API/docs/en-us/sponsored-products/v3-migration-guide).
309
+ * [Targets](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/targets.html#ad_api.api.v1.Targets.Targets.query_targets)
315
310
 
316
311
 
317
312
  ### [Modules Available Sponsored Products 3.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v3.html)
@@ -323,7 +318,7 @@ Warning: `list_campaigns` is deprecated. Use the v1 `query_campaigns` method ins
323
318
  * [Keyword Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/ranked_keywords_recommendations.html)
324
319
  * [Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/keywords_v3.html)
325
320
  * [Negative Keywords](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/negative_keywords_v3.html)
326
- * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_targeting.html)
321
+ * [Product Targeting](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_targeting_v3.html)
327
322
  * [Campaign Optimization](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/campaign_optimization_rules.html)
328
323
  * [Budget Rules](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/budget_rules.html)
329
324
  * [Product Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/sp/product_ads_v3.html)
@@ -382,10 +377,6 @@ Warning: `list_campaigns` is deprecated. Use the v1 `query_campaigns` method ins
382
377
  * [Forecasts](https://python-amazon-ad-api.readthedocs.io/en/latest/sd/forecast.html)
383
378
  * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/sd/recommendations.html)
384
379
 
385
- ### [Modules Available DSP](https://python-amazon-ad-api.readthedocs.io/en/latest/dsp.html)
386
-
387
- * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/dsp/reports.html)
388
-
389
380
  ### Amazon Ads API v1 - basic example
390
381
 
391
382
  ```python
@@ -29,11 +29,6 @@ ad_api/api/reports.py
29
29
  ad_api/api/stores.py
30
30
  ad_api/api/stream.py
31
31
  ad_api/api/validation_configurations.py
32
- ad_api/api/dsp/__init__.py
33
- ad_api/api/dsp/access_token_client.py
34
- ad_api/api/dsp/client.py
35
- ad_api/api/dsp/credential_provider.py
36
- ad_api/api/dsp/reports.py
37
32
  ad_api/api/sb/__init__.py
38
33
  ad_api/api/sb/ad_creatives_v4.py
39
34
  ad_api/api/sb/ad_groups.py
@@ -76,38 +71,26 @@ ad_api/api/sd/reports.py
76
71
  ad_api/api/sd/snapshots.py
77
72
  ad_api/api/sd/targeting_recommendations.py
78
73
  ad_api/api/sp/__init__.py
79
- ad_api/api/sp/ad_groups.py
80
74
  ad_api/api/sp/ad_groups_v3.py
81
- ad_api/api/sp/bid_recommendations.py
82
75
  ad_api/api/sp/bid_recommendations_v3.py
83
76
  ad_api/api/sp/budget_initial_recommendation.py
84
77
  ad_api/api/sp/budget_recommendations.py
85
78
  ad_api/api/sp/budget_rules.py
86
79
  ad_api/api/sp/budget_rules_recommendations.py
87
80
  ad_api/api/sp/campaign_consolidated_recommendations.py
88
- ad_api/api/sp/campaign_negative_keywords.py
89
81
  ad_api/api/sp/campaign_negative_keywords_v3.py
90
82
  ad_api/api/sp/campaign_negative_targets.py
91
- ad_api/api/sp/campaigns.py
92
83
  ad_api/api/sp/campaigns_budget_usage.py
93
84
  ad_api/api/sp/campaigns_v3.py
94
85
  ad_api/api/sp/campaings_optimization.py
95
- ad_api/api/sp/keywords.py
96
86
  ad_api/api/sp/keywords_v3.py
97
- ad_api/api/sp/negative_keywords.py
98
87
  ad_api/api/sp/negative_keywords_v3.py
99
- ad_api/api/sp/negative_product_targeting.py
100
88
  ad_api/api/sp/negative_product_targeting_v3.py
101
- ad_api/api/sp/product_ads.py
102
89
  ad_api/api/sp/product_ads_v3.py
103
90
  ad_api/api/sp/product_recommendations.py
104
- ad_api/api/sp/product_targeting.py
105
91
  ad_api/api/sp/product_targeting_v3.py
106
92
  ad_api/api/sp/ranked_keywords_recommendations.py
107
- ad_api/api/sp/reports.py
108
93
  ad_api/api/sp/schedule_based_bid_optimization.py
109
- ad_api/api/sp/snapshots.py
110
- ad_api/api/sp/suggested_keywords.py
111
94
  ad_api/api/v1/__init__.py
112
95
  ad_api/api/v1/ad_groups.py
113
96
  ad_api/api/v1/ads.py
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = python-amazon-ad-api
3
- version = 1.0.3
3
+ version = 1.0.5
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.0.3',
5
+ version='1.0.5',
6
6
  install_requires=[
7
7
  "requests>=2.27.1,<2.35.0",
8
8
  "six>=1.16,<1.18",
@@ -19,7 +19,6 @@ setup(
19
19
  'ad_api.api.sp',
20
20
  'ad_api.api.sb',
21
21
  'ad_api.api.sd',
22
- 'ad_api.api.dsp',
23
22
  'ad_api.api.v1',
24
23
  ],
25
24
  url='https://github.com/denisneuf/python-amazon-ad-api',
@@ -1,11 +0,0 @@
1
- from .reports import Reports
2
- from .client import DspClient
3
- from .access_token_client import DspAccessTokenClient
4
- from .credential_provider import DspCredentialProvider
5
-
6
- __all__ = [
7
- "Reports",
8
- "DspClient",
9
- "DspAccessTokenClient",
10
- "DspCredentialProvider",
11
- ]
@@ -1,6 +0,0 @@
1
- from ad_api.api.dsp.credential_provider import DspCredentialProvider
2
- from ad_api.auth.access_token_client import AccessTokenClient
3
-
4
-
5
- class DspAccessTokenClient(AccessTokenClient):
6
- credential_provider_class = DspCredentialProvider
@@ -1,13 +0,0 @@
1
- from typing import Dict
2
- from ad_api.base import Client
3
-
4
-
5
- class DspClient(Client):
6
- @property
7
- def headers(self) -> Dict[str, str]:
8
- return {
9
- 'User-Agent': self.user_agent,
10
- 'Amazon-Advertising-API-ClientId': self.credentials['client_id'],
11
- 'Authorization': f'Bearer {self.auth.access_token}',
12
- 'Content-Type': 'application/json',
13
- }
@@ -1,15 +0,0 @@
1
- from ad_api.base.config import BaseConfig
2
- from ad_api.base.credential_provider import CredentialProvider
3
-
4
-
5
- class DspCredentialProvider(CredentialProvider):
6
- config_class = BaseConfig
7
-
8
- def from_env(self):
9
- account_data = dict(
10
- refresh_token=self._get_env('AD_API_REFRESH_TOKEN'),
11
- client_id=self._get_env('AD_API_CLIENT_ID'),
12
- client_secret=self._get_env('AD_API_CLIENT_SECRET'),
13
- )
14
- self.credentials = self.config_class(**account_data)
15
- return len(self.credentials.check_config()) == 0
@@ -1,71 +0,0 @@
1
- from ad_api.api.dsp.client import DspClient as Client
2
- from ad_api.base import sp_endpoint, fill_query_params, ApiResponse, Utils
3
-
4
-
5
- class Reports(Client):
6
- """Amazon DSP Reports
7
-
8
- Documentation: https://advertising.amazon.com/API/docs/en-us/dsp-reports-beta-3p/#/Reports
9
-
10
- Amazon DSP is a demand-side platform (DSP) that enables advertisers to programmatically buy display, video, and audio ads both on and off Amazon. Using Amazon's DSP, you can reach audiences across the web on both Amazon sites and apps as well as through our publishing partners and third-party exchanges. Amazon DSP is available to both advertisers who sell products on Amazon and those who do not.
11
- """
12
-
13
- @sp_endpoint('/accounts/{}/dsp/reports', method='POST')
14
- def post_report(self, dspAccountId, accept='application/vnd.dspcreatereports.v3+json', **kwargs) -> ApiResponse:
15
- r"""
16
- Request reports with performance metrics for DSP campaigns.
17
-
18
- Request creation of a report that includes metrics about your Amazon DSP campaigns. Specify the type of report and the metrics you'd like to include. Note that the value specified for the dimensions field affects the metrics included in the report. See the dimensions field description for more information.
19
-
20
- Keyword Args
21
- | path **dspAccountId** (string): Account Identifier you use to access the DSP. This is your DSP Entity ID if you have access to all DSP advertisers within that entity, or your DSP Advertiser ID if you only have access to a specific advertiser ID. [required]
22
-
23
- Request body
24
- | **advertiserIds** (list > string): [optional] List of advertisers specified by identifier to include in the report. This should not be present if accountId is advertiser.
25
- | **endDate** (string): [required] Date in yyyy-MM-dd format. The report contains only metrics generated on the specified date range between startDate and endDate. The maximum date range between startDate and endDate is 31 days. The endDate can be up to 90 days older from today.
26
- | **format** (string): [optional] Enum: The report file format. [JSON]
27
- | **orderIds** (list > string): [optional] List of orders specified by identifier to include in the report.
28
- | **metrics** (list > string): [optional] Specify a list of metrics field names to include in the report. For example: ["impressions", "clickThroughs", "CTR", "eCPC", "totalCost", "eCPM"]. If no metric field names are specified, only the default fields and selected DIMENSION fields are included by default. Specifying default fields returns an error.
29
- | **type** (string): [optional] Enum: The report type. [CAMPAIGN]
30
- | **startDate** (string): [required] Date in yyyy-MM-dd format. The report contains only metrics generated on the specified date range between startDate and endDate. The maximum date range between startDate and endDate is 31 days. The startDate can be up to 90 days older from today.
31
- | **dimensions** (list > string): [optional] List of dimensions to include in the report. Specify one or many comma-delimited strings of dimensions. For example: ["ORDER", "LINE_ITEM", "CREATIVE"]. Adding a dimension in this array determines the aggregation level of the report data and also adds the fields for that dimension in the report. If the list is null or empty, the aggregation of the report data is at ORDER level. The allowed values can be used together in this array as an allowed value in which case the report aggregation will be at the lowest aggregation level and the report will contain the fields for all the dimensions included in the report.
32
- | **timeUnit** (string): [optional] Enum: Adding timeUnit determines the aggregation level (SUMMARY or DAILY) of the report data. If the timeUnit is null or empty, the aggregation of the report data is at the SUMMARY level and aggregated at the time period specified. DAILY timeUnit is not supported for AUDIENCE report type. The report will contain the fields based on timeUnit. [SUMMARY]
33
-
34
- Returns:
35
- ApiResponse
36
- """
37
- path = fill_query_params(kwargs.pop('path'), dspAccountId)
38
- return self._request(path, data=Utils.convert_body(kwargs.pop('body'), False), headers={'Accept': accept}, params=kwargs)
39
-
40
- @sp_endpoint('/accounts/{}/dsp/reports/{}', method='GET')
41
- def get_report(self, dspAccountId, reportId, accept='application/vnd.dspgetreports.v3+json', **kwargs) -> ApiResponse:
42
- r"""
43
- Gets a previously requested report specified by identifier.
44
-
45
- Keyword Args
46
- | path **dspAccountId** (string): Account Identifier for DSP. Please input DSP entity ID if you want to retrieve reports for a group of advertisers, or input DSP advertiser ID if you want to retrieve reports for a single advertiser. [required]
47
- | path **reportId** (string): The identifier of the requested report. [required]
48
-
49
- Returns:
50
- ApiResponse
51
- """
52
- path = fill_query_params(kwargs.pop('path'), dspAccountId, reportId)
53
- return self._request(path, headers={'Accept': accept}, params=kwargs)
54
-
55
- def download_report(self, **kwargs) -> ApiResponse:
56
- r"""
57
- Downloads the report previously get report specified by location (this is not part of the official Amazon Advertising API, is a helper method to download the report). Take in mind that a direct download of location returned in get_report will return 401 - Unauthorized.
58
-
59
- kwarg parameter **file** if not provided will take the default amazon name from path download (add a path with slash / if you want a specific folder, do not add extension as the return will provide the right extension based on format choosed if needed)
60
-
61
- kwarg parameter **format** if not provided a format will return a url to download the report (this url has a expiration time)
62
-
63
- Keyword Args
64
- | **url** (string): The location obatined from get_report [required]
65
- | **file** (string): The path to save the file if mode is download json, zip or gzip. [optional]
66
- | **format** (string): The mode to download the report: data (list), raw, url, json, zip, gzip. Default (url) [optional]
67
-
68
- Returns:
69
- ApiResponse
70
- """
71
- return self._download(self, params=kwargs, headers={'User-Agent': self.user_agent})