TikTok Ads
Create campaigns and Spark Ads via Zernio API - No TikTok Business Center developer onboarding required
Requires the Ads add-on. No TikTok Business Center developer onboarding needed. Connect via OAuth and start building.
What's Supported
| Feature | Status |
|---|---|
| Standalone campaigns (Campaign > Ad Group > Ad) | Yes |
| Spark Ads (boost organic videos) | Yes |
| Custom Audiences + Lookalikes | Yes |
| Age, gender, location, interest targeting | Yes |
| Video creative from URL | Yes |
| Real-time analytics (spend, views, CTR, CPM) | Yes |
| Catalog / TikTok Shop ads | Roadmap |
| Chunked video upload + async transcode | Roadmap |
Create a Spark Ad (Boost)
const ad = await zernio.ads.boostPost({ body: {
postId: "POST_ID",
accountId: "ACCOUNT_ID",
adAccountId: "7123456789012345678",
name: "Boost viral video",
goal: "engagement",
budget: { amount: 50, type: "daily" },
schedule: { startDate: "2026-04-20", endDate: "2026-04-27" },
}});ad = client.ads.boost_post(
post_id="POST_ID",
account_id="ACCOUNT_ID",
ad_account_id="7123456789012345678",
name="Boost viral video",
goal="engagement",
budget={"amount": 50, "type": "daily"},
schedule={"startDate": "2026-04-20", "endDate": "2026-04-27"},
)curl -X POST "https://zernio.com/api/v1/ads/boost" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"postId": "POST_ID",
"accountId": "ACCOUNT_ID",
"adAccountId": "7123456789012345678",
"platform": "tiktokads",
"name": "Boost viral video",
"goal": "engagement",
"budget": { "amount": 50, "type": "daily" },
"schedule": { "startDate": "2026-04-20", "endDate": "2026-04-27" }
}'Spark Ads retain the creator's identity, organic engagement signals, and follower handle.
Create a Standalone Campaign
const ad = await zernio.ads.createStandaloneAd({ body: {
accountId: "acc_tiktokads_123",
adAccountId: "7123456789012345678",
name: "Spring launch",
goal: "conversions",
budgetAmount: 100,
budgetType: "daily",
headline: "Spring drop is live",
callToAction: "SHOP_NOW",
linkUrl: "https://example.com/spring",
imageUrl: "https://cdn.example.com/launch.mp4",
countries: ["US"],
ageMin: 18,
ageMax: 34,
}});ad = client.ads.create_standalone_ad(
account_id="acc_tiktokads_123",
ad_account_id="7123456789012345678",
name="Spring launch",
goal="conversions",
budget_amount=100,
budget_type="daily",
headline="Spring drop is live",
call_to_action="SHOP_NOW",
link_url="https://example.com/spring",
image_url="https://cdn.example.com/launch.mp4",
countries=["US"],
age_min=18,
age_max=34,
)curl -X POST "https://zernio.com/api/v1/ads/create" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "tiktokads",
"accountId": "acc_tiktokads_123",
"adAccountId": "7123456789012345678",
"name": "Spring launch",
"goal": "conversions",
"budget": { "amount": 100, "type": "daily" },
"creative": {
"videoUrl": "https://cdn.example.com/launch.mp4",
"headline": "Spring drop is live",
"callToAction": "SHOP_NOW",
"landingPageUrl": "https://example.com/spring"
},
"targeting": {
"age_groups": ["AGE_18_24", "AGE_25_34"],
"locations": [{ "id": "6252001", "name": "United States" }]
}
}'Media Requirements
| Type | Format | Max Size | Notes |
|---|---|---|---|
| Video | MP4, MOV, MPEG | 500 MB | 9:16 vertical, 720p+, 5-60 sec |
| Image | JPEG, PNG | 30 MB | 1080x1920 for full-screen |