Platforms
adduck connects to six ad networks. You don't need all of them -- connect just the ones you use. Each platform's credentials are stored in your adduck.json and only used to make API calls directly from your machine.
At a glance
| Platform | Credentials | Auth type | Setup time |
|---|---|---|---|
| Apple Search Ads | clientId, teamId, keyId, orgId, privateKey | JWT / PEM key | ~5 min |
| Reddit Ads | clientId, clientSecret, refreshToken, accountId | OAuth 2.0 | ~2 min |
| Meta Ads | accessToken, adAccountId | Access token | ~2 min |
| AppLovin | reportKey, managementKey (optional) | API key | ~1 min |
| Unity Ads | organizationId, serviceAccountKeyId, serviceAccountSecret | Service account | ~2 min |
| ironSource | secretKey, refreshToken | API key + OAuth | ~2 min |
Connecting a platform
The interactive wizard prompts for each credential and validates the connection before saving. Once you've connected a platform, it shows up in adduck spend, adduck campaigns, and all other commands automatically.
Checking connections
$ adduck auth list PLATFORM STATUS ACCOUNT ───────────────────────────────────── apple connected Org 123456 (2 accounts) reddit connected t2_myaccount connected act_987654321 applovin not set unity not set ironsource not set
Removing a platform
Removes the credentials from adduck.json. Doesn't revoke anything on the platform side -- you'd need to do that in each network's dashboard.
Security
Credentials are stored in plain text in adduck.json. Keep this file out of version control. Add it to .gitignore:
echo "adduck.json" >> .gitignore If you're using adduck in CI, use environment variable references in adduck.json and pass the real values via secrets. See the Projects docs for the $VAR_NAME syntax.