python-amazon-ad-api 1.5.2__tar.gz → 1.5.4__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 (135) hide show
  1. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/PKG-INFO +3 -1
  2. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/README.md +2 -0
  3. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/__init__.py +4 -0
  4. python_amazon_ad_api-1.5.4/ad_api/api/v1/recommendations.py +87 -0
  5. python_amazon_ad_api-1.5.4/ad_api/api/v1/selling_accounts.py +47 -0
  6. python_amazon_ad_api-1.5.4/ad_api/version.py +1 -0
  7. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/python_amazon_ad_api.egg-info/PKG-INFO +3 -1
  8. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/python_amazon_ad_api.egg-info/SOURCES.txt +2 -0
  9. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/setup.cfg +1 -1
  10. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/setup.py +1 -1
  11. python_amazon_ad_api-1.5.2/ad_api/version.py +0 -1
  12. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/LICENSE +0 -0
  13. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/__init__.py +0 -0
  14. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/__init__.py +0 -0
  15. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/account.py +0 -0
  16. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/account_budgets.py +0 -0
  17. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/advertising_test_account.py +0 -0
  18. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/attribution.py +0 -0
  19. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/audiences.py +0 -0
  20. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/billing.py +0 -0
  21. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/brand_metrics.py +0 -0
  22. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/creative_assets.py +0 -0
  23. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/eligibility.py +0 -0
  24. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/exports.py +0 -0
  25. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/history.py +0 -0
  26. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/insights.py +0 -0
  27. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/invoices.py +0 -0
  28. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/localization.py +0 -0
  29. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/manager_accounts.py +0 -0
  30. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/metadata.py +0 -0
  31. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/portfolios.py +0 -0
  32. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/portfolios_v3.py +0 -0
  33. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/profiles.py +0 -0
  34. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/recommendations.py +0 -0
  35. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/reports.py +0 -0
  36. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/__init__.py +0 -0
  37. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/ad_creatives_v4.py +0 -0
  38. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/ad_groups.py +0 -0
  39. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/ad_groups_v4.py +0 -0
  40. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/ads_v4.py +0 -0
  41. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/benchmarks.py +0 -0
  42. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/bid_recommendations.py +0 -0
  43. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/brands.py +0 -0
  44. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/budget_rules.py +0 -0
  45. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/campaigns.py +0 -0
  46. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/campaigns_v4.py +0 -0
  47. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/forecast.py +0 -0
  48. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/keywords.py +0 -0
  49. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/keywords_recommendations.py +0 -0
  50. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/landing_page_asins.py +0 -0
  51. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/media.py +0 -0
  52. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/migration.py +0 -0
  53. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/negative_keywords.py +0 -0
  54. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/negative_product_targeting.py +0 -0
  55. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/optimization_rules.py +0 -0
  56. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/product_targeting.py +0 -0
  57. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/recommendations.py +0 -0
  58. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/reports.py +0 -0
  59. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/stores.py +0 -0
  60. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/targeting_categories.py +0 -0
  61. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/targeting_recommendations.py +0 -0
  62. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sb/themes.py +0 -0
  63. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/__init__.py +0 -0
  64. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/ad_groups.py +0 -0
  65. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/bid_recommendations.py +0 -0
  66. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/brand_safety.py +0 -0
  67. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/budget_rules.py +0 -0
  68. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/campaigns.py +0 -0
  69. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
  70. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/creatives.py +0 -0
  71. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/forecast.py +0 -0
  72. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/negative_product_targeting.py +0 -0
  73. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/product_ads.py +0 -0
  74. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/product_targeting.py +0 -0
  75. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/recommendations.py +0 -0
  76. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/reports.py +0 -0
  77. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/snapshots.py +0 -0
  78. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sd/targeting_recommendations.py +0 -0
  79. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/__init__.py +0 -0
  80. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/ad_groups_v3.py +0 -0
  81. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
  82. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
  83. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/budget_recommendations.py +0 -0
  84. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/budget_rules.py +0 -0
  85. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
  86. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
  87. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
  88. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/campaign_negative_targets.py +0 -0
  89. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
  90. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/campaigns_v3.py +0 -0
  91. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/campaings_optimization.py +0 -0
  92. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/keywords_v3.py +0 -0
  93. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/negative_keywords_v3.py +0 -0
  94. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
  95. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/product_ads_v3.py +0 -0
  96. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/product_recommendations.py +0 -0
  97. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/product_targeting_v3.py +0 -0
  98. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
  99. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
  100. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/stores.py +0 -0
  101. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/stream.py +0 -0
  102. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/ad_associations.py +0 -0
  103. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/ad_extensions.py +0 -0
  104. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/ad_groups.py +0 -0
  105. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/ads.py +0 -0
  106. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/advertiser_accounts.py +0 -0
  107. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/brand_store_edition_publish_versions.py +0 -0
  108. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/brand_store_editions.py +0 -0
  109. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/brand_store_pages.py +0 -0
  110. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/brand_stores.py +0 -0
  111. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/campaigns.py +0 -0
  112. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/labels.py +0 -0
  113. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/manager_accounts.py +0 -0
  114. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/reports.py +0 -0
  115. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/v1/targets.py +0 -0
  116. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/api/validation_configurations.py +0 -0
  117. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/auth/__init__.py +0 -0
  118. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/auth/access_token_client.py +0 -0
  119. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/auth/access_token_response.py +0 -0
  120. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/auth/credentials.py +0 -0
  121. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/auth/exceptions.py +0 -0
  122. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/__init__.py +0 -0
  123. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/api_response.py +0 -0
  124. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/base_client.py +0 -0
  125. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/client.py +0 -0
  126. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/config.py +0 -0
  127. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/credential_provider.py +0 -0
  128. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/exceptions.py +0 -0
  129. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/helpers.py +0 -0
  130. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/marketplaces.py +0 -0
  131. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/ad_api/base/utils.py +0 -0
  132. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/pyproject.toml +0 -0
  133. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
  134. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/python_amazon_ad_api.egg-info/requires.txt +0 -0
  135. {python_amazon_ad_api-1.5.2 → python_amazon_ad_api-1.5.4}/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.5.2
