Overview
This workflow monitors TikTok UGC campaign performance daily by collecting metrics from all participating creators. It queries each creator's recent posts, filters for campaign-tagged content, aggregates views and engagement, and generates a daily performance dashboard. Cost: $0.005/creator/day. A 30-creator campaign costs $0.15/day to monitor.
Trigger
Cron schedule (daily at 11 AM UTC)
Schedule
Runs daily at 11:00 AM UTC
Workflow Steps
Load campaign creators
Read the list of participating TikTok creators and campaign hashtag.
Pull creator posts
Query Scavio TikTok API for each creator's recent posts.
Filter campaign content
Match posts containing the campaign hashtag.
Aggregate metrics
Sum views, likes, comments across all campaign content.
Generate daily report
Output per-creator and aggregate campaign metrics.
Python Implementation
import requests
import json
from datetime import datetime
API_KEY = "your_scavio_api_key"
CAMPAIGN_HASHTAG = "YourCampaign"
def monitor_campaign(creators: list[str]) -> dict:
all_posts = []
for creator in creators:
res = requests.post(
"https://api.scavio.dev/api/v1/tiktok/user/posts",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"username": creator},
timeout=15,
)
if not res.ok:
continue
posts = res.json().get("posts", [])
campaign_posts = [p for p in posts if CAMPAIGN_HASHTAG.lower() in " ".join(p.get("hashtags", [])).lower()]
for p in campaign_posts:
all_posts.append({
"creator": creator,
"video_id": p.get("id"),
"views": p.get("views", 0),
"likes": p.get("likes", 0),
"comments": p.get("comments", 0),
})
total_views = sum(p["views"] for p in all_posts)
total_likes = sum(p["likes"] for p in all_posts)
report = {
"date": datetime.utcnow().strftime("%Y-%m-%d"),
"campaign": CAMPAIGN_HASHTAG,
"creators_checked": len(creators),
"campaign_posts": len(all_posts),
"total_views": total_views,
"total_likes": total_likes,
"engagement_rate": round(total_likes / max(total_views, 1) * 100, 2),
}
print(f"Campaign {CAMPAIGN_HASHTAG}: {len(all_posts)} posts, {total_views:,} views, {report['engagement_rate']}% engagement")
return report
monitor_campaign(["creator_a", "creator_b", "creator_c"])JavaScript Implementation
const API_KEY = "your_scavio_api_key";
const CAMPAIGN = "YourCampaign";
async function monitorCampaign(creators) {
let totalViews = 0, totalPosts = 0;
for (const creator of creators) {
const res = await fetch("https://api.scavio.dev/api/v1/tiktok/user/posts", {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({ username: creator }),
});
if (!res.ok) continue;
const posts = (await res.json()).posts ?? [];
const campaign = posts.filter((p) => (p.hashtags ?? []).some((h) => h.toLowerCase().includes(CAMPAIGN.toLowerCase())));
totalPosts += campaign.length;
totalViews += campaign.reduce((s, p) => s + (p.views ?? 0), 0);
}
console.log(`Campaign: ${totalPosts} posts, ${totalViews.toLocaleString()} views`);
}
await monitorCampaign(["creator_a", "creator_b"]);Platforms Used
TikTok
Trending video, creator, and product discovery