python-amazon-ad-api 0.6.4__tar.gz → 0.6.6__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-0.6.4 → python_amazon_ad_api-0.6.6}/PKG-INFO +4 -3
  2. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/README.md +1 -0
  3. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/__init__.py +3 -1
  4. python_amazon_ad_api-0.6.6/ad_api/api/sb/themes.py +79 -0
  5. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/auth/access_token_response.py +1 -1
  6. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/marketplaces.py +5 -2
  7. python_amazon_ad_api-0.6.6/ad_api/version.py +1 -0
  8. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/python_amazon_ad_api.egg-info/PKG-INFO +4 -3
  9. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/python_amazon_ad_api.egg-info/SOURCES.txt +1 -0
  10. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/python_amazon_ad_api.egg-info/requires.txt +2 -2
  11. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/setup.cfg +1 -1
  12. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/setup.py +3 -3
  13. python_amazon_ad_api-0.6.4/ad_api/version.py +0 -1
  14. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/LICENSE +0 -0
  15. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/__init__.py +0 -0
  16. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/__init__.py +0 -0
  17. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/account.py +0 -0
  18. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/advertising_test_account.py +0 -0
  19. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/attribution.py +0 -0
  20. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/audiences.py +0 -0
  21. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/billing.py +0 -0
  22. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/brand_metrics.py +0 -0
  23. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/creative_assets.py +0 -0
  24. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/dsp/__init__.py +0 -0
  25. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/dsp/access_token_client.py +0 -0
  26. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/dsp/client.py +0 -0
  27. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/dsp/credential_provider.py +0 -0
  28. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/dsp/reports.py +0 -0
  29. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/eligibility.py +0 -0
  30. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/exports.py +0 -0
  31. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/history.py +0 -0
  32. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/insights.py +0 -0
  33. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/invoices.py +0 -0
  34. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/localization.py +0 -0
  35. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/manager_accounts.py +0 -0
  36. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/metadata.py +0 -0
  37. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/portfolios.py +0 -0
  38. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/portfolios_v3.py +0 -0
  39. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/profiles.py +0 -0
  40. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/recommendations.py +0 -0
  41. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/reports.py +0 -0
  42. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/ad_creatives_v4.py +0 -0
  43. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/ad_groups.py +0 -0
  44. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/ad_groups_v4.py +0 -0
  45. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/ads_v4.py +0 -0
  46. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/benchmarks.py +0 -0
  47. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/bid_recommendations.py +0 -0
  48. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/brands.py +0 -0
  49. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/campaigns.py +0 -0
  50. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/campaigns_v4.py +0 -0
  51. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/forecast.py +0 -0
  52. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/keywords.py +0 -0
  53. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/keywords_recommendations.py +0 -0
  54. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/landing_page_asins.py +0 -0
  55. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/media.py +0 -0
  56. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/moderation.py +0 -0
  57. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/negative_keywords.py +0 -0
  58. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/negative_product_targeting.py +0 -0
  59. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/product_targeting.py +0 -0
  60. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/recommendations.py +0 -0
  61. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/reports.py +0 -0
  62. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/snapshots.py +0 -0
  63. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/stores.py +0 -0
  64. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sb/targeting_recommendations.py +0 -0
  65. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/__init__.py +0 -0
  66. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/ad_groups.py +0 -0
  67. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/bid_recommendations.py +0 -0
  68. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/brand_safety.py +0 -0
  69. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/budget_rules.py +0 -0
  70. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/campaigns.py +0 -0
  71. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
  72. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/creatives.py +0 -0
  73. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/forecast.py +0 -0
  74. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/negative_product_targeting.py +0 -0
  75. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/product_ads.py +0 -0
  76. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/product_targeting.py +0 -0
  77. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/recommendations.py +0 -0
  78. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/reports.py +0 -0
  79. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/snapshots.py +0 -0
  80. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sd/targeting_recommendations.py +0 -0
  81. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/__init__.py +0 -0
  82. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/ad_groups.py +0 -0
  83. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/ad_groups_v3.py +0 -0
  84. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/bid_recommendations.py +0 -0
  85. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
  86. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
  87. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/budget_recommendations.py +0 -0
  88. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/budget_rules.py +0 -0
  89. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
  90. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
  91. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/campaign_negative_keywords.py +0 -0
  92. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
  93. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/campaign_negative_targets.py +0 -0
  94. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/campaigns.py +0 -0
  95. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
  96. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/campaigns_v3.py +0 -0
  97. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/campaings_optimization.py +0 -0
  98. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/keywords.py +0 -0
  99. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/keywords_v3.py +0 -0
  100. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/negative_keywords.py +0 -0
  101. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/negative_keywords_v3.py +0 -0
  102. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/negative_product_targeting.py +0 -0
  103. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
  104. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/product_ads.py +0 -0
  105. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/product_ads_v3.py +0 -0
  106. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/product_recommendations.py +0 -0
  107. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/product_targeting.py +0 -0
  108. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/product_targeting_v3.py +0 -0
  109. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
  110. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/reports.py +0 -0
  111. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
  112. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/snapshots.py +0 -0
  113. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/sp/suggested_keywords.py +0 -0
  114. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/stores.py +0 -0
  115. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/stream.py +0 -0
  116. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/api/validation_configurations.py +0 -0
  117. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/auth/__init__.py +0 -0
  118. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/auth/access_token_client.py +0 -0
  119. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/auth/credentials.py +0 -0
  120. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/auth/exceptions.py +0 -0
  121. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/__init__.py +0 -0
  122. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/api_response.py +0 -0
  123. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/base_client.py +0 -0
  124. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/client.py +0 -0
  125. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/config.py +0 -0
  126. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/credential_provider.py +0 -0
  127. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/exceptions.py +0 -0
  128. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/helpers.py +0 -0
  129. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/ad_api/base/utils.py +0 -0
  130. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/pyproject.toml +0 -0
  131. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
  132. {python_amazon_ad_api-0.6.4 → python_amazon_ad_api-0.6.6}/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: 0.6.4
