Сейчас в сети: 1.4K
Советы и вопросы по использованию скриптов AdWords
Подсказки
star_border
Ответить
Highlighted

Остаток бюджета аккаунта

Студент ✭

Добрый день, в версии 201609 возможно узнать остаток средств в аккаунте ? 

1 Ответ экспертаverified_user

Остаток бюджета аккаунта

Студент ✭ ✭ ✭

Добрый день! Как пишут в сообществе  "Still no easy way" но это возможно при помощи функций из Account Performance Report. 

https://developers.google.com/adwords/api/docs/appendix/reports/account-performance-report.

 

"To get the remaining amount of a budget order, you could query for Cost from the Account Performance Report within the date range during which the BudgetOrder was active and deduct this value from the spendingLimit of the BudgetOrder. "

 

https://groups.google.com/forum/#!msg/adwords-api/5XiRu12vSzE/kD7faiRaBQAJ

 

Остаток бюджета аккаунта

Студент ✭

@Вячеслав С Можете чуть подробнее рассказать, как это сделать ? 

 

Остаток бюджета аккаунта

Студент ✭ ✭ ✭

@Sergey PПопробуйте посмотреть пример реализации другими разработчиками:

 

https://toster.ru/q/357671

https://toster.ru/q/357394#answer_890221

 

Более точного ответа к сожалению я вам дать не смогу.

Остаток бюджета аккаунта

Студент ✭

Итак спустя полтора месяца результат получен. 

чтобы получить остаток средств на аккаунте, необходимо следующее:

получить BOS(budget order service) поле spendingLimit,

получить APR(account performance report) поле Cost, важно правильно указывать dataRange, я указывал ALL_TIME,

и сделать (BOS.SpendingLimit.Amount - APR.Cost) / 1000000 

Остаток бюджета аккаунта

Ведущий участник

О как. 
Осталось только затестить

C уважением,
Павел

Остаток бюджета аккаунта

Аспирант ✭

@Sergey P Эту возможность открыли в скриптах, но по технологии как описал Вячеслав.

Re: Остаток бюджета аккаунта

Студент ✭

 

А как быть когда у на аккаунте не один бюджет? 

Без имени.png

 

Я попытался их сложить, а затем вычесть APR.Cost: Ответ получился близким, но не верным. В кабинете остаток был ~ меньше на 2000

 

Код ниже(python) - две функции: для получения бюджета и получение из  account_performance_ report поля COST

 

def get_budget_for_client():
    service = config.adwords_client.GetService('BudgetOrderService', version='v201702')
    selector = {
        'fields': ['BudgetOrderName', 'SpendingLimit', 'TotalAdjustments']
    }
    budgets = {}

    page=service.get(selector)
    if 'entries' in page and page['entries']:
        for payer in page['entries']:
            budgets.setdefault(payer['billingAccountId'], round(int(payer['spendingLimit']['microAmount']) / 1000000, 2))
    return budgets

def get_spend_for_client():
    report_downloader = config.adwords_client.GetReportDownloader(version='v201702')
    report_query = '''
                SELECT CampaignId, Cost
                FROM CAMPAIGN_PERFORMANCE_REPORT
                '''
    report = report_downloader.DownloadReportAsStringWithAwql(report_query, 'CSV', skip_report_header=True,
                                                              skip_column_header=False,
                                                              client_customer_id=customer_id)
    file = io.StringIO(report)
    reader = csv.DictReader(file, delimiter=',')
    for row in reader:
        if row['Campaign ID']== 'Total':
            return round(int(row['Cost']) / 1000000, 2)

Что тут может быть не так? И может в версии 201702 может что то появилось?

 

Остаток бюджета аккаунта

Студент ✭

Получилось ли у кого-то решить эту задачу?
Я пробую через скрипты (MCC), сначала получаю base spending limit (по примеру: https://developers.google.com/adwords/scripts/docs/examples/budget-orders), затем получаю Cost через account.getStatsFor("ALL_TIME").getCost().
Вычитаю из первого второе, получаю остаток бюджета аккаунта.
Сравнивал с данными из веб интерфейса, скрипт всегда выдаёт остаток меньше. По большинству аккаунтов разница не такая большая, до 100-300 рублей. Но есть несколько аккаунтов, по которым разница более 1000 рублей.
Также есть случаи, когда скрипт выдавал отрицательный остаток. В интерфейсе по таким аккаунтам был ноль в остатках.
Больше всего непонятно, почему по некоторым аккаунтам в веб интерфейсе остатков намного (на 1000 и более рублей) больше?

Остаток бюджета аккаунта

Аспирант ✭

@Умный М Ваше решение правильное. Разница возникает из-за того, что в интерфейсе не сразу списывается стоимость за сегодня, она списывается по частям. Чем интенсивнее расход, тем больше разница.

Поэтому данные скрипта скорее более правильные, чем сумма из интерфейса.

Также сталкивался с тем, что в некоторых аккаунтах действительно были какие-либо проблемы с остатком до этого. 

Эксперты темы
demureless