Python Amazon Advertising Api
pip install python-amazon-ad-api
If you find this project is useful consider donating to keep on going on it, thank you.
Create a .env file and put in the root of your project ( SANDBOX or PRODUCTION )
# environment variables defined inside a .env file
AWS_ENV=SANDBOX
.
├── .env
└── campaign_client.py
Use a .env to manage the environment. Is high recommended try the SANDBOX environment as some features may delete (archive) modules as campaigns, ad groups,...etc and this cannot be undone.
AWS_ENV=SANDBOX
# AWS_ENV=PRODUCTIONYou may create a test profile id to include in your credentials with a curl command, note the {"countryCode":"ES"} that refers to the marketplace you will operate.
curl \
-X PUT \
-H "Content-Type:application/json" \
-H "Authorization: Bearer Your-Token \
-H "Amazon-Advertising-API-ClientId: your-client-id" \
--data '{"countryCode":"ES"}' \
https://advertising-api-test.amazon.com/v2/profiles/registerUse a credentials.yml file with your credentials if you dont know how to obtain your refresh token, please visit:
version: '1.0'
default:
refresh_token: 'your-refresh-token'
client_id: 'your-client-id'
client_secret: 'your-client-secret'
profile_id: 'your-profile-id'- macOS and Other Unix:
~/.config/python-ad-api - Windows:
%APPDATA%\python-ad-apiwhere the APPDATA environment variable falls back to%HOME%\AppData\Roamingif undefined
- Profiles
- Invoices aka Billing
- Elegibility
- Metadata aka Product metadata
- History
- Localization
- Audiences
- Portfolios
- Insights
- Ad Groups
- Bid Recommendations
- Campaigns
- Keywords
- Negative Keywords
- Product Ads
- Suggested Keywords
- Product Targeting
- Negative Product Targeting
- Campaign Negative Keywords
- Reports
- Snapshots
- Budget Rules
- Campaign Optimization Rules
- Ranked Keywords Recommendations
- Product Targeting
- Budget Recommendations
- Budget Rules Recommendations
- Product Recommendations
- Campaigns
- Ad Groups
- Keywords
- Negative Keywords
- Product Targeting
- Negative Product Targeting
- Targeting Recommendations
- Bid Recommendations
- Stores
- Landing Page Asins
- Media
- Brands
- Moderation
- Reports
- Campaigns
- Ad Groups
- Reports
- Product Ads
- Targets
- Negative Targets
- Targets Recommendations
- Bid Recommendations
- Creatives
import logging
from ad_api.base import AdvertisingApiException, Marketplaces
from ad_api.api.sp import Campaigns
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s:%(levelname)s:%(message)s"
)
try:
states = 'enabled'
res = Campaigns().list_campaigns_extended(
stateFilter=states
)
campaigns = res.payload
for campaign in campaigns:
logging.info(campaign)
logging.info(len(campaigns))
except AdvertisingApiException as error:
logging.info(error)
