Exemples de scripts
Extraits prêts à l'emploi pour les tâches courantes. Copiez l'un d'entre eux dans l'éditeur, ajustez les seuils à votre convenance et testez avec le bouton ▶ Exécuter. Le fonctionnement des commandes du SDK et de la planification est décrit dans la section Écrire un script.
Les exemples contiennent de véritables actions (pause). Avant d'activer un script selon une planification, testez-le sur des données réelles — si nécessaire, commentez temporairement les lignes contenant pause() et ne laissez que console.log.
Mise en pause selon un ROAS faible
Arrête les annonces qui ont dépensé plus de 20 $ sur la journée mais qui donnent un ROAS inférieur à 0,5.
function main() {
const ads = QubixApp.ads()
.withCondition('spend_24h > 20 AND roas_24h < 0.5')
.get()
for (const ad of ads) {
console.log('pause', ad.name, 'roas24h=', ad.roas_24h)
ad.pause({ duration: '24h', reason: 'low roas' })
}
}
Mise en pause sans dépôts avec dépense élevée
Arrête les annonces qui n'ont pas un seul dépôt sur la journée, alors que la dépense a déjà dépassé le paiement moyen pour le géo — c'est-à-dire que l'argent sort mais sans résultat.
function main() {
const ads = QubixApp.ads()
.withCondition('deps_24h = 0 AND spend_24h > geo_avg_payout')
.get()
for (const ad of ads) {
console.log('pause (no deps)', ad.name, 'spend24h=', ad.spend_24h)
ad.pause({ duration: '24h', reason: 'no deposits' })
}
}
Mémoire entre les exécutions
Mémorise les annonces traitées dans ctx.state et les ignore lors des exécutions suivantes, afin de ne pas toucher de nouveau les mêmes.
function main() {
const seen = ctx.state.get('seen') || []
const ads = QubixApp.ads()
.withCondition('roas_24h < 0.5 AND spend_24h > 20')
.get()
for (const ad of ads) {
if (seen.includes(ad.ad_id)) continue
ad.pause({ duration: '24h', reason: 'low roas' })
seen.push(ad.ad_id)
console.log('paused', ad.name)
}
ctx.state.set('seen', seen)
}
Tri et limitation de la sélection
Prend les cinq annonces ayant la dépense la plus élevée sur la journée et les affiche simplement dans la console — une base pour les rapports et les vérifications.
function main() {
const top = QubixApp.ads()
.orderBy('spend_24h', 'desc')
.withLimit(5)
.get()
for (const ad of top) {
console.log(ad.name, 'spend24h=', ad.spend_24h, 'roas24h=', ad.roas_24h)
}
}
Travailler au niveau de la campagne
Les commandes sont disponibles non seulement pour les annonces, mais aussi pour les ensembles d'annonces (QubixApp.adsets()) et les campagnes (QubixApp.campaigns()). À partir d'une campagne, vous pouvez récupérer les ensembles d'annonces et les annonces imbriqués.
function main() {
const campaigns = QubixApp.campaigns()
.withCondition('roas_24h < 0.3')
.get()
for (const c of campaigns) {
console.log('weak campaign', c.name)
for (const ad of c.getAds()) {
ad.pause({ duration: '12h', reason: 'weak campaign' })
}
}
}