/** * ============================================================================ * POLIADS AI OTOPİLOT — GOOGLE ADS CANLI KÖPRÜ, SANAL KART & BÜTÇE KORUMA KODU * Kurum: İKPLUS Eğitim & Danışmanlık (338-686-766) * Atanan Sanal Kart: **** 4829 (Limit: ₺1000.00) * ============================================================================ * KURULUM: * 1. Google Ads panelinde sol menüden "Araçlar -> Toplu İşlemler -> Komut Dosyaları"na girin. * 2. "+ Yeni Komut Dosyası" butonuna tıklayıp bu kodu yapıştırın ve "Yetkilendir" deyin. * 3. Çalışma sıklığını "Saatlik" (Hourly) olarak seçin. * * NE YAPAR? * - Kurumun PoliAds Reklam Cüzdanı veya Sanal Kart Limiti bittiği anda tüm kampanyaları * anında duraklatır (Suistimali ve fazla çekimi %100 engeller). * - Google'ın günlük bütçeyi 2 katına kadar harcama kuralını engeller: PoliAds'te * belirlediğiniz Kesin Günlük TL Limiti dolduğu an kampanyayı o gün için duraklatır, * gece 00:01'de tekrar açar! */ var POLIADS_ENDPOINT = "https://poliads.ikplus.net/api/bridge/pa_c9071132badea235550cd6324af1139d/"; function main() { var campaignsData = []; var campIterator = AdsApp.campaigns().get(); while (campIterator.hasNext()) { var camp = campIterator.next(); var statsToday = camp.getStatsFor("TODAY"); var statsAll = camp.getStatsFor("ALL_TIME"); campaignsData.push({ google_id: camp.getId().toString(), name: camp.getName(), status: camp.isEnabled() ? "aktif" : "duraklatildi", budget: camp.getBudget().getAmount(), impressions: statsAll.getImpressions(), clicks: statsAll.getClicks(), cost_total: statsAll.getCost(), cost_today: statsToday.getCost(), conversions: statsAll.getConversions() }); } var payload = { customer_id: AdsApp.currentAccount().getCustomerId(), campaigns: campaignsData }; var response = UrlFetchApp.fetch(POLIADS_ENDPOINT, { method: "post", contentType: "application/json", payload: JSON.stringify(payload), muteHttpExceptions: true }); var result = JSON.parse(response.getContentText()); if (result && result.commands) { for (var i = 0; i < result.commands.length; i++) { var cmd = result.commands[i]; applyPoliAdsCommand(cmd); } } } function applyPoliAdsCommand(cmd) { var campIter = AdsApp.campaigns().withCondition('Name = "' + cmd.campaign_name + '"').get(); if (!campIter.hasNext()) return; var camp = campIter.next(); if (cmd.action === "PAUSE_FOR_BUDGET_GUARD" || cmd.action === "PAUSE_WALLET_EMPTY" || cmd.action === "PAUSE") { camp.pause(); Logger.log("PoliAds Kalkanı: " + cmd.campaign_name + " duraklatıldı (" + cmd.action + ")."); } else if (cmd.action === "ENABLE") { camp.enable(); } else if (cmd.action === "UPDATE_BUDGET" && cmd.budget) { camp.getBudget().setAmount(parseFloat(cmd.budget)); } else if (cmd.action === "ADD_NEGATIVE" && cmd.keyword) { camp.createNegativeKeyword(cmd.keyword); } }