Python Amazon Advertising Api
pip install python-amazon-ad-api
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=PRODUCTION
You 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/register
Use 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-api
where the APPDATA environment variable falls back to%HOME%\AppData\Roaming
if undefined
- Ad Groups
- Bid Recommendations
- Campaigns
- Keywords
- Negative Keywords
- Product Ads
- Suggested Keywords
- Product Targeting
- Negative Product Targeting
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(Marketplaces.ES).list_campaigns_extended(
stateFilter=states
)
campaigns = res.payload
for campaign in campaigns:
logging.info(campaign)
logging.info(len(campaigns))
except AdvertisingApiException as ex:
print(ex)