Aller au contenu principal

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.

Attention

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.

JavaScript
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.

JavaScript
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.

JavaScript
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.

JavaScript
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.

JavaScript
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' })
}
}
}

Et ensuite