python-amazon-ad-api 1.4.9__tar.gz → 1.5.1__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-1.4.9 → python_amazon_ad_api-1.5.1}/PKG-INFO +3 -1
  2. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/README.md +2 -0
  3. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/__init__.py +4 -0
  4. python_amazon_ad_api-1.5.1/ad_api/api/v1/labels.py +56 -0
  5. python_amazon_ad_api-1.5.1/ad_api/api/v1/reports.py +133 -0
  6. python_amazon_ad_api-1.5.1/ad_api/version.py +1 -0
  7. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/python_amazon_ad_api.egg-info/PKG-INFO +3 -1
  8. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/python_amazon_ad_api.egg-info/SOURCES.txt +2 -0
  9. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/setup.cfg +1 -1
  10. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/setup.py +1 -1
  11. python_amazon_ad_api-1.4.9/ad_api/version.py +0 -1
  12. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/LICENSE +0 -0
  13. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/__init__.py +0 -0
  14. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/__init__.py +0 -0
  15. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/account.py +0 -0
  16. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/account_budgets.py +0 -0
  17. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/advertising_test_account.py +0 -0
  18. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/attribution.py +0 -0
  19. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/audiences.py +0 -0
  20. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/billing.py +0 -0
  21. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/brand_metrics.py +0 -0
  22. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/creative_assets.py +0 -0
  23. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/eligibility.py +0 -0
  24. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/exports.py +0 -0
  25. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/history.py +0 -0
  26. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/insights.py +0 -0
  27. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/invoices.py +0 -0
  28. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/localization.py +0 -0
  29. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/manager_accounts.py +0 -0
  30. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/metadata.py +0 -0
  31. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/portfolios.py +0 -0
  32. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/portfolios_v3.py +0 -0
  33. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/profiles.py +0 -0
  34. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/recommendations.py +0 -0
  35. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/reports.py +0 -0
  36. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/__init__.py +0 -0
  37. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/ad_creatives_v4.py +0 -0
  38. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/ad_groups.py +0 -0
  39. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/ad_groups_v4.py +0 -0
  40. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/ads_v4.py +0 -0
  41. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/benchmarks.py +0 -0
  42. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/bid_recommendations.py +0 -0
  43. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/brands.py +0 -0
  44. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/budget_rules.py +0 -0
  45. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/campaigns.py +0 -0
  46. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/campaigns_v4.py +0 -0
  47. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/forecast.py +0 -0
  48. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/keywords.py +0 -0
  49. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/keywords_recommendations.py +0 -0
  50. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/landing_page_asins.py +0 -0
  51. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/media.py +0 -0
  52. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/migration.py +0 -0
  53. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/negative_keywords.py +0 -0
  54. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/negative_product_targeting.py +0 -0
  55. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/optimization_rules.py +0 -0
  56. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/product_targeting.py +0 -0
  57. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/recommendations.py +0 -0
  58. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/reports.py +0 -0
  59. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/stores.py +0 -0
  60. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/targeting_categories.py +0 -0
  61. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/targeting_recommendations.py +0 -0
  62. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sb/themes.py +0 -0
  63. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/__init__.py +0 -0
  64. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/ad_groups.py +0 -0
  65. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/bid_recommendations.py +0 -0
  66. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/brand_safety.py +0 -0
  67. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/budget_rules.py +0 -0
  68. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/campaigns.py +0 -0
  69. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
  70. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/creatives.py +0 -0
  71. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/forecast.py +0 -0
  72. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/negative_product_targeting.py +0 -0
  73. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/product_ads.py +0 -0
  74. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/product_targeting.py +0 -0
  75. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/recommendations.py +0 -0
  76. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/reports.py +0 -0
  77. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/snapshots.py +0 -0
  78. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sd/targeting_recommendations.py +0 -0
  79. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/__init__.py +0 -0
  80. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/ad_groups_v3.py +0 -0
  81. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
  82. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
  83. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/budget_recommendations.py +0 -0
  84. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/budget_rules.py +0 -0
  85. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
  86. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
  87. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
  88. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/campaign_negative_targets.py +0 -0
  89. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
  90. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/campaigns_v3.py +0 -0
  91. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/campaings_optimization.py +0 -0
  92. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/keywords_v3.py +0 -0
  93. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/negative_keywords_v3.py +0 -0
  94. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
  95. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/product_ads_v3.py +0 -0
  96. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/product_recommendations.py +0 -0
  97. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/product_targeting_v3.py +0 -0
  98. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
  99. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
  100. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/stores.py +0 -0
  101. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/stream.py +0 -0
  102. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/ad_associations.py +0 -0
  103. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/ad_extensions.py +0 -0
  104. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/ad_groups.py +0 -0
  105. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/ads.py +0 -0
  106. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/advertiser_accounts.py +0 -0
  107. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/brand_store_edition_publish_versions.py +0 -0
  108. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/brand_store_editions.py +0 -0
  109. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/brand_store_pages.py +0 -0
  110. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/brand_stores.py +0 -0
  111. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/campaigns.py +0 -0
  112. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/v1/targets.py +0 -0
  113. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/api/validation_configurations.py +0 -0
  114. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/auth/__init__.py +0 -0
  115. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/auth/access_token_client.py +0 -0
  116. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/auth/access_token_response.py +0 -0
  117. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/auth/credentials.py +0 -0
  118. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/auth/exceptions.py +0 -0
  119. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/__init__.py +0 -0
  120. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/api_response.py +0 -0
  121. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/base_client.py +0 -0
  122. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/client.py +0 -0
  123. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/config.py +0 -0
  124. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/credential_provider.py +0 -0
  125. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/exceptions.py +0 -0
  126. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/helpers.py +0 -0
  127. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/marketplaces.py +0 -0
  128. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/ad_api/base/utils.py +0 -0
  129. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/pyproject.toml +0 -0
  130. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
  131. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/python_amazon_ad_api.egg-info/requires.txt +0 -0
  132. {python_amazon_ad_api-1.4.9 → python_amazon_ad_api-1.5.1}/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.4.9
