Exemplos de scripts
Trechos prontos para tarefas comuns. Copie qualquer um deles para o editor, ajuste os limites conforme a sua necessidade e teste com o botão ▶ Executar. Como funcionam os comandos do SDK e o agendamento é abordado na seção Escrevendo um script.
Os exemplos contêm ações reais (pause). Antes de ativar um script no agendamento, teste-o com dados reais — se necessário, comente temporariamente as linhas com pause() e deixe apenas console.log.
Pausar por ROAS baixo
Para anúncios que gastaram mais de $20 ao longo do dia, mas geram um ROAS abaixo de 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' })
}
}
Pausar sem depósitos com gasto alto
Para anúncios que não tiveram um único depósito ao longo do dia, enquanto o gasto já ultrapassou o pagamento médio do geo — ou seja, o dinheiro está saindo, mas não há resultado.
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' })
}
}
Memória entre execuções
Lembra dos anúncios já processados em ctx.state e os ignora nas execuções seguintes, para não mexer nos mesmos novamente.
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)
}
Ordenar e limitar a seleção
Pega os cinco anúncios com o maior gasto ao longo do dia e simplesmente os imprime no console — uma base para relatórios e verificações.
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)
}
}
Trabalhar no nível da campanha
Os comandos estão disponíveis não apenas para anúncios, mas também para conjuntos de anúncios (QubixApp.adsets()) e campanhas (QubixApp.campaigns()). A partir de uma campanha, você pode obter os conjuntos de anúncios e os anúncios aninhados.
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' })
}
}
}