<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wiki.raskrutka.com.ua/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=80.92.225.65</id>
	<title>Raskrutka - Вклад участника [ru]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.raskrutka.com.ua/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=80.92.225.65"/>
	<link rel="alternate" type="text/html" href="http://wiki.raskrutka.com.ua/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/80.92.225.65"/>
	<updated>2026-07-15T06:48:10Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://wiki.raskrutka.com.ua/index.php?title=%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0_%D0%B2_%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%B5_(%D0%B4%D0%BB%D1%8F_MCC)&amp;diff=2056</id>
		<title>Проверка остатка баланса в аккаунте (для MCC)</title>
		<link rel="alternate" type="text/html" href="http://wiki.raskrutka.com.ua/index.php?title=%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0_%D0%B2_%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%B5_(%D0%B4%D0%BB%D1%8F_MCC)&amp;diff=2056"/>
		<updated>2022-01-31T11:35:17Z</updated>

		<summary type="html">&lt;p&gt;80.92.225.65: /* Для добавления нового контакта для рассылки от бота: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скрипт уже добавлен на наш МСС. Код скрипта приведен ниже. &amp;lt;br&amp;gt;&lt;br /&gt;
Название '''''MCC Account Budget Control FINISH'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
Ежедневно около 12:00 он выполняет сканирование подключенных аккаунтов и присылает с помощью телеграмм-бота остаток бюджета всем указанным контактам.&lt;br /&gt;
&lt;br /&gt;
==Для добавление нового аккаунта в список==&lt;br /&gt;
* заходим в МСС&lt;br /&gt;
* переходим на кладку аккаунты и находим нужный аккаунт&lt;br /&gt;
* добавить ярлык High spend accounts&lt;br /&gt;
&lt;br /&gt;
==Для добавления нового контакта для рассылки от бота:==&lt;br /&gt;
* открываем нашего бота t.me/raskrutka_budget_bot , отправляем ему любое сообщение;&lt;br /&gt;
* после этого переходим по ссылке в браузере &amp;lt;pre&amp;gt; https://api.telegram.org/bot&amp;lt;ТОКЕН&amp;gt;/getUpdates &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Здесь вместо &amp;lt;ТОКЕН&amp;gt; вставьте значение из ответа бота (без скобок &amp;lt;&amp;gt;); &lt;br /&gt;
[[Файл:Token.webp|500px|центр]]&lt;br /&gt;
&lt;br /&gt;
'''''НАШ ТОКЕН:''''' 5223036903:AAHzXyyQv3j67woV1CHamDLci7fCaiyHhqI&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''ССЫЛКА ВЫГЛЯДИТ ТАК:''''' https://api.telegram.org/bot5223036903:AAHzXyyQv3j67woV1CHamDLci7fCaiyHhqI/getUpdates&lt;br /&gt;
* видим ответ. Копируем цифры: &amp;quot;chat:{&amp;quot;id&amp;quot;:ХХХХХХХХХ&lt;br /&gt;
[[Файл:Chat id.webp|1000px|центр]]&lt;br /&gt;
*вставляем полученные значения в переменные в скрипте&lt;br /&gt;
&lt;br /&gt;
==Код скрипта==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var CONFIG = {&lt;br /&gt;
   // Указать минимальное количество дней до окончания средств на аккаунте для отправки уведомления.&lt;br /&gt;
days : 7,&lt;br /&gt;
// Указать почты для отправки уведомлений, через запятую, если больше одной&lt;br /&gt;
//email : ['введите email '],&lt;br /&gt;
// Указать ники/имена кому отправляется письмо, через запятую, если больше одного&lt;br /&gt;
//names : ['Nick'],&lt;br /&gt;
// Помечаем необходимые для отслеживания аккаунты ярлыком, пример - ActiveP&lt;br /&gt;
labelName : ['введите имя ярлыка']&lt;br /&gt;
}&lt;br /&gt;
function main () {&lt;br /&gt;
 var accounts = MccApp.accounts()&lt;br /&gt;
 .withCondition('LabelNames CONTAINS &amp;quot;' + CONFIG.labelName + '&amp;quot;')&lt;br /&gt;
 .executeInParallel(&amp;quot;budgetControl&amp;quot;)&lt;br /&gt;
 }&lt;br /&gt;
function budgetControl() {&lt;br /&gt;
   var accountName = AdWordsApp.currentAccount().getName();&lt;br /&gt;
var budgets = AdWordsApp.budgetOrders().withCondition('Status = ACTIVE').get();&lt;br /&gt;
   while (budgets.hasNext()) {&lt;br /&gt;
     try {&lt;br /&gt;
       var budget = budgets.next();&lt;br /&gt;
       if (budget.getSpendingLimit() !== null ) {&lt;br /&gt;
         var startDate = timeFormat(budget.getStartDateTime());&lt;br /&gt;
         var cost = AdWordsApp.currentAccount().getStatsFor(startDate,today()).getCost();&lt;br /&gt;
         var last7DaysCostByDay = (AdWordsApp.currentAccount().getStatsFor(&amp;quot;LAST_7_DAYS&amp;quot;).getCost() / 7).toFixed();&lt;br /&gt;
         var limit = budget.getSpendingLimit();&lt;br /&gt;
         var remainingDays = rDays(limit, cost, last7DaysCostByDay);&lt;br /&gt;
         var budgetNow = (limit - cost).toFixed();&lt;br /&gt;
         if (budgetNow &amp;lt; 0) {&lt;br /&gt;
           var budgetNow = 0;&lt;br /&gt;
         }&lt;br /&gt;
         else {&lt;br /&gt;
           var budgetNow = budgetNow;&lt;br /&gt;
         }&lt;br /&gt;
         Logger.log([accountName, budgetNow, last7DaysCostByDay, remainingDays]);&lt;br /&gt;
         if (remainingDays &amp;lt; CONFIG.days) {&lt;br /&gt;
           sendTelegramMessage('Аккаунт ' + accountName + ' . Текущий остаток = ' + budgetNow + '. Расход в день = ' + last7DaysCostByDay +&lt;br /&gt;
                               ' . Денег хватит на ' + remainingDays + ' дня/дней.');&lt;br /&gt;
          // MailApp.sendEmail(CONFIG.email,&lt;br /&gt;
          //                 CONFIG.names +' / Заканчивается бюджет на аккаунте: ' + accountName,&lt;br /&gt;
          //                 'Аккаунт ' + accountName + ' . Текущий остаток = ' + budgetNow +&lt;br /&gt;
          //                 '. Расход в день = ' + last7DaysCostByDay + ' в валюте аккаунта. ' +&lt;br /&gt;
          //                 'Денег хватит на ' + remainingDays + ' дня/дней. В аккаунте заканчиваются средства. Необходимо предупредить PM.');&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
     catch (e) {&lt;br /&gt;
       Logger.log(e);&lt;br /&gt;
       sendTelegramMessage('Ошибка выполнения скрипта контроль Бюджетов ' + accountName);&lt;br /&gt;
//       MailApp.sendEmail(CONFIG.email,&lt;br /&gt;
//                         'Ошибка выполнения скрипта Контроль бюджетов',&lt;br /&gt;
//                         'Необходимо проверить работу скрипта Контроль бюджетов ' + accountName + ' ' + e);&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
function timeFormat (date) {&lt;br /&gt;
 var year = date.year.toString();&lt;br /&gt;
 var month = date.month.toString();&lt;br /&gt;
 var day = date.day.toString();&lt;br /&gt;
 if (month.length == 1) {&lt;br /&gt;
   month = &amp;quot;0&amp;quot; + month;&lt;br /&gt;
 }&lt;br /&gt;
 if (day.length == 1) {&lt;br /&gt;
   day = &amp;quot;0&amp;quot; + day;&lt;br /&gt;
 }&lt;br /&gt;
 return [year, month, day].join(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
function today () {&lt;br /&gt;
 var date = new Date();&lt;br /&gt;
 var timeZone = AdWordsApp.currentAccount().getTimeZone();&lt;br /&gt;
 var format = 'yyyyMMdd';&lt;br /&gt;
 return Utilities.formatDate(date, timeZone, format);&lt;br /&gt;
}&lt;br /&gt;
function rDays(limit, cost, last7DaysCostByDay) {&lt;br /&gt;
 var remainingDays = ((limit - cost) / last7DaysCostByDay).toFixed();&lt;br /&gt;
 if (remainingDays &amp;lt; 1 || remainingDays == &amp;quot;Infinity&amp;quot; || remainingDays == &amp;quot;-Infinity&amp;quot; || remainingDays == -0 ) {&lt;br /&gt;
   remainingDays = 0;&lt;br /&gt;
 }&lt;br /&gt;
 return remainingDays;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function sendTelegramMessage(text) {&lt;br /&gt;
   var CONFIG = {&lt;br /&gt;
       TOKEN: 'введите токен (без скобок)',&lt;br /&gt;
       CHAT_IDS: ['введите идентификаторы контактов']&lt;br /&gt;
       }&lt;br /&gt;
   var options = {&lt;br /&gt;
       method: 'POST',&lt;br /&gt;
       contentType: 'application/json'&lt;br /&gt;
   };&lt;br /&gt;
   CONFIG.CHAT_IDS.forEach(function(item) {&lt;br /&gt;
     UrlFetchApp.fetch('https://api.telegram.org/bot' + CONFIG.TOKEN + '/sendMessage?chat_id=' + item + '&amp;amp;text=' + encodeURIComponent(text), options);&lt;br /&gt;
   });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полное описание с нуля здесь https://netpeak.net/ru/blog/kak-nastroit-otpravku-uvedomleniy-o-sostoyanii-byudzheta-akkauntov-google-ads-v-telegram-i-na-pochtu/&lt;/div&gt;</summary>
		<author><name>80.92.225.65</name></author>
		
	</entry>
</feed>