3
+ Version: 1.5.4
4
4
  Summary: Python wrapper for the Amazon Advertising API
5
5
  Home-page: https://github.com/denisneuf/python-amazon-ad-api
6
6
  Author: Daniel Alvaro
@@ -314,6 +314,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
314
314
  * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/reports.html#ad_api.api.v1.Reports.Reports.create_report)
315
315
  * [Labels](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/labels.html#ad_api.api.v1.Labels.Labels.query_labels)
316
316
  * [Manager Accounts](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/manager_accounts.html#ad_api.api.v1.ManagerAccounts.ManagerAccounts.query_manager_accounts)
317
+ * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/recommendations.html#ad_api.api.v1.Recommendations.Recommendations.query_recommendations)
318
+ * [Selling Accounts](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/selling_accounts.html#ad_api.api.v1.SellingAccounts.SellingAccounts.query_selling_accounts)
317
319
 
318
320
 
319
321
  ### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
@@ -286,6 +286,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
286
286
  * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/reports.html#ad_api.api.v1.Reports.Reports.create_report)
287
287
  * [Labels](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/labels.html#ad_api.api.v1.Labels.Labels.query_labels)
288
288
  * [Manager Accounts](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/manager_accounts.html#ad_api.api.v1.ManagerAccounts.ManagerAccounts.query_manager_accounts)
289
+ * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/recommendations.html#ad_api.api.v1.Recommendations.Recommendations.query_recommendations)
290
+ * [Selling Accounts](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/selling_accounts.html#ad_api.api.v1.SellingAccounts.SellingAccounts.query_selling_accounts)
289
291
 
290
292
 
291
293
  ### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
@@ -12,6 +12,8 @@ from .brand_store_pages import BrandStorePages
12
12
  from .reports import Reports
13
13
  from .labels import Labels
14
14
  from .manager_accounts import ManagerAccounts
15
+ from .recommendations import Recommendations
16
+ from .selling_accounts import SellingAccounts
15
17
 
16
18
  __all__ = [
17
19
  "Campaigns",
@@ -28,4 +30,6 @@ __all__ = [
28
30
  "Reports",
29
31
  "Labels",
30
32
  "ManagerAccounts",
33
+ "Recommendations",
34
+ "SellingAccounts",
31
35
  ]
@@ -0,0 +1,87 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class Recommendations(Client):
5
+ r"""
6
+ Recommendations(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
7
+
8
+ Amazon Ads API v1 - recommendations
9
+
10
+ Three routes, two of them generic and one per product:
11
+
12
+ POST /adsApi/v1/query/recommendations QueryRecommendation
13
+ GET /adsApi/v1/recommendations ListRecommendation
14
+ POST /adsApi/v1/create/recommendations/sb SBCreateRecommendation
15
+
16
+ Only the create carries a product suffix in its path. The query and the
17
+ list are generic and take the product in ``adProductFilter``, so a
18
+ Sponsored Products or Sponsored Display create would sit beside the SB one
19
+ under its own suffix without touching these two.
20
+
21
+ The query requires ``accessRequestedAccounts``, the same account selector
22
+ the v1 reports family uses, so the account travels in the body and not only
23
+ in the headers.
24
+ """
25
+
26
+ @sp_endpoint('/adsApi/v1/query/recommendations', method='POST')
27
+ def query_recommendations(self, **kwargs) -> ApiResponse:
28
+ r"""
29
+ query_recommendations(body: dict) -> ApiResponse
30
+
31
+ Amazon Ads API v1 - Query Recommendations (operationId: QueryRecommendation)
32
+
33
+ Request Body [Required]
34
+ | **accessRequestedAccounts** (list<QueryRecommendationRequestAccessRequestedAccountItem>) : [required] 1..2000
35
+ | **adProductFilter** (dict) [optional]
36
+ | **recommendationTypeFilter** (dict) [optional]
37
+ | **recommendationTypeDetailsFilter** (dict) [optional]
38
+ | **marketplacesFilter** (dict) [optional]
39
+ | **languageFilter** (dict) [optional]
40
+ | **maxResults** (int) : 1..100, default 100
41
+ | **nextToken** (string)
42
+
43
+ Returns
44
+ | **recommendations** (list<Recommendation>) : 0..300
45
+ | **totalResults** (int)
46
+ | **nextToken** (string)
47
+ """
48
+ schema_version = 'application/json'
49
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
50
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
51
+
52
+ @sp_endpoint('/adsApi/v1/recommendations', method='GET')
53
+ def list_recommendations(self, **kwargs) -> ApiResponse:
54
+ r"""
55
+ list_recommendations(**params) -> ApiResponse
56
+
57
+ Amazon Ads API v1 - List Recommendations (operationId: ListRecommendation)
58
+
59
+ A GET with query parameters, not a body.
60
+
61
+ Returns
62
+ | **recommendations** (list<Recommendation>) : 0..300
63
+ | **totalResults** (int)
64
+ | **nextToken** (string)
65
+ """
66
+ path = kwargs.pop('path')
67
+ return self._request(path, params=kwargs)
68
+
69
+ @sp_endpoint('/adsApi/v1/create/recommendations/sb', method='POST')
70
+ def create_recommendations_sb(self, **kwargs) -> ApiResponse:
71
+ r"""
72
+ create_recommendations_sb(body: dict) -> ApiResponse
73
+
74
+ Amazon Ads API v1 - Create Sponsored Brands Recommendation (operationId: SBCreateRecommendation)
75
+
76
+ Request Body
77
+ | **recommendations** (list<SBRecommendationCreate>) : 1..1
78
+
79
+ Answer
80
+ 207 MultiStatus with success[] and error[] indexed.
81
+
82
+ This route creates a recommendation in the account, so it is not a
83
+ read. It is the only route in the family with a product suffix.
84
+ """
85
+ schema_version = 'application/json'
86
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
87
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
@@ -0,0 +1,47 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class SellingAccounts(Client):
5
+ r"""
6
+ SellingAccounts(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
7
+
8
+ Amazon Ads API v1 - selling accounts
9
+
10
+ One route, read only:
11
+
12
+ POST /adsApi/v1/query/sellingAccounts
13
+
14
+ No adProductFilter here: a selling account is the account behind the ads,
15
+ not an ad product. Every member of the request is optional, so an empty
16
+ body is a valid request.
17
+ """
18
+
19
+ @sp_endpoint('/adsApi/v1/query/sellingAccounts', method='POST')
20
+ def query_selling_accounts(self, **kwargs) -> ApiResponse:
21
+ r"""
22
+ query_selling_accounts(body: dict) -> ApiResponse
23
+
24
+ Amazon Ads API v1 - Query Selling Accounts (operationId: QuerySellingAccount)
25
+
26
+ Request Body [All optional]
27
+ | **sellingAccountLinkTokenFilter** (dict)
28
+ | **sellingProgramFilter** (dict)
29
+ | **maxResults** (int) : 10..100, default 100
30
+ | **nextToken** (string)
31
+
32
+ Returns
33
+ | **sellingAccounts** (list<SellingAccount>) : 0..100
34
+ | **sellingAccountLinkToken** (string) : [required] the token that locates the account
35
+ | **portals** (list<Portal>) : [required] 1..6
36
+ | **sellingProgram** (SellingProgram) : [required]
37
+ | **displayName** (string)
38
+ | **countryCodes** (list<CountryCode>) : 0..30
39
+ | **business** (SellingAccountBusiness)
40
+ | **nextToken** (string)
41
+
42
+ maxResults starts at 10, so a smaller value is a rejected body rather
43
+ than a shorter page.
44
+ """
45
+ schema_version = 'application/json'
46
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
47
+ 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.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.5.2
3
+ Version: 1.5.4
4
4
  Summary: Python wrapper for the Amazon Advertising API
5
5
  Home-page: https://github.com/denisneuf/python-amazon-ad-api
6
6
  Author: Daniel Alvaro
@@ -314,6 +314,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
314
314
  * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/reports.html#ad_api.api.v1.Reports.Reports.create_report)
315
315
  * [Labels](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/labels.html#ad_api.api.v1.Labels.Labels.query_labels)
316
316
  * [Manager Accounts](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/manager_accounts.html#ad_api.api.v1.ManagerAccounts.ManagerAccounts.query_manager_accounts)
317
+ * [Recommendations](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/recommendations.html#ad_api.api.v1.Recommendations.Recommendations.query_recommendations)
318
+ * [Selling Accounts](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/selling_accounts.html#ad_api.api.v1.SellingAccounts.SellingAccounts.query_selling_accounts)
317
319
 
318
320
 
319
321
  ### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
@@ -107,7 +107,9 @@ ad_api/api/v1/brand_stores.py
107
107
  ad_api/api/v1/campaigns.py
108
108
  ad_api/api/v1/labels.py
109
109
  ad_api/api/v1/manager_accounts.py
110
+ ad_api/api/v1/recommendations.py
110
111
  ad_api/api/v1/reports.py
112
+ ad_api/api/v1/selling_accounts.py
111
113
  ad_api/api/v1/targets.py
112
114
  ad_api/auth/__init__.py
113
115
  ad_api/auth/access_token_client.py
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = python-amazon-ad-api
3
- version = 1.5.2
3
+ version = 1.5.4
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.5.2',
5
+ version='1.5.4',
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.5.2"