Automizer scopé à une campagne
Une règle Automizer peut être globale (toutes les campagnes) ou scopée à UNE campagne (
automation_rules.campaign_id). Le scope par campagne est ce qui te permet de faire des kill-switches précis sans casser le reste du compte.

Concept
Le moteur Automizer tourne en background toutes les 60 secondes : il évalue chaque règle active, vérifie si SES conditions matchent les stats de la fenêtre temporelle indiquée, et si OUI déclenche les actions associées (pause campagne, change budget, etc.).
Deux scopes possibles :
- Global (
campaign_id: null) : la règle s'applique à TOUTES les campagnes — pratique pour des règles transverses (ex : "pause tout ce qui a un bot_rate > 80 %"). - Scopée campagne (
campaign_id: 42) : la règle ne regarde QUE les stats de la campagne 42 — pratique pour les kill switches ciblés et les règles A/B test.
Sur Trackily, l'usage 70/30 penche vers le scopé : tu veux contrôler tes campagnes une par une avec des seuils personnalisés (le seuil acceptable de coût pour MemoMind est différent de celui d'une campagne crypto).
Comment faire — via MCP
Tool : create_automizer_rule (scope automizer:write, Tier-2 — confirm_token requis).
Étape 1 — Preview
{
"name": "create_automizer_rule",
"arguments": {
"name": "Kill MemoMind FR si CPA > $40",
"campaign_id": 8,
"conditions": [
{ "metric": "cost", "operator": ">", "value": 40, "window": "24h" },
{ "metric": "conversions", "operator": "<", "value": 1, "window": "24h" }
],
"actions": [
{ "type": "pause_campaign" }
],
"check_interval_minutes": 15,
"is_active": true
}
}
Réponse :
{
"status": "preview",
"summary": "Create Automizer rule \"Kill MemoMind FR si CPA > $40\" — checked every 15 min, active on save, scoped to campaign #8.",
"preview": { "name": "...", "conditions": [...], "actions": [...], "warnings": [] },
"token": "ctok_..."
}
Étape 2 — Confirm
{
"name": "create_automizer_rule",
"arguments": {
"name": "Kill MemoMind FR si CPA > $40",
"campaign_id": 8,
"conditions": [...],
"actions": [...],
"check_interval_minutes": 15,
"is_active": true,
"confirm_token": "ctok_..."
}
}
La règle est insérée dans automation_rules, démarrera au prochain tick du scheduler (≤60 s).
Voir code source : autopilot-actions.js:670 (toolCreateAutomizerRule) et autopilot-actions.js:1044 (registration).
Logique AND
TOUTES les conditions doivent matcher pour que les actions se déclenchent (logique AND implicite). Pas de mode OR dans Trackily — si tu veux OR, fais 2 règles séparées.
Exemple : cost > 40 AND conversions < 1 ne pause que si AUCUNE conversion en 24h ET le coût a dépassé $40. Si tu fais 1 conversion à $35 puis 0 jusqu'à $50, la règle déclenche au moment où cost > 40 AND conversions = 1 devient cost > 40 AND conversions < 1… qui n'arrive jamais (conversions ne descend pas). Adapte les seuils.
Métriques engine reconnues
clicks— total clicks dans la fenêtre.conversions— total conversions dans la fenêtre.revenue— revenu cumulé.cost— coût cumulé.profit— revenu - coût.roi— (revenu - coût) / coût.cr— conversion rate (%).epc— earnings per click.bot_rate— % de clics filtrés bots.
Fenêtres : 1h, 6h, 24h, 7d. (Le moteur accepte aussi 3h, 12h — voir automizer/conditions.)
Actions
pause_campaign—is_active=falsesur la campagne. Trafic stoppé immédiatement.resume_campaign— inverse de la précédente.change_budget— pour les sources qui supportent l'API budget (Meta, TikTok, Google) :{ "type": "change_budget", "amount": -20, "unit": "pct" }pause_landing/resume_landing.pause_offer/resume_offer.notify_email— envoie un email avec le résumé.notify_webhook— fire un webhook avec le payload.
Voir automizer/rules pour la liste complète.
Exemples
Kill switch — pause si trop dépensé sans conversion
{
"name": "create_automizer_rule",
"arguments": {
"name": "Kill — MemoMind FR — 24h sans conv",
"campaign_id": 8,
"conditions": [
{ "metric": "cost", "operator": ">=", "value": 50, "window": "24h" },
{ "metric": "conversions", "operator": "=", "value": 0, "window": "24h" }
],
"actions": [{ "type": "pause_campaign" }],
"check_interval_minutes": 30,
"is_active": true
}
}
Bot filter aggressif sur une campagne push
{
"name": "create_automizer_rule",
"arguments": {
"name": "Pause si bot_rate > 70 % — Kadam",
"campaign_id": 8,
"conditions": [
{ "metric": "bot_rate", "operator": ">", "value": 70, "window": "1h" },
{ "metric": "clicks", "operator": ">", "value": 50, "window": "1h" }
],
"actions": [{ "type": "pause_campaign" }],
"check_interval_minutes": 5
}
}
La condition clicks > 50 évite les faux positifs sur petite volumétrie.
Boost budget si ROI > 200 %
{
"name": "create_automizer_rule",
"arguments": {
"name": "Scale — MemoMind FR — ROI 2x",
"campaign_id": 8,
"conditions": [
{ "metric": "roi", "operator": ">", "value": 2, "window": "6h" },
{ "metric": "conversions", "operator": ">", "value": 10, "window": "6h" }
],
"actions": [{ "type": "change_budget", "amount": 30, "unit": "pct" }],
"check_interval_minutes": 60
}
}
Règle globale (pas de campaign_id)
{
"name": "create_automizer_rule",
"arguments": {
"name": "Alert — bot_rate global > 50 %",
"conditions": [
{ "metric": "bot_rate", "operator": ">", "value": 50, "window": "1h" }
],
"actions": [{ "type": "notify_email" }],
"check_interval_minutes": 10
}
}
Sans campaign_id, la règle évalue le bot_rate agrégé toutes campagnes confondues.
Workflow A/B test + kill-switch
Tu lances un A/B test 50/50 sur une campagne. La variante B sous-performe au-delà du raisonnable, tu veux qu'elle se pause auto.
- Crée le flow A/B (voir ab-testing).
- Crée une règle scopée à la campagne :
{ "name": "create_automizer_rule", "arguments": { "name": "B-killswitch — MemoMind variant B", "campaign_id": 8, "conditions": [ { "metric": "clicks", "operator": ">=", "value": 500, "window": "24h" }, { "metric": "conversions", "operator": "<", "value": 5, "window": "24h" } ], "actions": [{ "type": "pause_landing", "landing_id": 18 }], "check_interval_minutes": 30 } } - Quand la règle déclenche,
landing #18(variante B) est désactivée, le flow passe 100 % sur A.
Erreurs courantes
- AND implicite ignoré : ajouter une clé
"logic": "or"dansconditionsn'a aucun effet — Trackily AND tout. Si tu veux OR, crée 2 règles. windowinvalide :"1 hour"ne marche pas, utilise"1h". Mêmes formats que6h,24h,7d.- Opérateur en mots : Trackily accepte les alias
gt,lt,gte,lte,eq,neqET les symboles>,<, etc. Choisis un style et tiens-le. - Action
pause_campaignsur règle globale : tu pauses TOUTES les campagnes en une fois. Confirme-toi 2 fois avant. - Trop d'actions, trop souvent : un
check_interval_minutes: 1qui firechange_budgetà chaque tick saturera l'API de ta source. Donne au moins 15-30 min entre deux actions destructives. - Conditions tautologiques :
conversions > 0 AND conversions < 100ne se résout qu'entre 1 et 99 conversions. Vérifie ton seuil sur un échantillon réel avant de pousser en prod.
Voir aussi
- Automizer — index — concept général
- Automizer — rules — schéma actions complet
- Automizer — conditions — métriques + opérateurs détaillés
- Créer une campagne — règle ne marche que sur campagne existante
- MCP — tier system — Tier-2 explained