Zum Hauptinhalt springen

Skript-Beispiele

Fertige Snippets für häufige Aufgaben. Kopieren Sie eines davon in den Editor, passen Sie die Schwellenwerte für sich an und testen Sie mit dem Button ▶ Ausführen. Wie die SDK-Befehle und der Zeitplan funktionieren, wird im Abschnitt Ein Skript schreiben behandelt.

Achtung

Die Beispiele enthalten echte Aktionen (pause). Bevor Sie ein Skript nach Zeitplan aktivieren, testen Sie es an Live-Daten — kommentieren Sie bei Bedarf vorübergehend die Zeilen mit pause() aus und lassen Sie nur console.log stehen.

Pause bei niedrigem ROAS

Stoppt Anzeigen, die über den Tag mehr als $20 ausgegeben haben, aber einen ROAS unter 0,5 liefern.

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

Pause ohne Einzahlungen bei hohen Ausgaben

Stoppt Anzeigen, die über den Tag keine einzige Einzahlung haben, während die Ausgaben bereits die durchschnittliche Auszahlung für das Geo überschritten haben — das heißt, Geld fließt ab, aber es gibt kein Ergebnis.

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

Speicher zwischen Ausführungen

Merkt sich verarbeitete Anzeigen in ctx.state und überspringt sie bei nachfolgenden Ausführungen, um dieselben nicht erneut anzurühren.

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

Sortieren und Begrenzen der Auswahl

Nimmt die fünf Anzeigen mit den höchsten Ausgaben über den Tag und gibt sie einfach in der Konsole aus — eine Grundlage für Berichte und Prüfungen.

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

Arbeit auf Kampagnenebene

Die Befehle sind nicht nur für Anzeigen verfügbar, sondern auch für Anzeigengruppen (QubixApp.adsets()) und Kampagnen (QubixApp.campaigns()). Aus einer Kampagne können Sie die verschachtelten Anzeigengruppen und Anzeigen erhalten.

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

Was kommt als Nächstes