Aperçu
Les marques manquent le contenu UGC généré par les utilisateurs sur TikTok concernant leurs produits, car TikTok ne propose pas de surveillance native pour les publications organiques. Ce workflow recherche quotidiennement les mentions de marque via des hashtags et mots-clés, collecte les métadonnées et l'engagement des vidéos, et met en avant les UGC performants que la marque peut amplifier ou auxquels répondre.
Déclencheur
Planification quotidienne à 10h UTC.
Planification
Tous les jours à 10h UTC
Étapes du workflow
Configurer les mots-clés et hashtags de marque
Définissez les variantes du nom de marque, les noms de produits et les hashtags de campagne à surveiller sur TikTok.
Rechercher TikTok pour les mentions de marque
Recherchez TikTok pour chaque mot-clé et hashtag. Collectez les descriptions de vidéos, les métriques d'engagement et les infos créateur.
Filtrer et dédoublonner les résultats
Supprimez les vidéos en double des recherches qui se chevauchent. Filtrez par nombre de vues minimum ou seuil d'engagement.
Classer le contenu et le sentiment
Catégorisez chaque vidéo comme avis positif, unboxing, plainte, tutoriel ou autre. Extrayez les signaux de sentiment des descriptions.
Générer un résumé UGC
Compilez un résumé quotidien avec les meilleurs UGC, les nouveaux créateurs mentionnant la marque, et tout contenu négatif nécessitant une réponse.
Implémentation Python
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
TT_H = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
def monitor_ugc(keyword: str) -> list:
resp = requests.post(
"https://api.scavio.dev/api/v1/tiktok/search",
headers=TT_H,
json={"query": keyword, "type": "video"},
timeout=15,
)
data = resp.json()
videos = []
for v in data.get("videos", []):
videos.append({
"desc": v.get("desc", ""),
"author": v.get("author", {}).get("uniqueId", ""),
"plays": v.get("stats", {}).get("play_count", 0),
"likes": v.get("stats", {}).get("digg_count", 0),
"comments": v.get("stats", {}).get("comment_count", 0),
"url": f"https://www.tiktok.com/@{v.get('author', {}).get('uniqueId', '')}/video/{v.get('id', '')}",
})
return sorted(videos, key=lambda x: x["plays"], reverse=True)
brand_keywords = ["mybrand review", "mybrand unboxing"]
all_ugc = []
for kw in brand_keywords:
all_ugc.extend(monitor_ugc(kw))
print(f"Found {len(all_ugc)} UGC videos")
for v in all_ugc[:5]:
print(f" @{v['author']}: {v['plays']:,} plays | {v['desc'][:60]}")Implémentation JavaScript
const H = {'Authorization': 'Bearer ' + process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function monitorUgc(keyword) {
const r = await fetch('https://api.scavio.dev/api/v1/tiktok/search', {method:'POST', headers:H, body:JSON.stringify({query:keyword, type:'video'})});
const d = await r.json();
return (d.videos||[]).map(v=>({desc:v.desc, author:v.author?.uniqueId, plays:v.stats?.play_count||0, likes:v.stats?.digg_count||0})).sort((a,b)=>b.plays-a.plays);
}
const ugc = await monitorUgc('mybrand review');
console.log(ugc.length+' UGC videos found');
ugc.slice(0,5).forEach(v=>console.log('@'+v.author+': '+v.plays+' plays'));Plateformes utilisées
TikTok
Découverte de vidéos tendance, créateurs et produits