python-amazon-ad-api 1.2.5__tar.gz → 1.2.7__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 (123) hide show
  1. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/PKG-INFO +3 -3
  2. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/README.md +2 -2
  3. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/creative_assets.py +69 -1
  4. python_amazon_ad_api-1.2.7/ad_api/api/insights.py +52 -0
  5. python_amazon_ad_api-1.2.7/ad_api/version.py +1 -0
  6. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/python_amazon_ad_api.egg-info/PKG-INFO +3 -3
  7. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/setup.cfg +1 -1
  8. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/setup.py +1 -1
  9. python_amazon_ad_api-1.2.5/ad_api/api/insights.py +0 -42
  10. python_amazon_ad_api-1.2.5/ad_api/version.py +0 -1
  11. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/LICENSE +0 -0
  12. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/__init__.py +0 -0
  13. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/__init__.py +0 -0
  14. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/account.py +0 -0
  15. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/advertising_test_account.py +0 -0
  16. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/attribution.py +0 -0
  17. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/audiences.py +0 -0
  18. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/billing.py +0 -0
  19. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/brand_metrics.py +0 -0
  20. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/eligibility.py +0 -0
  21. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/exports.py +0 -0
  22. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/history.py +0 -0
  23. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/invoices.py +0 -0
  24. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/localization.py +0 -0
  25. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/manager_accounts.py +0 -0
  26. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/metadata.py +0 -0
  27. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/portfolios.py +0 -0
  28. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/portfolios_v3.py +0 -0
  29. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/profiles.py +0 -0
  30. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/recommendations.py +0 -0
  31. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/reports.py +0 -0
  32. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/__init__.py +0 -0
  33. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/ad_creatives_v4.py +0 -0
  34. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/ad_groups.py +0 -0
  35. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/ad_groups_v4.py +0 -0
  36. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/ads_v4.py +0 -0
  37. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/benchmarks.py +0 -0
  38. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/bid_recommendations.py +0 -0
  39. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/brands.py +0 -0
  40. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/budget_rules.py +0 -0
  41. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/campaigns.py +0 -0
  42. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/campaigns_v4.py +0 -0
  43. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/forecast.py +0 -0
  44. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/keywords.py +0 -0
  45. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/keywords_recommendations.py +0 -0
  46. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/landing_page_asins.py +0 -0
  47. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/media.py +0 -0
  48. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/migration.py +0 -0
  49. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/negative_keywords.py +0 -0
  50. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/negative_product_targeting.py +0 -0
  51. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/optimization_rules.py +0 -0
  52. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/product_targeting.py +0 -0
  53. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/recommendations.py +0 -0
  54. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/reports.py +0 -0
  55. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/stores.py +0 -0
  56. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/targeting_categories.py +0 -0
  57. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/targeting_recommendations.py +0 -0
  58. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sb/themes.py +0 -0
  59. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/__init__.py +0 -0
  60. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/ad_groups.py +0 -0
  61. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/bid_recommendations.py +0 -0
  62. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/brand_safety.py +0 -0
  63. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/budget_rules.py +0 -0
  64. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/campaigns.py +0 -0
  65. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
  66. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/creatives.py +0 -0
  67. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/forecast.py +0 -0
  68. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/negative_product_targeting.py +0 -0
  69. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/product_ads.py +0 -0
  70. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/product_targeting.py +0 -0
  71. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/recommendations.py +0 -0
  72. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/reports.py +0 -0
  73. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/snapshots.py +0 -0
  74. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sd/targeting_recommendations.py +0 -0
  75. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/__init__.py +0 -0
  76. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/ad_groups_v3.py +0 -0
  77. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
  78. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
  79. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/budget_recommendations.py +0 -0
  80. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/budget_rules.py +0 -0
  81. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
  82. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
  83. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
  84. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/campaign_negative_targets.py +0 -0
  85. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
  86. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/campaigns_v3.py +0 -0
  87. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/campaings_optimization.py +0 -0
  88. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/keywords_v3.py +0 -0
  89. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/negative_keywords_v3.py +0 -0
  90. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
  91. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/product_ads_v3.py +0 -0
  92. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/product_recommendations.py +0 -0
  93. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/product_targeting_v3.py +0 -0
  94. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
  95. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
  96. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/stores.py +0 -0
  97. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/stream.py +0 -0
  98. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/v1/__init__.py +0 -0
  99. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/v1/ad_groups.py +0 -0
  100. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/v1/ads.py +0 -0
  101. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/v1/campaigns.py +0 -0
  102. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/v1/targets.py +0 -0
  103. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/api/validation_configurations.py +0 -0
  104. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/auth/__init__.py +0 -0
  105. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/auth/access_token_client.py +0 -0
  106. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/auth/access_token_response.py +0 -0
  107. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/auth/credentials.py +0 -0
  108. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/auth/exceptions.py +0 -0
  109. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/__init__.py +0 -0
  110. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/api_response.py +0 -0
  111. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/base_client.py +0 -0
  112. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/client.py +0 -0
  113. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/config.py +0 -0
  114. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/credential_provider.py +0 -0
  115. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/exceptions.py +0 -0
  116. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/helpers.py +0 -0
  117. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/marketplaces.py +0 -0
  118. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/ad_api/base/utils.py +0 -0
  119. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/pyproject.toml +0 -0
  120. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/python_amazon_ad_api.egg-info/SOURCES.txt +0 -0
  121. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
  122. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/python_amazon_ad_api.egg-info/requires.txt +0 -0
  123. {python_amazon_ad_api-1.2.5 → python_amazon_ad_api-1.2.7}/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.2.5
