python-amazon-ad-api 1.5.1__tar.gz → 1.5.3__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.
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/PKG-INFO +3 -1
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/README.md +2 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/__init__.py +4 -0
- python_amazon_ad_api-1.5.3/ad_api/api/v1/manager_accounts.py +110 -0
- python_amazon_ad_api-1.5.3/ad_api/api/v1/recommendations.py +87 -0
- python_amazon_ad_api-1.5.3/ad_api/version.py +1 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/python_amazon_ad_api.egg-info/PKG-INFO +3 -1
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/python_amazon_ad_api.egg-info/SOURCES.txt +2 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/setup.cfg +1 -1
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/setup.py +1 -1
- python_amazon_ad_api-1.5.1/ad_api/version.py +0 -1
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/LICENSE +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/__init__.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/__init__.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/account.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/account_budgets.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/advertising_test_account.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/attribution.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/audiences.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/billing.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/brand_metrics.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/creative_assets.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/eligibility.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/exports.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/history.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/insights.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/invoices.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/localization.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/manager_accounts.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/metadata.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/portfolios.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/portfolios_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/profiles.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/reports.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/__init__.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/ad_creatives_v4.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/ad_groups.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/ad_groups_v4.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/ads_v4.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/benchmarks.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/bid_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/brands.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/budget_rules.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/campaigns.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/campaigns_v4.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/forecast.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/keywords.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/keywords_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/landing_page_asins.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/media.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/migration.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/negative_keywords.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/negative_product_targeting.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/optimization_rules.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/product_targeting.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/reports.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/stores.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/targeting_categories.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/targeting_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/themes.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/__init__.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/ad_groups.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/bid_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/brand_safety.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/budget_rules.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/campaigns.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/creatives.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/forecast.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/negative_product_targeting.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/product_ads.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/product_targeting.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/reports.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/snapshots.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/targeting_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/__init__.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/ad_groups_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/budget_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/budget_rules.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaign_negative_targets.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaigns_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaings_optimization.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/keywords_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/negative_keywords_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/product_ads_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/product_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/product_targeting_v3.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/stores.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/stream.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/ad_associations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/ad_extensions.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/ad_groups.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/ads.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/advertiser_accounts.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/brand_store_edition_publish_versions.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/brand_store_editions.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/brand_store_pages.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/brand_stores.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/campaigns.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/labels.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/reports.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/targets.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/validation_configurations.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/auth/__init__.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/auth/access_token_client.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/auth/access_token_response.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/auth/credentials.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/auth/exceptions.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/__init__.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/api_response.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/base_client.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/client.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/config.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/credential_provider.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/exceptions.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/helpers.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/marketplaces.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/utils.py +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/pyproject.toml +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/python_amazon_ad_api.egg-info/requires.txt +0 -0
- {python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/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.
|
|
3
|
+
Version: 1.5.3
|
|
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
|
|
@@ -313,6 +313,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
|
|
|
313
313
|
* [Brand Store Pages](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_pages.html#ad_api.api.v1.BrandStorePages.BrandStorePages.query_brand_store_pages)
|
|
314
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
|
+
* [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)
|
|
316
318
|
|
|
317
319
|
|
|
318
320
|
### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
|
|
@@ -285,6 +285,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
|
|
|
285
285
|
* [Brand Store Pages](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_pages.html#ad_api.api.v1.BrandStorePages.BrandStorePages.query_brand_store_pages)
|
|
286
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
|
+
* [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)
|
|
288
290
|
|
|
289
291
|
|
|
290
292
|
### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
|
|
@@ -11,6 +11,8 @@ from .brand_store_editions import BrandStoreEditions
|
|
|
11
11
|
from .brand_store_pages import BrandStorePages
|
|
12
12
|
from .reports import Reports
|
|
13
13
|
from .labels import Labels
|
|
14
|
+
from .manager_accounts import ManagerAccounts
|
|
15
|
+
from .recommendations import Recommendations
|
|
14
16
|
|
|
15
17
|
__all__ = [
|
|
16
18
|
"Campaigns",
|
|
@@ -26,4 +28,6 @@ __all__ = [
|
|
|
26
28
|
"BrandStorePages",
|
|
27
29
|
"Reports",
|
|
28
30
|
"Labels",
|
|
31
|
+
"ManagerAccounts",
|
|
32
|
+
"Recommendations",
|
|
29
33
|
]
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ManagerAccounts(Client):
|
|
5
|
+
r"""
|
|
6
|
+
ManagerAccounts(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, debug=False)
|
|
7
|
+
|
|
8
|
+
Amazon Ads API v1 - unified ManagerAccounts endpoints
|
|
9
|
+
|
|
10
|
+
Three routes, no delete in the contract:
|
|
11
|
+
|
|
12
|
+
POST /adsApi/v1/create/managerAccounts
|
|
13
|
+
POST /adsApi/v1/query/managerAccounts
|
|
14
|
+
POST /adsApi/v1/update/managerAccounts
|
|
15
|
+
|
|
16
|
+
This family is not about ad products, so no adProductFilter appears
|
|
17
|
+
anywhere. The query declares no required member at all: an empty body is a
|
|
18
|
+
valid request and returns every manager account the caller can see.
|
|
19
|
+
|
|
20
|
+
Both write routes take up to 10 accounts per call and answer a multi-status
|
|
21
|
+
with success[] and error[] indexed the same way.
|
|
22
|
+
|
|
23
|
+
Alongside this class the package keeps the legacy manager account reader as
|
|
24
|
+
ad_api.api.ManagerAccounts; the two live in different packages and do not
|
|
25
|
+
shadow each other.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
@sp_endpoint('/adsApi/v1/query/managerAccounts', method='POST')
|
|
29
|
+
def query_manager_accounts(self, **kwargs) -> ApiResponse:
|
|
30
|
+
r"""
|
|
31
|
+
query_manager_accounts(body: dict) -> ApiResponse
|
|
32
|
+
|
|
33
|
+
Amazon Ads API v1 - Query Manager Accounts (operationId: QueryManagerAccount)
|
|
34
|
+
|
|
35
|
+
Request Body [All optional]
|
|
36
|
+
| **managerAccountIdFilter** (dict)
|
|
37
|
+
| **include** (list<string>) : 1..100 identifiers
|
|
38
|
+
| **maxResults** (int) : 10..100, default 100
|
|
39
|
+
| **nextToken** (string) : token to navigate to the next page
|
|
40
|
+
|
|
41
|
+
Returns
|
|
42
|
+
| **managerAccounts** (list<ManagerAccount>) : 0..100
|
|
43
|
+
| **displayName** (string)
|
|
44
|
+
| **managerAccountId** (string)
|
|
45
|
+
| **currencyCode** (CurrencyCode)
|
|
46
|
+
| **timeZoneIana** (TimeZoneIana)
|
|
47
|
+
| **industryVertical** (IndustryVertical)
|
|
48
|
+
| **accountUsageType** (AccountUsageType)
|
|
49
|
+
| **businessDetails** (BusinessDetail)
|
|
50
|
+
| **nextToken** (string)
|
|
51
|
+
|
|
52
|
+
maxResults starts at 10: a value below that is a rejected body, not a
|
|
53
|
+
smaller page.
|
|
54
|
+
"""
|
|
55
|
+
schema_version = 'application/json'
|
|
56
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
57
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
58
|
+
|
|
59
|
+
@sp_endpoint('/adsApi/v1/create/managerAccounts', method='POST')
|
|
60
|
+
def create_manager_accounts(self, **kwargs) -> ApiResponse:
|
|
61
|
+
r"""
|
|
62
|
+
create_manager_accounts(body: dict) -> ApiResponse
|
|
63
|
+
|
|
64
|
+
Amazon Ads API v1 - Create Manager Accounts (operationId: CreateManagerAccount)
|
|
65
|
+
|
|
66
|
+
Request Body [Required]
|
|
67
|
+
| **managerAccounts** (list<ManagerAccountCreate>) : [required] 1..10
|
|
68
|
+
| **displayName** (string) : required on create
|
|
69
|
+
| **currencyCode** (CurrencyCode)
|
|
70
|
+
| **timeZoneIana** (TimeZoneIana)
|
|
71
|
+
| **industryVertical** (IndustryVertical)
|
|
72
|
+
| **accountUsageType** (AccountUsageType)
|
|
73
|
+
| **businessDetails** (CreateBusinessDetail)
|
|
74
|
+
|
|
75
|
+
Answer
|
|
76
|
+
207 MultiStatus: success[] carries the created accounts with their
|
|
77
|
+
index, error[] the index and reason of the refused ones.
|
|
78
|
+
|
|
79
|
+
This route creates an account in the manager hierarchy. It is not a
|
|
80
|
+
read and not something to fire to see what happens.
|
|
81
|
+
"""
|
|
82
|
+
schema_version = 'application/json'
|
|
83
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
84
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
85
|
+
|
|
86
|
+
@sp_endpoint('/adsApi/v1/update/managerAccounts', method='POST')
|
|
87
|
+
def update_manager_accounts(self, **kwargs) -> ApiResponse:
|
|
88
|
+
r"""
|
|
89
|
+
update_manager_accounts(body: dict) -> ApiResponse
|
|
90
|
+
|
|
91
|
+
Amazon Ads API v1 - Update Manager Accounts (operationId: UpdateManagerAccount)
|
|
92
|
+
|
|
93
|
+
Request Body [Required]
|
|
94
|
+
| **managerAccounts** (list<ManagerAccountUpdate>) : [required] 1..10
|
|
95
|
+
| **managerAccountId** (string) : the account to change
|
|
96
|
+
| **displayName** (string)
|
|
97
|
+
| **currencyCode** (CurrencyCode)
|
|
98
|
+
| **timeZoneIana** (TimeZoneIana)
|
|
99
|
+
| **industryVertical** (IndustryVertical)
|
|
100
|
+
| **businessDetails** (UpdateBusinessDetail)
|
|
101
|
+
|
|
102
|
+
Answer
|
|
103
|
+
207 MultiStatus, indexed the same way as create.
|
|
104
|
+
|
|
105
|
+
businessDetails uses the Update variant of each nested object, so a
|
|
106
|
+
body copied from create is not interchangeable here.
|
|
107
|
+
"""
|
|
108
|
+
schema_version = 'application/json'
|
|
109
|
+
headers = {"Accept": schema_version, "Content-Type": schema_version}
|
|
110
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
@@ -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 @@
|
|
|
1
|
+
__version__ = "1.5.3"
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/python_amazon_ad_api.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-amazon-ad-api
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.3
|
|
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
|
|
@@ -313,6 +313,8 @@ The v1 API lives under `/adsApi/v1/` and is **not** split by product: every call
|
|
|
313
313
|
* [Brand Store Pages](https://python-amazon-ad-api.readthedocs.io/en/latest/v1/brand_store_pages.html#ad_api.api.v1.BrandStorePages.BrandStorePages.query_brand_store_pages)
|
|
314
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
|
+
* [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)
|
|
316
318
|
|
|
317
319
|
|
|
318
320
|
### [Modules Available Sponsored Products](https://python-amazon-ad-api.readthedocs.io/en/latest/sp.html)
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/python_amazon_ad_api.egg-info/SOURCES.txt
RENAMED
|
@@ -106,6 +106,8 @@ ad_api/api/v1/brand_store_pages.py
|
|
|
106
106
|
ad_api/api/v1/brand_stores.py
|
|
107
107
|
ad_api/api/v1/campaigns.py
|
|
108
108
|
ad_api/api/v1/labels.py
|
|
109
|
+
ad_api/api/v1/manager_accounts.py
|
|
110
|
+
ad_api/api/v1/recommendations.py
|
|
109
111
|
ad_api/api/v1/reports.py
|
|
110
112
|
ad_api/api/v1/targets.py
|
|
111
113
|
ad_api/auth/__init__.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.5.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/advertising_test_account.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/bid_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/keywords_recommendations.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/landing_page_asins.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/negative_keywords.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/optimization_rules.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/product_targeting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/targeting_categories.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sb/targeting_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/bid_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/campaigns_budget_usage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/product_targeting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sd/targeting_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/bid_recommendations_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/budget_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaign_negative_targets.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaigns_budget_usage.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/campaings_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/negative_keywords_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/product_recommendations.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/sp/product_targeting_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/advertiser_accounts.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/brand_store_editions.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/v1/brand_store_pages.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/api/validation_configurations.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/auth/access_token_client.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/auth/access_token_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/ad_api/base/credential_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.5.1 → python_amazon_ad_api-1.5.3}/python_amazon_ad_api.egg-info/requires.txt
RENAMED
|
File without changes
|
|
File without changes
|