Ví dụ về script
Các đoạn mã có sẵn cho những tác vụ phổ biến. Sao chép bất kỳ đoạn nào vào trình soạn thảo, điều chỉnh các ngưỡng cho phù hợp với bạn và kiểm thử bằng nút ▶ Chạy. Cách hoạt động của các lệnh SDK và lịch trình được trình bày trong mục Viết một script.
Các ví dụ chứa hành động thực tế (pause). Trước khi bật một script theo lịch, hãy kiểm thử nó trên dữ liệu thực — nếu cần, hãy tạm thời chú thích các dòng có pause() và chỉ để lại console.log.
Tạm dừng theo ROAS thấp
Dừng các quảng cáo đã chi hơn $20 trong ngày nhưng cho ROAS dưới 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' })
}
}
Tạm dừng khi không có nạp tiền dù chi tiêu cao
Dừng các quảng cáo không có dù chỉ một lần nạp tiền nào trong ngày, trong khi chi tiêu đã vượt mức payout trung bình cho geo — tức là tiền đang đổ ra nhưng không có kết quả.
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' })
}
}
Ghi nhớ giữa các lần chạy
Ghi nhớ các quảng cáo đã xử lý trong ctx.state và bỏ qua chúng ở những lần chạy tiếp theo, để không động đến cùng những quảng cáo đó một lần nữa.
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)
}
Sắp xếp và giới hạn vùng chọn
Lấy năm quảng cáo có chi tiêu cao nhất trong ngày và chỉ đơn giản in chúng ra console — cơ sở cho các báo cáo và kiểm tra.
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)
}
}
Làm việc ở cấp chiến dịch
Các lệnh khả dụng không chỉ cho quảng cáo, mà còn cho nhóm quảng cáo (QubixApp.adsets()) và chiến dịch (QubixApp.campaigns()). Từ một chiến dịch, bạn có thể lấy các nhóm quảng cáo và quảng cáo lồng bên trong.
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' })
}
}
}