3
+ Version: 1.2.7
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
@@ -267,8 +267,8 @@ curl \
267
267
  * [Invoices](https://python-amazon-ad-api.readthedocs.io/en/latest/api/invoices.html)
268
268
  * [Billing](https://python-amazon-ad-api.readthedocs.io/en/latest/api/billing.html)
269
269
  * [Audiences](https://python-amazon-ad-api.readthedocs.io/en/latest/api/audiences.html)
270
- * [Change History open Beta](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
271
- * [Creative Assets open Beta](https://python-amazon-ad-api.readthedocs.io/en/latest/api//creative_assets.html)
270
+ * [Change History](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
271
+ * [Creative Assets](https://python-amazon-ad-api.readthedocs.io/en/latest/api/creative_assets.html)
272
272
  * [Elegibility](https://python-amazon-ad-api.readthedocs.io/en/latest/api/eligibility.html)
273
273
  * [Insights](https://python-amazon-ad-api.readthedocs.io/en/latest/api/insights.html)
274
274
  * [Localization](https://python-amazon-ad-api.readthedocs.io/en/latest/api/localization.html)
@@ -239,8 +239,8 @@ curl \
239
239
  * [Invoices](https://python-amazon-ad-api.readthedocs.io/en/latest/api/invoices.html)
240
240
  * [Billing](https://python-amazon-ad-api.readthedocs.io/en/latest/api/billing.html)
241
241
  * [Audiences](https://python-amazon-ad-api.readthedocs.io/en/latest/api/audiences.html)
242
- * [Change History open Beta](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
243
- * [Creative Assets open Beta](https://python-amazon-ad-api.readthedocs.io/en/latest/api//creative_assets.html)
242
+ * [Change History](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
243
+ * [Creative Assets](https://python-amazon-ad-api.readthedocs.io/en/latest/api/creative_assets.html)
244
244
  * [Elegibility](https://python-amazon-ad-api.readthedocs.io/en/latest/api/eligibility.html)
245
245
  * [Insights](https://python-amazon-ad-api.readthedocs.io/en/latest/api/insights.html)
246
246
  * [Localization](https://python-amazon-ad-api.readthedocs.io/en/latest/api/localization.html)
@@ -1,4 +1,4 @@
1
- from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
1
+ from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse, Utils
2
2
 
3
3
 
4
4
  class CreativeAssets(Client):
@@ -121,3 +121,71 @@ class CreativeAssets(Client):
121
121
 
122
122
  """
123
123
  return self._request(kwargs.pop('path'), params=kwargs)
124
+
125
+ @sp_endpoint('/assets/batchRegister', method='POST')
126
+ def batch_register_assets(self, **kwargs) -> ApiResponse:
127
+ r"""
128
+ Registers several uploaded assets in one call.
129
+
130
+ This route is asynchronous. It answers a ``requestId`` and nothing else,
131
+ so the result has to be read with ``get_batch_register_status``.
132
+
133
+ Request Body (required)
134
+
135
+ - ``assetDetailsList`` (array): between 1 and 50 entries, each one shaped
136
+ like the body ``register_asset`` accepts:
137
+
138
+ - ``url`` (string): where the file sits, from ``upload_asset``.
139
+ - ``name`` (string): the name to give the asset.
140
+ - ``assetType`` (string): ``IMAGE``.
141
+ - ``assetSubTypeList`` (array): ``LOGO``, ``PRODUCT_IMAGE``,
142
+ ``AUTHOR_IMAGE``, ``LIFESTYLE_IMAGE`` or ``OTHER_IMAGE``.
143
+ - ``asinList`` (array): tags the asset with ASINs, so it can be found
144
+ by product later.
145
+ - ``associatedPrograms`` (array): up to 100 entries, one per program
146
+ the asset belongs to.
147
+ - ``otherMetadata`` (object): free key-value pairs of strings.
148
+ - ``tagList`` (array): tags for the asset.
149
+ - ``versionInfo`` (object): ``linkedAssetId`` and ``versionNotes``, to
150
+ register this file as a new version of an existing asset.
151
+ - ``skipAssetSubTypesDetection`` (boolean): keep the subtype as given
152
+ instead of letting the service reclassify it.
153
+
154
+ - ``batchRegistrationContext`` (object): the context applied to the whole
155
+ batch.
156
+
157
+ Returns
158
+ ApiResponse with ``requestId``, which ``get_batch_register_status``
159
+ takes.
160
+
161
+ """
162
+ headers = {
163
+ 'Accept': 'application/vnd.assetsbatchregisterresponse.v1+json',
164
+ 'Content-Type': 'application/vnd.assetsbatchregisterrequest.v1+json',
165
+ }
166
+ body = Utils.convert_body(kwargs.pop('body'), wrap=False)
167
+ return self._request(kwargs.pop('path'), data=body, params=kwargs, headers=headers)
168
+
169
+ @sp_endpoint('/assets/batchRegister/{}', method='GET')
170
+ def get_batch_register_status(self, requestId, **kwargs) -> ApiResponse:
171
+ r"""
172
+ Reports whether a batch registration has finished.
173
+
174
+ The ``requestId`` comes from ``batch_register_assets``. An id the service
175
+ does not know answers ``400`` with
176
+ ``AARServiceBadRequestException ... No request exists for the requestId``,
177
+ not a ``404``: the route answers either way, and the message says the id
178
+ was not found.
179
+
180
+ Path
181
+
182
+ - ``requestId`` (string): required. The identifier the batch call
183
+ returned.
184
+
185
+ Returns
186
+ ApiResponse with the state of that batch.
187
+
188
+ """
189
+ headers = {'Accept': 'application/vnd.creativeassetsgetbatchregisterresponse.v3+json'}
190
+ return self._request(fill_query_params(kwargs.pop('path'), requestId),
191
+ params=kwargs, headers=headers)
@@ -0,0 +1,52 @@
1
+ from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse
2
+
3
+
4
+ class Insights(Client):
5
+ """ """
6
+
7
+ @sp_endpoint('/insights/audiences/{}/overlappingAudiences', method='GET')
8
+ def get_insights(self, audienceId: str, version: int = 2, **kwargs) -> ApiResponse:
9
+ r"""
10
+ Returns the audiences that overlap with the one given, ranked by affinity.
11
+
12
+ Keyword Args
13
+
14
+ - ``version`` (int): the ``Accept`` version. **Only 2 answers**; 1 was
15
+ retired and replies ``415`` naming v2 as the sole supported type.
16
+ Defaults to 2. [optional]
17
+
18
+ Path
19
+
20
+ - ``audienceId`` (string): required. The audience to measure against.
21
+
22
+ Query
23
+
24
+ - ``adType`` (string): required in practice, ``SD`` or ``DSP``. When it
25
+ is left out the service assumes ``DSP`` and answers
26
+ ``400 Missing advertiserId parameter for DSP request``, which names the
27
+ wrong parameter. Send it explicitly.
28
+ - ``advertiserId`` (string): required for ``DSP``, ignored for ``SD``.
29
+ - ``audienceCategory`` (string): keep only audiences of that category,
30
+ such as ``"In-market"``. The contract calls it an array; a plain string
31
+ is what the service accepts and applies.
32
+ - ``maxResults`` (integer): how many overlaps to return. Default 30.
33
+ Works, and the count follows it.
34
+ - ``nextToken`` (string): token from a previous answer. Subsequent calls
35
+ must repeat the same parameters.
36
+
37
+ Three parameters are accepted and then ignored: ``minimumAudienceSize``,
38
+ ``maximumAudienceSize`` and ``minimumOverlapAffinity``. The call answers
39
+ ``200`` with the same count as without them, so a filter that was never
40
+ applied is indistinguishable from one that matched everything. Check the
41
+ count, not the status.
42
+
43
+ Returns
44
+ ApiResponse with ``requestedAudienceMetadata``, ``overlappingAudiences``,
45
+ ``marketplace`` and ``nextToken``. Each overlap carries
46
+ ``audienceMetadata`` and ``affinity``, a number where higher means a
47
+ closer match.
48
+
49
+ """
50
+ contentType = 'application/vnd.insightsaudiencesoverlap.v' + str(version) + '+json'
51
+ headers = {'Accept': contentType}
52
+ return self._request(fill_query_params(kwargs.pop('path'), audienceId), params=kwargs, headers=headers)
@@ -0,0 +1 @@
1
+ __version__ = "1.2.7"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-amazon-ad-api
3
- Version: 1.2.5
3
+ Version: 1.2.7
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
@@ -267,8 +267,8 @@ curl \
267
267
  * [Invoices](https://python-amazon-ad-api.readthedocs.io/en/latest/api/invoices.html)
268
268
  * [Billing](https://python-amazon-ad-api.readthedocs.io/en/latest/api/billing.html)
269
269
  * [Audiences](https://python-amazon-ad-api.readthedocs.io/en/latest/api/audiences.html)
270
- * [Change History open Beta](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
271
- * [Creative Assets open Beta](https://python-amazon-ad-api.readthedocs.io/en/latest/api//creative_assets.html)
270
+ * [Change History](https://python-amazon-ad-api.readthedocs.io/en/latest/api/history.html)
271
+ * [Creative Assets](https://python-amazon-ad-api.readthedocs.io/en/latest/api/creative_assets.html)
272
272
  * [Elegibility](https://python-amazon-ad-api.readthedocs.io/en/latest/api/eligibility.html)
273
273
  * [Insights](https://python-amazon-ad-api.readthedocs.io/en/latest/api/insights.html)
274
274
  * [Localization](https://python-amazon-ad-api.readthedocs.io/en/latest/api/localization.html)
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = python-amazon-ad-api
3
- version = 1.2.5
3
+ version = 1.2.7
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.2.5',
5
+ version='1.2.7',
6
6
  install_requires=[
7
7
  "requests>=2.27.1,<2.35.0",
8
8
  "six>=1.16,<1.18",
@@ -1,42 +0,0 @@
1
- from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse
2
-
3
-
4
- class Insights(Client):
5
- """ """
6
-
7
- @sp_endpoint('/insights/audiences/{}/overlappingAudiences', method='GET')
8
- def get_insights(self, audienceId: str, version: int = 1, **kwargs) -> ApiResponse:
9
- r"""
10
- get_insights(audienceId: str, version: int = 1, **kwargs) -> ApiResponse
11
-
12
- Retrieves the top audiences that overlap with the provided audience.
13
-
14
- Requires one of these permissions: ["advertiser_campaign_edit","advertiser_campaign_view"]
15
-
16
- path **audienceId**:string | Required. The identifier of an audience.
17
-
18
- internal **version**:int | Optional. The version of the overlapping audiences accept 'application/vnd.insightsaudiencesoverlap.v'+str(version)+'+json'. Available values : 1, 2 Default: 1
19
-
20
- query **adType**:string | Required. The advertising program. Available values : DSP, SD
21
-
22
- query **advertiserId**:string | Optional. The identifier of the advertiser you'd like to retrieve overlapping audiences for. This parameter is required for the DSP adType, but is optional for the SD adType.
23
-
24
- query **minimumAudienceSize**:number | Optional. If specified, the sizes of all returned overlapping audiences will be at least the provided size. This parameter is supported only for request to return application/vnd.insightsaudiencesoverlap.v1+json.
25
-
26
- query **maximumAudienceSize**:number | Optional. If specified, the sizes of all returned overlapping audiences will be at most the provided size. This parameter is supported only for request to return application/vnd.insightsaudiencesoverlap.v1+json.
27
-
28
- query **minimumOverlapAffinity**:number | Optional. If specified, the affinities of all returned overlapping audiences will be at least the provided affinity.
29
-
30
- query **maximumOverlapAffinity**:number | Optional. If specified, the affinities of all returned overlapping audiences will be at most the provided affinity.
31
-
32
- query **audienceCategory**:array[string] | Optional. f specified, the categories of all returned overlapping audiences will be one of the provided categories.
33
-
34
- query **maxResults**:integer | Optional. Sets the maximum number of overlapping audiences in the response. This parameter is supported only for request to return application/vnd.insightsaudiencesoverlap.v2+json. Default value : 30
35
-
36
- query **nextToken**:string | Optional. TToken to be used to request additional overlapping audiences. If not provided, the top 30 overlapping audiences are returned. Note: subsequent calls must be made using the same parameters as used in previous requests.
37
-
38
- """
39
-
40
- contentType = 'application/vnd.insightsaudiencesoverlap.v' + str(version) + '+json'
41
- headers = {'Accept': contentType}
42
- return self._request(fill_query_params(kwargs.pop('path'), audienceId), params=kwargs, headers=headers)
@@ -1 +0,0 @@
1
- __version__ = "1.2.5"