स्क्रिप्ट के उदाहरण
आम कार्यों के लिए तैयार स्निपेट। इनमें से किसी को भी एडिटर में कॉपी करें, थ्रेशहोल्ड को अपने हिसाब से समायोजित करें और ▶ अभी चलाएँ बटन से टेस्ट करें। SDK कमांड और शेड्यूल कैसे काम करते हैं, यह स्क्रिप्ट लिखना सेक्शन में बताया गया है।
उदाहरणों में वास्तविक क्रियाएँ (pause) शामिल हैं। किसी स्क्रिप्ट को शेड्यूल पर चालू करने से पहले उसे लाइव डेटा पर टेस्ट करें — यदि आवश्यक हो, तो pause() वाली पंक्तियों को अस्थायी रूप से कमेंट कर दें और केवल console.log छोड़ दें।
कम ROAS के आधार पर रोकें
ऐसे ads को रोकता है जिन्होंने दिन भर में $20 से अधिक खर्च किया लेकिन जिनका ROAS 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' })
}
}
अधिक खर्च पर बिना किसी डिपॉज़िट के रोकें
ऐसे ads को रोकता है जिनमें दिन भर में एक भी डिपॉज़िट नहीं हुआ, जबकि खर्च उस जियो के औसत पेआउट से पहले ही अधिक हो चुका है — यानी पैसा बाहर जा रहा है पर कोई परिणाम नहीं है।
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' })
}
}
रन के बीच मेमोरी
प्रोसेस किए गए ads को ctx.state में याद रखता है और अगली रन में उन्हें छोड़ देता है, ताकि उन्हीं को दोबारा न छुआ जाए।
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)
}
चयन को क्रमबद्ध करना और सीमित करना
दिन भर में सबसे अधिक खर्च वाले पाँच ads लेता है और उन्हें केवल कंसोल में प्रिंट कर देता है — रिपोर्ट और जाँच के लिए एक आधार।
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)
}
}
कैंपेन स्तर पर काम करना
ये कमांड केवल ads के लिए ही नहीं, बल्कि ad sets (QubixApp.adsets()) और कैंपेन (QubixApp.campaigns()) के लिए भी उपलब्ध हैं। किसी कैंपेन से आप उसके भीतर के ad sets और ads प्राप्त कर सकते हैं।
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' })
}
}
}