Przejdź do głównej zawartości

Przykłady skryptów

Gotowe fragmenty do typowych zadań. Proszę skopiować dowolny z nich do edytora, dopasować progi do siebie i przetestować przyciskiem ▶ Uruchom. Działanie poleceń SDK oraz harmonogramu opisano w sekcji Pisanie skryptu.

Uwaga

Przykłady zawierają rzeczywiste działania (pause). Przed włączeniem skryptu w harmonogramie proszę przetestować go na danych na żywo — w razie potrzeby tymczasowo zakomentować wiersze z pause() i pozostawić tylko console.log.

Wstrzymywanie przy niskim ROAS

Zatrzymuje reklamy, które w ciągu dnia wydały więcej niż 20 $, ale dają ROAS poniżej 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' })
}
}

Wstrzymywanie przy braku depozytów i wysokich wydatkach

Zatrzymuje reklamy, które w ciągu dnia nie mają ani jednego depozytu, podczas gdy wydatki przekroczyły już średnią wypłatę dla danego geo — czyli pieniądze wychodzą, a wyniku brak.

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

Pamięć między uruchomieniami

Zapamiętuje przetworzone reklamy w ctx.state i pomija je przy kolejnych uruchomieniach, aby nie dotykać tych samych ponownie.

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

Sortowanie i ograniczanie wyboru

Pobiera pięć reklam o najwyższych wydatkach w ciągu dnia i po prostu wypisuje je do konsoli — podstawa do raportów i kontroli.

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

Praca na poziomie kampanii

Polecenia są dostępne nie tylko dla reklam, lecz także dla zestawów reklam (QubixApp.adsets()) i kampanii (QubixApp.campaigns()). Z kampanii można pobrać zagnieżdżone zestawy reklam i reklamy.

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

Co dalej