Предыстория
Вышел на меня случайно руководитель агентства, с задачей мониторинга баланса своих аккаунтов в Яндекс директ и Google adwords. Чувствовалось, что человек уже пообщался с программистами и заразился от них ругательными словами вроде базы данных, api
Я быстро представил картину того, что нужно примерно сделать, т.к. на тот момент уже хорошо ориентировался в Яндекс api и в администрировании сервера. С Google adwords мне пришлось разобраться, много попотеть и высказать много нецензурных слов. Пару раз даже хотел бросить все это дело. Об этом подробнее читайте далее.
Решение
Требовались данные за прошлый месяц, неделю и день, а также добавить вычисляемый столбец — через сколько закончатся деньги. Рассчитывается он просто:
Средний расход в день = расход за прошлую неделю без выходных/5
На сколько хватит дней = Баланс / Средний расход в день.
База данных.
Так как исторические данные нам не нужны, база данных здесь ни к чему. Пишется все в csv файл. Они забыли, кстати, попросить сделать выгрузку в Google spreadsheets. С его api я тоже разобрался, но доплатить они не захотели. Данные выгружаются на локальный компьютер.
Данные за прошлый месяц скачиваются в первый день нового месяца, за прошлую неделю — в понедельник, за прошлый день — один раз в начале дня. Текущий баланс каждый час или как вы настроите расписание.
Сервер
Зачем сервер? Устанавливаем python на компьютер, создаем через планировщика задач расписание запуска скрипта — при запуске компьютера и ежечасно.
Такое решение избавляет от оплаты сервера и специалиста, который в случае чего, сможет реанимировать сервер.
В общем, написал для них инструкцию.
Какие трудности возникли.
Трудно было понять Api Adwords. Большая справка, много страниц, много букв. Долго вникал, как авторизоваться через api. Из их готовой библиотеки для работы с api, получал access токен 3 дня. В общем, недели две разбирался, как авторизоваться. Тут пару раз и хотел бросить это дело.
Второй неприятностью было ограничение на базовый токен разработчика, который мне выдали. Из-за этого мой скрипт иногда не получал данные из-за превышения квоты запросов к api, хотя по факту, столько запросов к api не посылал.
К этому моменту я был истощен, не было желания продолжать. Токен разработчика без ограничений нужно «вымаливать», так мне казалось, у google на английском языке и не было уверенности, что это поможет. И все-таки решил попытаться получить его, а если не получится, то окончательно забить на это. Так буду считать, что сделал все возможное, совесть будет чистой.
Собравшись с силами, открыл их страницу с кучей вопросов для получения токена и ответил. К моей радости, ответили они быстро. Задали уточняющие вопросы и попросили демо версию моей программы, которой у меня не было. И тут я подумал: «Ну все, точно приехали». Но через часа три мне пришла идея просто сбросить им весь свой код на последок, а вдруг прокатит! И что вы думаете? Следующее письмо было поздравление о том, что мне выдан токен. Вот уж точно, поздравление здесь в тему! За это, после такого, можно и нужно выпить. Скрипт начал работать без проблем.
Вот такая история. Спасибо что прочитали до конца. Надеюсь вам было интересно, я старался.
Если вам требуется подобное решение, обращайтесь. Мои контакты здесь.