python-amazon-ad-api 1.0.2__tar.gz → 1.0.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 (137) hide show
  1. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/PKG-INFO +3 -1
  2. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/README.md +2 -0
  3. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/ad_groups_v3.py +4 -0
  4. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/campaigns_v3.py +3 -0
  5. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/product_ads_v3.py +4 -0
  6. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/product_targeting_v3.py +4 -0
  7. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/v1/__init__.py +2 -0
  8. python_amazon_ad_api-1.0.4/ad_api/api/v1/targets.py +205 -0
  9. python_amazon_ad_api-1.0.4/ad_api/version.py +1 -0
  10. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/python_amazon_ad_api.egg-info/PKG-INFO +3 -1
  11. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/python_amazon_ad_api.egg-info/SOURCES.txt +1 -0
  12. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/setup.cfg +1 -1
  13. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/setup.py +1 -1
  14. python_amazon_ad_api-1.0.2/ad_api/version.py +0 -1
  15. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/LICENSE +0 -0
  16. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/__init__.py +0 -0
  17. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/__init__.py +0 -0
  18. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/account.py +0 -0
  19. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/advertising_test_account.py +0 -0
  20. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/attribution.py +0 -0
  21. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/audiences.py +0 -0
  22. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/billing.py +0 -0
  23. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/brand_metrics.py +0 -0
  24. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/creative_assets.py +0 -0
  25. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/dsp/__init__.py +0 -0
  26. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/dsp/access_token_client.py +0 -0
  27. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/dsp/client.py +0 -0
  28. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/dsp/credential_provider.py +0 -0
  29. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/dsp/reports.py +0 -0
  30. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/eligibility.py +0 -0
  31. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/exports.py +0 -0
  32. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/history.py +0 -0
  33. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/insights.py +0 -0
  34. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/invoices.py +0 -0
  35. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/localization.py +0 -0
  36. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/manager_accounts.py +0 -0
  37. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/metadata.py +0 -0
  38. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/portfolios.py +0 -0
  39. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/portfolios_v3.py +0 -0
  40. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/profiles.py +0 -0
  41. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/recommendations.py +0 -0
  42. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/reports.py +0 -0
  43. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/__init__.py +0 -0
  44. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/ad_creatives_v4.py +0 -0
  45. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/ad_groups.py +0 -0
  46. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/ad_groups_v4.py +0 -0
  47. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/ads_v4.py +0 -0
  48. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/benchmarks.py +0 -0
  49. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/bid_recommendations.py +0 -0
  50. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/brands.py +0 -0
  51. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/campaigns.py +0 -0
  52. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/campaigns_v4.py +0 -0
  53. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/forecast.py +0 -0
  54. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/keywords.py +0 -0
  55. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/keywords_recommendations.py +0 -0
  56. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/landing_page_asins.py +0 -0
  57. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/media.py +0 -0
  58. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/moderation.py +0 -0
  59. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/negative_keywords.py +0 -0
  60. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/negative_product_targeting.py +0 -0
  61. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/product_targeting.py +0 -0
  62. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/recommendations.py +0 -0
  63. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/reports.py +0 -0
  64. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/snapshots.py +0 -0
  65. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/stores.py +0 -0
  66. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/targeting_recommendations.py +0 -0
  67. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sb/themes.py +0 -0
  68. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/__init__.py +0 -0
  69. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/ad_groups.py +0 -0
  70. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/bid_recommendations.py +0 -0
  71. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/brand_safety.py +0 -0
  72. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/budget_rules.py +0 -0
  73. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/campaigns.py +0 -0
  74. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
  75. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/creatives.py +0 -0
  76. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/forecast.py +0 -0
  77. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/negative_product_targeting.py +0 -0
  78. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/product_ads.py +0 -0
  79. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/product_targeting.py +0 -0
  80. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/recommendations.py +0 -0
  81. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/reports.py +0 -0
  82. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/snapshots.py +0 -0
  83. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sd/targeting_recommendations.py +0 -0
  84. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/__init__.py +0 -0
  85. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/ad_groups.py +0 -0
  86. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/bid_recommendations.py +0 -0
  87. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
  88. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
  89. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/budget_recommendations.py +0 -0
  90. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/budget_rules.py +0 -0
  91. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
  92. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
  93. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/campaign_negative_keywords.py +0 -0
  94. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
  95. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/campaign_negative_targets.py +0 -0
  96. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/campaigns.py +0 -0
  97. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
  98. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/campaings_optimization.py +0 -0
  99. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/keywords.py +0 -0
  100. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/keywords_v3.py +0 -0
  101. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/negative_keywords.py +0 -0
  102. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/negative_keywords_v3.py +0 -0
  103. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/negative_product_targeting.py +0 -0
  104. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
  105. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/product_ads.py +0 -0
  106. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/product_recommendations.py +0 -0
  107. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/product_targeting.py +0 -0
  108. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
  109. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/reports.py +0 -0
  110. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
  111. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/snapshots.py +0 -0
  112. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/sp/suggested_keywords.py +0 -0
  113. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/stores.py +0 -0
  114. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/stream.py +0 -0
  115. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/v1/ad_groups.py +0 -0
  116. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/v1/ads.py +0 -0
  117. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/v1/campaigns.py +0 -0
  118. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/api/validation_configurations.py +0 -0
  119. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/auth/__init__.py +0 -0
  120. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/auth/access_token_client.py +0 -0
  121. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/auth/access_token_response.py +0 -0
  122. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/auth/credentials.py +0 -0
  123. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/auth/exceptions.py +0 -0
  124. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/__init__.py +0 -0
  125. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/api_response.py +0 -0
  126. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/base_client.py +0 -0
  127. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/client.py +0 -0
  128. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/config.py +0 -0
  129. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/credential_provider.py +0 -0
  130. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/exceptions.py +0 -0
  131. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/helpers.py +0 -0
  132. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/marketplaces.py +0 -0
  133. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/ad_api/base/utils.py +0 -0
  134. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/pyproject.toml +0 -0
  135. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
  136. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.4}/python_amazon_ad_api.egg-info/requires.txt +0 -0
  137. {python_amazon_ad_api-1.0.2 → python_amazon_ad_api-1.0.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.0.2
3
+ Version: 1.0.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
@@ -305,6 +305,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
305
305
 
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
+ * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ads.html#ad_api.api.v1.Ads.Ads.query_ads)
309
+ * [Targets](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/targets.html#ad_api.api.v1.Targets.Targets.query_targets)
308
310
 
309
311
 
310
312
  ### [Modules Available Sponsored Products 2.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v2.html)
@@ -277,6 +277,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
277
277
 
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
+ * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ads.html#ad_api.api.v1.Ads.Ads.query_ads)
281
+ * [Targets](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/targets.html#ad_api.api.v1.Targets.Targets.query_targets)
280
282
 
281
283
 
282
284
  ### [Modules Available Sponsored Products 2.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v2.html)
@@ -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
@@ -1,9 +1,11 @@
1
1
  from .campaigns import Campaigns
2
2
  from .ad_groups import AdGroups
3
3
  from .ads import Ads
4
+ from .targets import Targets
4
5
 
5
6
  __all__ = [
6
7
  "Campaigns",
7
8
  "AdGroups",
8
9
  "Ads",
10
+ "Targets",
9
11
  ]
@@ -0,0 +1,205 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class Targets(Client):
5
+ r"""
6
+ Targets(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
7
+
8
+ Amazon Ads API v1 - unified Targets endpoints
9
+
10
+ The v1 API is not split by product: every call goes to the same resource
11
+ (``/adsApi/v1/...``) and the product is selected in the request body via
12
+ ``adProductFilter``.
13
+
14
+ """
15
+
16
+ @sp_endpoint('/adsApi/v1/query/targets', method='POST')
17
+ def query_targets(self, **kwargs) -> ApiResponse:
18
+ r"""
19
+ query_targets(body: dict) -> ApiResponse
20
+
21
+ Amazon Ads API v1 - Query Targets (operationId: QueryTarget)
22
+
23
+ Request Body [Required]
24
+ | **adProductFilter** (dict) : [required]
25
+ | **include** (list<AdProduct>) : Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
26
+ | **targetIdFilter** (dict) [optional]
27
+ | **include** (list<string>) : Target identifiers
28
+ | **adGroupIdFilter** (dict) [optional]
29
+ | **include** (list<string>) : Ad group identifiers
30
+ | **campaignIdFilter** (dict) [optional]
31
+ | **include** (list<string>) : Campaign identifiers
32
+ | **keywordFilter** (dict) [optional]
33
+ | **include** (list<string>) : Keyword texts
34
+ | **queryTermMatchType** (string) : [required] Enum [ BROAD_MATCH, EXACT_MATCH ]
35
+ | **productIdFilter** (dict) [optional]
36
+ | **include** (list<string>) : Product identifiers
37
+ | **queryTermMatchType** (string) : [required] Enum [ BROAD_MATCH, EXACT_MATCH ]
38
+ | **matchTypeFilter** (dict) [optional]
39
+ | **include** (list<MatchType>) : Enum [ BROAD, EXACT, INTERESTED_AUDIENCE, KEYWORDS_CLOSE_MATCH, KEYWORDS_LOOSE_MATCH, KEYWORDS_RELATED_TO_GIFTS, KEYWORDS_RELATED_TO_PEER_BRANDS_PRODUCT_CATEGORY, KEYWORDS_RELATED_TO_PRIME_DAY, KEYWORDS_RELATED_TO_YOUR_BRAND, KEYWORDS_RELATED_TO_YOUR_LANDING_PAGES, KEYWORDS_RELATED_TO_YOUR_PRODUCT_CATEGORY, PHRASE, PRODUCTS_SIMILAR_TO_ADVERTISED_PRODUCTS, PRODUCT_COMPLEMENTS, PRODUCT_EXACT, PRODUCT_REMARKETING, PRODUCT_SIMILAR, PRODUCT_SUBSTITUTES ]
40
+ | **negativeFilter** (dict) [optional]
41
+ | **include** (list<boolean>) : Keep only negative or non-negative targets
42
+ | **targetTypeFilter** (dict) [optional]
43
+ | **include** (list<TargetType>) : Enum [ AD_INITIATION, AD_PLAYER_SIZE, APP, AUDIENCE, BRAND_SAFETY_CATEGORY, BRAND_SAFETY_TIER, CONTENT_CATEGORY, CONTENT_GENRE, CONTENT_INSTREAM_POSITION, CONTENT_OUTSTREAM_POSITION, CONTENT_RATING, DAYPART, DEVICE, DOMAIN, FOLD_POSITION, INVENTORY_SOURCE, KEYWORD, LOCATION, NATIVE_CONTENT_POSITION, PLACEMENT_TYPE, PRODUCT, PRODUCT_AUDIENCE, PRODUCT_CATEGORY, SKIPPABILITY, THEME, THIRD_PARTY, VIDEO_AD_FORMAT, VIDEO_CONTENT_DURATION ]
44
+ | **nativeLanguageLocaleFilter** (dict) [optional]
45
+ | **include** (list<string>) : Locales of the unlocalized keyword text
46
+ | **retailerIdFilter** (dict) [optional]
47
+ | **include** (list<string>) : Retailer identifiers
48
+ | **stateFilter** (dict) [optional]
49
+ | **include** (list<State>) : Enum [ ARCHIVED, DRAFT, ENABLED, PAUSED ]
50
+ | **marketplaceScopeFilter** (dict) [optional]
51
+ | **include** (list<MarketplaceScope>) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
52
+ | **retailerScopeFilter** (dict) [optional]
53
+ | **include** (list<RetailerScope>) : Enum [ AMAZON, OTHER_RETAILERS ]
54
+ | **maxResults** (int) [optional] Maximum number of records in the response
55
+ | **nextToken** (string) [optional] Token to navigate to the next page
56
+
57
+ Headers
58
+ | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
59
+
60
+ Returns
61
+ ApiResponse
62
+ | **targets** (list), **nextToken** (string)
63
+
64
+ """
65
+ schema_version = 'application/json'
66
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
67
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
68
+
69
+ @sp_endpoint('/adsApi/v1/create/targets', method='POST')
70
+ def create_targets(self, **kwargs) -> ApiResponse:
71
+ r"""
72
+ create_targets(body: dict) -> ApiResponse
73
+
74
+ Amazon Ads API v1 - Create Targets (operationId: CreateTarget)
75
+
76
+ Request Body [Required]
77
+ | **targets** (list<dict>) : [required] One or more target objects.
78
+ Each object requires **adProduct**, **negative**, **state**,
79
+ **targetDetails** and **targetType**.
80
+
81
+ Target fields
82
+ | **adProduct** (string) : [required] Enum [ AMAZON_DSP, SPONSORED_BRANDS, SPONSORED_DISPLAY, SPONSORED_PRODUCTS, SPONSORED_TELEVISION ]
83
+ | **negative** (boolean) : [required] True for a negative target
84
+ | **state** (string) : [required] Enum [ DRAFT, ENABLED, PAUSED ]
85
+ | **targetDetails** (dict) : [required] Exactly one of the variants below
86
+ | **targetType** (string) : [required] Enum [ AD_INITIATION, AD_PLAYER_SIZE, APP, AUDIENCE, BRAND_SAFETY_CATEGORY, BRAND_SAFETY_TIER, CONTENT_CATEGORY, CONTENT_GENRE, CONTENT_INSTREAM_POSITION, CONTENT_OUTSTREAM_POSITION, CONTENT_RATING, DAYPART, DEVICE, DOMAIN, FOLD_POSITION, INVENTORY_SOURCE, KEYWORD, LOCATION, NATIVE_CONTENT_POSITION, PLACEMENT_TYPE, PRODUCT, PRODUCT_AUDIENCE, PRODUCT_CATEGORY, SKIPPABILITY, THEME, THIRD_PARTY, VIDEO_AD_FORMAT, VIDEO_CONTENT_DURATION ]
87
+ | **adGroupId** (string) [optional] Identifier of the parent ad group
88
+ | **campaignId** (string) [optional] Identifier of the parent campaign
89
+ | **bid** (dict) [optional]
90
+ | **bid** (number) : Bid value
91
+ | **marketplaceSettings** (list<dict>) : Per marketplace bids
92
+ | **marketplaceScope** (string) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
93
+ | **marketplaces** (list<dict>) : Marketplaces where the target runs
94
+ | **marketplaceConfigurations** (list<dict>) : Each with **marketplace** and **overrides** (both required)
95
+ | **tags** (list<dict>) : Each with **key** and **value** (both required)
96
+
97
+ targetDetails variants (use exactly one key, matching ``targetType``)
98
+ | **keywordTarget** : requires ``keyword`` + ``matchType`` (Enum BROAD, EXACT, PHRASE);
99
+ optional ``nativeLanguageKeyword``, ``nativeLanguageLocale``
100
+ | **productTarget** : requires ``matchType``, ``product``, ``productIdType``
101
+ | **productCategoryTarget** : requires ``productCategoryRefinement``;
102
+ optional ``matchType``, ``productGenreRefinement``
103
+ | **productAudienceTarget** : requires ``asin``, ``event``, ``lookback``, ``matchType``
104
+ | **audienceTarget** : requires ``audienceId``; optional ``acrossGroupOperator``, ``groupId``, ``inGroupOperator``
105
+ | **locationTarget** : requires ``locationId``; optional ``locationIdResolved``
106
+ | **domainTarget** : requires ``domainTargetDetails``, ``domainTargetType``
107
+ | **appTarget** : requires ``appId``, ``appType``
108
+ | **deviceTarget** : requires ``deviceType``; optional ``deviceOrientation``, ``mobileDevice``, ``mobileEnvironment``, ``mobileOs``
109
+ | **dayPartTarget** : requires ``dayOfWeek``, ``timeOfDay``
110
+ | **contentCategoryTarget** : requires ``contentCategoryId``
111
+ | **contentGenreTarget** : requires ``contentGenre``
112
+ | **contentRatingTarget** : requires ``contentRatingType``, ``contentRatingTypeDetails``
113
+ | **brandSafetyTierTarget** : requires ``brandSafetyTier``
114
+ | **brandSafetyCategoryTarget** : requires ``brandSafetyCategory``
115
+ | **inventorySourceTarget** : requires ``inventorySourceId``, ``inventorySourceType``
116
+ | **adInitiationTarget** : requires ``videoInitiationType``
117
+ | **adPlayerSizeTarget** : requires ``adPlayerSize``
118
+ | **videoAdFormatTarget** : requires ``videoAdFormat``
119
+ | **thirdPartyTarget** : requires ``thirdPartyTargetDetails``, ``thirdPartyTargetType``
120
+ | **themeTarget** : requires ``matchType``
121
+ | **contentInstreamPositionTarget** : requires ``instreamPosition``
122
+ | **contentOutstreamPositionTarget** : requires ``outstreamPosition``
123
+ | **videoContentDurationTarget** : requires ``duration``
124
+ | **foldPositionTarget** : requires ``foldPosition``
125
+ | **nativeContentPositionTarget** : requires ``nativePosition``
126
+ | **placementTypeTarget** : requires ``placementType``
127
+ | **skippabilityTarget** : requires ``skippabilityType``
128
+
129
+ Example of the envelope::
130
+
131
+ {"targetDetails": {"keywordTarget": {"keyword": "running shoes", "matchType": "EXACT"}}}
132
+
133
+ Headers
134
+ | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
135
+
136
+ Returns
137
+ ApiResponse
138
+ | **207** MultiStatus response with partial errors. Inspect the payload
139
+ to know which targets were created and which failed.
140
+
141
+ """
142
+ schema_version = 'application/json'
143
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
144
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
145
+
146
+ @sp_endpoint('/adsApi/v1/update/targets', method='POST')
147
+ def update_targets(self, **kwargs) -> ApiResponse:
148
+ r"""
149
+ update_targets(body: dict) -> ApiResponse
150
+
151
+ Amazon Ads API v1 - Update Targets (operationId: UpdateTarget)
152
+
153
+ Request Body [Required]
154
+ | **targets** (list<dict>) : [required] One or more target objects.
155
+ Each object requires **targetId** and may include any of the fields below.
156
+
157
+ Target fields [optional except targetId]
158
+ | **targetId** (string) : [required] The identifier of the target to update.
159
+ | **state** (string) : Enum [ DRAFT, ENABLED, PAUSED ]
160
+ | **bid** (dict) : ``bid`` (number) and ``marketplaceSettings``
161
+ | **campaignId** (string)
162
+ | **marketplaceScope** (string) : Enum [ GLOBAL, SINGLE_MARKETPLACE ]
163
+ | **marketplaces** (list<dict>)
164
+ | **marketplaceConfigurations** (list<dict>)
165
+ | **tags** (list<dict>)
166
+
167
+ Note: ``targetDetails``, ``targetType``, ``negative`` and ``adProduct``
168
+ are not part of the update body. To change what a target points at,
169
+ delete it and create a new one.
170
+
171
+ Headers
172
+ | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
173
+
174
+ Returns
175
+ ApiResponse
176
+ | **207** MultiStatus response with partial errors. Inspect the payload
177
+ to know which targets were updated and which failed.
178
+
179
+ """
180
+ schema_version = 'application/json'
181
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
182
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
183
+
184
+ @sp_endpoint('/adsApi/v1/delete/targets', method='POST')
185
+ def delete_targets(self, **kwargs) -> ApiResponse:
186
+ r"""
187
+ delete_targets(body: dict) -> ApiResponse
188
+
189
+ Amazon Ads API v1 - Delete Targets (operationId: DeleteTarget)
190
+
191
+ Request Body [Required]
192
+ | **targetIds** (list<string>) : [required] Target identifiers to delete
193
+
194
+ Headers
195
+ | **Amazon-Ads-AccountId** (string) [optional] Advertiser account identifier
196
+
197
+ Returns
198
+ ApiResponse
199
+ | **207** MultiStatus response with partial errors. Inspect the payload
200
+ to know which target ids succeeded and which failed.
201
+
202
+ """
203
+ schema_version = 'application/json'
204
+ headers = {"Accept": schema_version, "Content-Type": schema_version}
205
+ return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
@@ -0,0 +1 @@
1
+ __version__ = "1.0.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.0.2
3
+ Version: 1.0.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
@@ -305,6 +305,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
305
305
 
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
+ * [Ads](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/ads.html#ad_api.api.v1.Ads.Ads.query_ads)
309
+ * [Targets](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/targets.html#ad_api.api.v1.Targets.Targets.query_targets)
308
310
 
309
311
 
310
312
  ### [Modules Available Sponsored Products 2.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sp_v2.html)
@@ -112,6 +112,7 @@ ad_api/api/v1/__init__.py
112
112
  ad_api/api/v1/ad_groups.py
113
113
  ad_api/api/v1/ads.py
114
114
  ad_api/api/v1/campaigns.py
115
+ ad_api/api/v1/targets.py
115
116
  ad_api/auth/__init__.py
116
117
  ad_api/auth/access_token_client.py
117
118
  ad_api/auth/access_token_response.py
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = python-amazon-ad-api
3
- version = 1.0.2
3
+ version = 1.0.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.0.2',
5
+ version='1.0.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.0.2"