3
+ Version: 1.5.1
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
@@ -311,6 +311,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
311
311
  * [Brand Stores](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_stores.html#ad_api.api.v1.BrandStores.BrandStores.query_brand_stores)
312
312
  * [Brand Store Editions](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_editions.html#ad_api.api.v1.BrandStoreEditions.BrandStoreEditions.list_brand_store_editions)
313
313
  * [Brand Store Pages](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_pages.html#ad_api.api.v1.BrandStorePages.BrandStorePages.query_brand_store_pages)
314
+ * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/reports.html#ad_api.api.v1.Reports.Reports.create_report)
315
+ * [Labels](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/labels.html#ad_api.api.v1.Labels.Labels.query_labels)
314
316
 
315
317
 
316
318
  ### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
@@ -283,6 +283,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
283
283
  * [Brand Stores](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_stores.html#ad_api.api.v1.BrandStores.BrandStores.query_brand_stores)
284
284
  * [Brand Store Editions](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_editions.html#ad_api.api.v1.BrandStoreEditions.BrandStoreEditions.list_brand_store_editions)
285
285
  * [Brand Store Pages](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_pages.html#ad_api.api.v1.BrandStorePages.BrandStorePages.query_brand_store_pages)
286
+ * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/reports.html#ad_api.api.v1.Reports.Reports.create_report)
287
+ * [Labels](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/labels.html#ad_api.api.v1.Labels.Labels.query_labels)
286
288
 
287
289
 
288
290
  ### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
@@ -9,6 +9,8 @@ from .brand_store_edition_publish_versions import BrandStoreEditionPublishVersio
9
9
  from .brand_stores import BrandStores
10
10
  from .brand_store_editions import BrandStoreEditions
11
11
  from .brand_store_pages import BrandStorePages
12
+ from .reports import Reports
13
+ from .labels import Labels
12
14
 
13
15
  __all__ = [
14
16
  "Campaigns",
@@ -22,4 +24,6 @@ __all__ = [
22
24
  "BrandStores",
23
25
  "BrandStoreEditions",
24
26
  "BrandStorePages",
27
+ "Reports",
28
+ "Labels",
25
29
  ]
@@ -0,0 +1,56 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class Labels(Client):
5
+ r"""
6
+ Labels(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
7
+
8
+ Amazon Ads API v1 - unified Labels endpoints
9
+
10
+ Labels has a single route and it is read only: there is no create, update
11
+ or delete in the contract.
12
+
13
+ The required member is not the usual adProductFilter but
14
+ ``labelObjectTypeFilter``, and it takes exactly one value:
15
+
16
+ AD_GROUP, CAMPAIGN, DEAL, INVENTORY_GROUP
17
+
18
+ ``adProductFilter`` is optional here and also takes exactly one value.
19
+ """
20
+
21
+ @sp_endpoint('/adsApi/v1/query/labels', method='POST')
22
+ def query_labels(self, **kwargs) -> ApiResponse:
23
+ r"""
24
+ query_labels(body: dict) -> ApiResponse
25
+
26
+ Amazon Ads API v1 - Query Labels (operationId: QueryLabel)
27
+
28
+ Request Body [Required]
29
+ | **labelObjectTypeFilter** (dict) : [required] exactly one value
30
+ | **include** (list<LabelObjectType>) : Enum [ AD_GROUP, CAMPAIGN, DEAL, INVENTORY_GROUP ]
31
+ | **adProductFilter** (dict) : [optional] exactly one value
32
+ | **include** (list<AdProduct>) : Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
33
+ | **labelIdFilter** (dict) : [optional] 1..50 ids
34
+ | **include** (list<string>)
35
+ | **labelNameFilter** (dict) : [optional] 1..10 names
36
+ | **include** (list<string>)
37
+ | **maxResults** (int) : 1..1000, default 100
38
+ | **nextToken** (string) : token to navigate to the next page
39
+
40
+ Returns
41
+ | **labels** (list<Label>) : 0..1000
42
+ | **labelId** (string) : [required]
43
+ | **labelName** (string) : [required]
44
+ | **adProduct** (AdProduct)
45
+ | **nextToken** (string)
46
+
47
+ A body without labelObjectTypeFilter is a rejected request, not an
48
+ empty answer, so every call needs that member even when the other
49
+ filters are left out.
50
+
51
+ Requires one of these permissions:
52
+ campaign_edit, campaign_view
53
+ """
54
+ schema_version = 'application/json'
55
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
56
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
@@ -0,0 +1,133 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class Reports(Client):
5
+ r"""
6
+ Reports(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
7
+
8
+ Amazon Ads API v1 - unified Reports endpoints
9
+
10
+ Reports in v1 are asynchronous and take three routes, not the four of the
11
+ entity families:
12
+
13
+ POST /adsApi/v1/create/reports queue a report
14
+ POST /adsApi/v1/retrieve/reports read its state
15
+ POST /adsApi/v1/delete/reports drop it
16
+
17
+ There is no GET by id: the state is read by posting the id back to
18
+ retrieve, and the pair of routes is what carries the status through
19
+ PENDING, PROCESSING, COMPLETED and FAILED.
20
+
21
+ This generation is shaped differently from the v3 reporting route the
22
+ package already ships as ad_api.api.Reports:
23
+
24
+ v1 uses fields, v3 uses columns
25
+ v1 has no reportTypeId, adProduct, groupBy or timeUnit at all
26
+ v1 filters are a predicate tree, v3 filters are a flat list
27
+ v1 answers a list of report parts, v3 answers one url
28
+
29
+ v1 reports are addressed by advertiser account, and the account travels in
30
+ the body rather than only in the headers.
31
+
32
+ The field catalogue is not part of the contract: query.fields accepts any
33
+ string up to 1000 entries and the service decides which ones exist for each
34
+ product, so a wrong name is answered with a 400 naming the accepted values
35
+ rather than with a local rejection.
36
+ """
37
+
38
+ @sp_endpoint('/adsApi/v1/create/reports', method='POST')
39
+ def create_report(self, **kwargs) -> ApiResponse:
40
+ r"""
41
+ create_report(body: dict) -> ApiResponse
42
+
43
+ Amazon Ads API v1 - Create a report (operationId: AdsApiv1CreateReport)
44
+
45
+ Request Body [Required]
46
+ | **accessRequestedAccounts** (list<ReportCreateAccessRequestedAccountItem>) : [required] 1..2000
47
+ | oneOf **advertiserAccountId** (string) : the advertiser account the report is for
48
+ | oneOf **managerAccountId** (string) : the manager account the report is for
49
+ | **reports** (list<ReportCreate>) : [required] exactly 1
50
+ | **format** (ReportFormat) : [required] Enum [ CSV, GZIP_JSON, PARTITIONED_CSV, PARTITIONED_GZIP_JSON ]
51
+ | **periods** (list<CreateReportPeriod>) : [required] exactly 1
52
+ | **datePeriod** (CreateDatePeriod) : [required]
53
+ | **startDate** (date) : [required]
54
+ | **endDate** (date) : [required]
55
+ | **query** (CreateReportingQuery) : [required]
56
+ | **fields** (list<string>) : [required] 1..1000
57
+ | **filter** (CreateFilter) : [optional]
58
+ | **on** (CreateComparisonPredicate)
59
+ | **field** (string) : [required] pattern ^[a-zA-Z0-9]+\.[a-zA-Z0-9]+$
60
+ | **comparisonOperator** (ComparisonOperator) : [required] Enum [ EQUALS, IN ]
61
+ | **values** (list<string>) : [required] 1..2000
62
+ | **not** (boolean) : [required]
63
+ | **and** (CreateCompositePredicate)
64
+ | **filters** (list<CreateFilter>) : [required] 1..10
65
+ | **currencyOfView** (CurrencyCode) : [optional]
66
+ | **managerAccountDspGrouping** (ManagerAccountDspGrouping) : [optional]
67
+
68
+ Answer
69
+ 207 MultiStatus with success[] carrying the created report ids and
70
+ error[] carrying the index and reason of the ones refused.
71
+
72
+ Requires one of these permissions:
73
+ ManagerAccount_Dev, advertiser_campaign_edit, nemo_report_view,
74
+ MasterAccount_Viewer, MA_ReadOnly, advertiser_campaign_view,
75
+ reports_edit, MasterAccount_Manager, nemo_report_edit,
76
+ view_performance_dashboard
77
+ """
78
+ schema_version = 'application/json'
79
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
80
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
81
+
82
+ @sp_endpoint('/adsApi/v1/retrieve/reports', method='POST')
83
+ def retrieve_report(self, **kwargs) -> ApiResponse:
84
+ r"""
85
+ retrieve_report(body: dict) -> ApiResponse
86
+
87
+ Amazon Ads API v1 - Retrieve a report by id (operationId: AdsApiv1RetrieveReport)
88
+
89
+ Request Body [Required]
90
+ | **reportIds** (list<string>) : [required] exactly 1
91
+
92
+ Answer
93
+ The report object, with the members that matter here:
94
+
95
+ | **reportId** (string)
96
+ | **status** (ReportStatus) : Enum [ COMPLETED, FAILED, PENDING, PROCESSING ]
97
+ | **format** (ReportFormat)
98
+ | **periods** (list<ReportPeriod>)
99
+ | **query** (ReportingQuery) : the fields and filter the report was built from
100
+ | **creationDateTime**, **lastUpdatedDateTime**, **completedDateTime** (date-time)
101
+ | **failureCode** (string), **failureReason** (string) : set when status is FAILED
102
+ | **warnings** (list<ReportWarning>) : non-fatal notes about the generated report
103
+ | **completedReportParts** (list<ReportPart>) : 0..100
104
+ | **url** (string) : signed download url for this part
105
+ | **urlExpirationDateTime** (date-time)
106
+ | **sizeInBytes** (int64) : up to 100GB for a single part
107
+
108
+ A report split in parts answers more than one entry, so a caller that
109
+ only reads the first url loses data.
110
+
111
+ Requires one of these permissions:
112
+ none declared
113
+ """
114
+ schema_version = 'application/json'
115
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
116
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
117
+
118
+ @sp_endpoint('/adsApi/v1/delete/reports', method='POST')
119
+ def delete_report(self, **kwargs) -> ApiResponse:
120
+ r"""
121
+ delete_report(body: dict) -> ApiResponse
122
+
123
+ Amazon Ads API v1 - Delete a report by id (operationId: AdsApiv1DeleteReport)
124
+
125
+ Request Body [Required]
126
+ | **reportIds** (list<string>) : [required] exactly 1
127
+
128
+ Requires one of these permissions:
129
+ none declared
130
+ """
131
+ schema_version = 'application/json'
132
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
133
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
@@ -0,0 +1 @@
1
+ __version__ = "1.5.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.4.9
3
+ Version: 1.5.1
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
@@ -311,6 +311,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
311
311
  * [Brand Stores](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_stores.html#ad_api.api.v1.BrandStores.BrandStores.query_brand_stores)
312
312
  * [Brand Store Editions](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_editions.html#ad_api.api.v1.BrandStoreEditions.BrandStoreEditions.list_brand_store_editions)
313
313
  * [Brand Store Pages](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_pages.html#ad_api.api.v1.BrandStorePages.BrandStorePages.query_brand_store_pages)
314
+ * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/reports.html#ad_api.api.v1.Reports.Reports.create_report)
315
+ * [Labels](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/labels.html#ad_api.api.v1.Labels.Labels.query_labels)
314
316
 
315
317
 
316
318
  ### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
@@ -105,6 +105,8 @@ ad_api/api/v1/brand_store_editions.py
105
105
  ad_api/api/v1/brand_store_pages.py
106
106
  ad_api/api/v1/brand_stores.py
107
107
  ad_api/api/v1/campaigns.py
108
+ ad_api/api/v1/labels.py
109
+ ad_api/api/v1/reports.py
108
110
  ad_api/api/v1/targets.py
109
111
  ad_api/auth/__init__.py
110
112
  ad_api/auth/access_token_client.py
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = python-amazon-ad-api
3
- version = 1.4.9
3
+ version = 1.5.1
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.4.9',
5
+ version='1.5.1',
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.4.9"