Получение баланса Яндекс Директа в Power BI

Однажды мне надоело переключаться между 3 аккаунтами Яндекс Директа, чтобы проверить баланс. Для этого я написал код для получения баланса в Power BI. Он обновляет его каждый день и им удобно поделиться с другими сотрудниками, когда вы в отпуске например. Для этого всего лишь нужно предоставить ссылку на дашборд.

Так выглядит мой дашборд:

power bi баланс яндекс директа

let
    content = "{
        ""method"": ""AccountManagement"",
        ""token"": ""введите здесь свой токен"",
        ""param"": {
            ""SelectionCriteria"": {},
            ""Action"": ""Get""
            }
        }",

    #"Sourse" = Json.Document(Web.Contents("https://api.direct.yandex.ru/live/v4/json/", [Content=Text.ToBinary(content)])),
 data = Sourse[data],
 Accounts = data[Accounts],
 Accounts1 = Accounts{0},
    #"Преобразовано в таблицу" = Record.ToTable(Accounts1),
    #"Транспонированная таблица" = Table.Transpose(#"Преобразовано в таблицу"),
    #"Повышенные заголовки" = Table.PromoteHeaders(#"Транспонированная таблица", [PromoteAllScalars=true]),
    #"Замененное значение" = Table.ReplaceValue(#"Повышенные заголовки",".",",",Replacer.ReplaceText,{"Amount"}),
    #"Измененный тип" = Table.TransformColumnTypes(#"Замененное значение",{{"Amount", type number}})
in
    #"Измененный тип"

Скачать файл пример можно на github

  • Pavel Paramonenkov

    А как получить токен?

  • Pavel Paramonenkov

    Подскажите, а это нужно делать под конечными клиентскими логинами или можно на агентском?

    • Павел

      данный код только под конечным логином возможно использовать. Чтоб заработало на агентском акк, нужно в код нужно добавить логин клиента. Если очень нужно, по просьбе попозже добавлю.

      • Pavel Paramonenkov

        Понял, спасибо. Я выбрал «Яндекс Директ», а у меня пишет «Ожидался токен Eof.» Хотя токен формата AQAAA
        Как тут поступить?!

        • Павел

          После получения токена Яндекс директа, надо отправлять заявку на разрешение им пользоваться.
          Попробуйте получить токен Я. метрики, он такого разрешения не требует и вроде с ним можно получить баланс. Если не получиться воспользуйтесь моим приложением, перейдите по ссылке https://oauth.yandex.ru/authorize?response_type=token&client_id=0b0173520a254248aee1b0bf1641d30f и получите токен, который точно работает

          • Pavel Paramonenkov

            Ваш аналогично сработал, тоже такой же токен.
            Посмотрите пожалуйста, вот скрин редактора. Когда я выбираю показать ошибку, он отправляет меня на какую-то строку: https://yadi.sk/d/4IHJSZ-w3JYUks

            Может не в токене дело вообще…

          • Павел

            в начало в первой строке добавьте let, в статье я уже исправил, недавно редактировал случайно удалилось как-то

          • Pavel Paramonenkov

            Павел, спасибо большое!

      • Саша

        Столкнулся с такой проблемой, в power BI при подключении второго токена вылазит ошибка 53 https://yadi.sk/i/nLh3sorO3

  • Pavel Paramonenkov

    Вопрос:
    Я сделал все как нужно, получил доступы и появились данные:
    https://yadi.sk/d/-jogALqe3JYaWg

    Но при визуализации ничего не получается. Всего 1 общий счет.
    Вот скрин:
    https://yadi.sk/d/P10Ol9Is3JYagy

    Подскажите почему так, пожалуйста!

  • Aberix

    Спасибо! Такое бы и для Adwords. Там слишком замудренная система получения «остатка».

    • Павел

      Я тоже пробовал, быстро не получилось сделать, у меня тогда токена разработчика вроде не было. Вычислять нужно из пополненных и потраченных средств. Вот тут эту тему разбирали https://goo.gl/k4pa2V

  • Артем Володарский

    Добрый день!
    Почему-то вот такая ошибка http://take.ms/9SxJN

    • Павел

      По моему нет ошибки. Нажми на «Edit credentials», что там дальше выходит?

      • Артем Володарский

        А, точно, все норм. Я думал это и есть ошибка) А как сделать чтобы балланс показывался не по одному аккаунту, а сразу по нескольким?

        • Артем Володарский

          Все, спасибо разобрался. Просто нужно было сделать еще один запрос.

  • Артем Володарский

    А можно ли как-то сделать чтобы балланс обновлялся каждый час например?

    • Павел

      В июне в Power BI были изменения, в том числе по части обновления дашбордов, как я понял. Я не изучал эти изменения, может теперь и возможно.

  • Артем Володарский

    Кстати почему-то ссылка на дашборд не обновляется сама. Чтобы дашборт там обновился, нужно сначала нажать на кнопку в power bi и заново опубликовать отчет. Получается что уходя в отпуск я не могу просто дать коллегам ссылку и все. Обновлять все равно нужно руками. Это у всех так? Или я что-то не так сделал?

    • Павел

      Не сразу обновляется, подожди некоторое время, в течении 30−60мин обычно обновляется.