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