3
+ Version: 0.6.6
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
@@ -14,8 +14,8 @@ Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
15
  Requires-Dist: requests<2.33.0,>=2.27.1
16
16
  Requires-Dist: six<1.18,>=1.16
17
- Requires-Dist: cachetools<5.6,>=5.0
18
- Requires-Dist: pycryptodome<3.23,>=3.13
17
+ Requires-Dist: cachetools<6.2,>=5.0
18
+ Requires-Dist: pycryptodome<3.24,>=3.13
19
19
  Requires-Dist: pytz<2026.0,>=2021.3
20
20
  Requires-Dist: confuse<2.1,>=1.7
21
21
  Dynamic: author
@@ -346,6 +346,7 @@ There is a new version 3 of Sponsored Product API, please check the [migration g
346
346
  * [Moderation](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/moderation.html)
347
347
  * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
348
348
  * [Snapshots](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/snapshots.html)
349
+ * [Themes](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/themes.html)
349
350
 
350
351
  ### [Modules Available Sponsored Brands 4.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sb_v4.html)
351
352
 
@@ -318,6 +318,7 @@ There is a new version 3 of Sponsored Product API, please check the [migration g
318
318
  * [Moderation](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/moderation.html)
319
319
  * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
320
320
  * [Snapshots](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/snapshots.html)
321
+ * [Themes](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/themes.html)
321
322
 
322
323
  ### [Modules Available Sponsored Brands 4.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sb_v4.html)
323
324
 
@@ -21,6 +21,7 @@ from .media import Media
21
21
  from .reports import Reports
22
22
  from .snapshots import Snapshots
23
23
  from .benchmarks import Benchmarks
24
+ from .themes import Themes
24
25
 
25
26
  __all__ = [
26
27
  "Brands",
@@ -45,5 +46,6 @@ __all__ = [
45
46
  "Media",
46
47
  "Reports",
47
48
  "Snapshots",
48
- "Benchmarks"
49
+ "Benchmarks",
50
+ "Themes"
49
51
  ]
@@ -0,0 +1,79 @@
1
+ from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
2
+
3
+
4
+ class Themes(Client):
5
+ """
6
+ Amazon Ads API - Sponsored Brands - Theme Targeting
7
+
8
+ Theme targeting automatically targets keywords related to your brand or landing pages.
9
+ """
10
+
11
+ @sp_endpoint('/sb/themes/list', method='POST')
12
+ def list_themes(self, **kwargs) -> ApiResponse:
13
+ r"""
14
+ Gets a list of theme targets associated with the client identifier, filtered by specified criteria.
15
+
16
+ Request Body
17
+ | '**nextToken**': *string*, {'description': 'Token for pagination. Operations that return paginated results include a pagination token in this field.'}
18
+ | '**maxResults**': *number*, {'description': 'Maximum number of results to return. Defaults to API maximum.'}
19
+ | '**campaignIdFilter**': *object*, {'description': 'List of campaign identifiers to filter by (max 100).'}
20
+ | '**adGroupIdFilter**': *object*, {'description': 'List of ad group identifiers to filter by (max 100).'}
21
+ | '**themeIdFilter**': *object*, {'description': 'List of theme target identifiers to filter by (max 100).'}
22
+ | '**stateFilter**': *object*, {'description': 'List of theme target states to filter by. Valid values: enabled, paused, archived. Default: enabled, paused.'}
23
+ | '**themeTypeFilter**': *object*, {'description': 'List of theme types to filter by. Valid values: KEYWORDS_RELATED_TO_YOUR_BRAND, KEYWORDS_RELATED_TO_YOUR_LANDING_PAGES.'}
24
+
25
+ Returns:
26
+ | ApiResponse
27
+ """
28
+ headers = {'Accept': 'application/vnd.sbthemeslistresponse.v3+json'}
29
+ body = Utils.convert_body(kwargs.pop('body'), wrap=False)
30
+ return self._request(kwargs.pop('path'), data=body, params=kwargs, headers=headers)
31
+
32
+ @sp_endpoint('/sb/themes', method='POST')
33
+ def create_themes(self, **kwargs) -> ApiResponse:
34
+ r"""
35
+ Create one or more theme targets.
36
+
37
+ Note that theme targets can be created on multi-adGroup campaigns where campaign serving status is not archived, terminated, rejected, or ended.
38
+ Note that ad group state must not be archived.
39
+ Note that only one target can be created for each themeType per adGroup.
40
+ Note that this operation supports a maximum list size of 100 theme targets.
41
+
42
+ Request Body
43
+ | '**themes**': *array*, {'description': 'List of theme targets to create (max 100).'}
44
+ | '**adGroupId**': *string*, {'description': 'The identifier of the ad group'}
45
+ | '**campaignId**': *string*, {'description': 'The identifier of the campaign'}
46
+ | '**themeType**': *string*, {'description': 'Theme type', 'Enum': 'KEYWORDS_RELATED_TO_YOUR_BRAND, KEYWORDS_RELATED_TO_YOUR_LANDING_PAGES'}
47
+ | '**bid**': *number*, {'description': 'The bid amount'}
48
+
49
+ Returns:
50
+ | ApiResponse
51
+ """
52
+ headers = {'Accept': 'application/vnd.sbthemescreateresponse.v3+json'}
53
+ body = Utils.convert_body(kwargs.pop('body'), wrap=False)
54
+ return self._request(kwargs.pop('path'), data=body, params=kwargs, headers=headers)
55
+
56
+ @sp_endpoint('/sb/themes', method='PUT')
57
+ def update_themes(self, **kwargs) -> ApiResponse:
58
+ r"""
59
+ Updates one or more theme targets.
60
+
61
+ Note that theme targets can be updated on multi-adGroup campaigns where campaign serving status is not archived, terminated, rejected, or ended.
62
+ Note that ad group state must not be archived.
63
+ Note that this operation supports a maximum list size of 100 theme targets.
64
+ Note that bid is only mutable when the corresponding campaign does not have any enabled optimization rule.
65
+
66
+ Request Body
67
+ | '**themes**': *array*, {'description': 'List of theme targets to update (max 100).'}
68
+ | '**themeId**': *string*, {'description': 'The identifier of the theme target'}
69
+ | '**adGroupId**': *string*, {'description': 'The identifier of the ad group'}
70
+ | '**campaignId**': *string*, {'description': 'The identifier of the campaign'}
71
+ | '**state**': *string*, {'description': 'Theme target state', 'Enum': 'enabled, paused, archived'}
72
+ | '**bid**': *number*, {'description': 'The bid amount'}
73
+
74
+ Returns:
75
+ | ApiResponse
76
+ """
77
+ headers = {'Accept': 'application/vnd.sbthemesupdateresponse.v3+json'}
78
+ body = Utils.convert_body(kwargs.pop('body'), wrap=False)
79
+ return self._request(kwargs.pop('path'), data=body, params=kwargs, headers=headers)
@@ -2,5 +2,5 @@ class AccessTokenResponse:
2
2
  def __init__(self, **kwargs):
3
3
  self.access_token = kwargs.get('access_token')
4
4
  self.refresh_token = kwargs.get('refresh_token')
5
- self.expires_in = kwargs.get('expires')
5
+ self.expires_in = kwargs.get('expires_in')
6
6
  self.token_type = kwargs.get('token_type')
@@ -62,10 +62,12 @@ class Locales(Enum):
62
62
  JP = "ja_JP"
63
63
  SG = "en_SG"
64
64
  CN = "zh_CN"
65
+ IE = "en_IE"
66
+
65
67
 
66
68
 
67
69
  class Currencies(Enum):
68
- EU = ES = DE = FR = IT = NL = BE = "EUR"
70
+ EU = ES = DE = FR = IT = NL = BE = IE = "EUR"
69
71
  SE = "SEK"
70
72
  PL = "PLN"
71
73
  TR = "TRY"
@@ -105,6 +107,7 @@ class MarketplacesIds(Enum):
105
107
  SG = 'A19VAU5U5O7RUS'
106
108
  AU = 'A39IBJ37TRP1C6'
107
109
  JP = 'A1VC38T7YXB528'
110
+ IE = 'A28R8C7NBKEWEA'
108
111
 
109
112
 
110
113
  class Marketplaces(Enum):
@@ -146,7 +149,7 @@ class Marketplaces(Enum):
146
149
  'token_url': 'api.amazon.co.jp/auth/o2/token'
147
150
  }
148
151
  # Europe
149
- EU = ES = DE = FR = IT = NL = BE = {
152
+ EU = ES = DE = FR = IT = NL = BE = IE = {
150
153
  'prod': 'advertising-api-eu.amazon.com',
151
154
  'currency': 'EUR',
152
155
  'token_url': 'api.amazon.co.uk/auth/o2/token'
@@ -0,0 +1 @@
1
+ __version__ = "0.6.6"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 0.6.4
3
+ Version: 0.6.6
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
@@ -14,8 +14,8 @@ Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
15
  Requires-Dist: requests<2.33.0,>=2.27.1
16
16
  Requires-Dist: six<1.18,>=1.16
17
- Requires-Dist: cachetools<5.6,>=5.0
18
- Requires-Dist: pycryptodome<3.23,>=3.13
17
+ Requires-Dist: cachetools<6.2,>=5.0
18
+ Requires-Dist: pycryptodome<3.24,>=3.13
19
19
  Requires-Dist: pytz<2026.0,>=2021.3
20
20
  Requires-Dist: confuse<2.1,>=1.7
21
21
  Dynamic: author
@@ -346,6 +346,7 @@ There is a new version 3 of Sponsored Product API, please check the [migration g
346
346
  * [Moderation](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/moderation.html)
347
347
  * [Reports](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/reports.html)
348
348
  * [Snapshots](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/snapshots.html)
349
+ * [Themes](https://python-amazon-ad-api.readthedocs.io/en/latest/sb/themes.html)
349
350
 
350
351
  ### [Modules Available Sponsored Brands 4.0](https://python-amazon-ad-api.readthedocs.io/en/latest/sb_v4.html)
351
352
 
@@ -58,6 +58,7 @@ ad_api/api/sb/reports.py
58
58
  ad_api/api/sb/snapshots.py
59
59
  ad_api/api/sb/stores.py
60
60
  ad_api/api/sb/targeting_recommendations.py
61
+ ad_api/api/sb/themes.py
61
62
  ad_api/api/sd/__init__.py
62
63
  ad_api/api/sd/ad_groups.py
63
64
  ad_api/api/sd/bid_recommendations.py
@@ -1,6 +1,6 @@
1
1
  requests<2.33.0,>=2.27.1
2
2
  six<1.18,>=1.16
3
- cachetools<5.6,>=5.0
4
- pycryptodome<3.23,>=3.13
3
+ cachetools<6.2,>=5.0
4
+ pycryptodome<3.24,>=3.13
5
5
  pytz<2026.0,>=2021.3
6
6
  confuse<2.1,>=1.7
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = python-amazon-ad-api
3
- version = 0.6.4
3
+ version = 0.6.6
4
4
  author = Daniel Alvaro
5
5
  author_email = denisneuf@hotmail.com
6
6
  description = Python wrapper for the Amazon Advertising API
@@ -2,12 +2,12 @@ from setuptools import setup
2
2
 
3
3
  setup(
4
4
  name='python-amazon-ad-api',
5
- version='0.6.4',
5
+ version='0.6.6',
6
6
  install_requires=[
7
7
  "requests>=2.27.1,<2.33.0",
8
8
  "six>=1.16,<1.18",
9
- "cachetools>=5.0,<5.6",
10
- "pycryptodome>=3.13,<3.23",
9
+ "cachetools>=5.0,<6.2",
10
+ "pycryptodome>=3.13,<3.24",
11
11
  "pytz>=2021.3,<2026.0",
12
12
  "confuse>=1.7,<2.1",
13
13
  ],
@@ -1 +0,0 @@
1
- __version__ = "0.6.3"