Привет! Это ADF Media.
Мы очень любим микро автоматизацию PPC проектов в Google Таблицах.
Всем привет! Мы Артём Дурнев и Султан Назаралиев подготовили в этой статье мануал по внедрению и детальное описание работы собственного динамического коллтрекинга.
Готовая формула для выгрузки данных из Яндекс Директа напрямую в Google Таблицу
6. Добавляем порядок активации тегов
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Переходим в Теги -> CDC — Get New Number -> Порядок активации тегов -> Активировать тег перед тегом CDC — Get New Number -> Основной тег Google Analytics
"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"622c45ec-ad06-55ac-b67a-ebbdd3dbcca2","width":800,"height":450,"size":314761,"type":"gif","color":"eaebf2","hash":"","external_service":[],"duration":0,"isVideo":false,"has_audio":false}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Аналогично редактируем тег CDC — Get Reserve Number
"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"15589792-a5df-5954-b42c-26871a5833dc","width":800,"height":450,"size":339792,"type":"gif","color":"eaebf1","hash":"","external_service":[],"duration":0,"isVideo":false,"has_audio":false}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"6. Публикация
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Публикуем контейнер: Отправить -> Опубликовать
"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Настройка завершена. Что дальше?"}},{"type":"incut","cover":false,"hidden":false,"anchor":"","data":{"text":"На листе «calls» нужно будет записывать номер телефона и дату/время, когда поступил входящий звонок.
На листе «report» протягивайте формулу в столбце «C» для мэтчинга сессий и звонков
"}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как всё это работает? !"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"2791c8e4-2672-5d3a-8c93-8e2c0a733349","width":3285,"height":1648,"size":636492,"type":"jpg","color":"343836","hash":"","external_service":[]}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Google Таблица"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"На первом листе phones в столбце А записываются номера телефонов, которые будут участвовать в подмене. Номера могут быть любыми, в том числе мобильные. Номера записываются в том формате, в котором они должны отображаться на сайте.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"На втором листе states закрепляются номера за пользователями. В столбце А выводятся номера телефонов с листа phones. В столбце B записывается Client ID пользователя, за которым закреплён номер телефона. В столбец C записывается дата и время, когда номер телефона последний раз закреплялся за пользователем. В дальнейшем это время будет использоваться для проверки номеров, которые нужно открепить от пользователя.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"На третьем листе distrib в ячейке A1 всегда хранится номер телефона готовый к выдаче новому пользователю. Этот номер фильтруется с помощью формулы, которая ищет в предыдущем листе states ближайший сверху свободный номер телефона.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"На четвертом листе sessions хранится информация о сессиях. Когда и какому пользователю какой номер телефона был присвоен. Вместе с информацией о пользователе и номером телефона фиксируется вся информация о сессии. Сюда можно передавать любой параметр (например, ip или устройство пользователя).
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Пятый лист calls. На этом листе нужно записывать информацию о звонках. Дата/время входящего звонка и номер телефона, на который поступил звонок.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"На шестом листе report будут отображаться звонки с привязанными ближайшими сессиями.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"На седьмом листе config заполняются данные конфигурации. В ячейке B1 указываем номер телефона, который будет отображен в случае если все динамические номера заняты. В ячейке B3 записывается количество минут, на которое номер телефона закрепляется за пользователем.
"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Google Apps Script"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"К приложению Google Apps Script можно отправлять как get, так и post запросы. Результат будет одинаковый.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"На запрос отвечает функция main. Эта функция проверяет параметр type. По параметру type определяется функция, которая будет запущена. Есть две основные функции:
"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["получение нового номера телефона","поиск уже зарезервированного номера телефона за пользователем"],"type":"UL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция получения нового номера телефона
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция берет значение из ячейки A1 листа distrib. В ответ функция вернет json в котором будет указан номер телефона и время закрепления этого номера за пользователем. После запустится функция reserve.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция reserve
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"В функцию reserve передаётся: номер телефона, который необходимо зарезервировать, Client ID пользователя за которым резервируется номер телефона и параметры которые необходимо создать в записи сессии. Функция будет искать первое совпадение по номеру телефона на листе states. При совпадении запишется Client ID. В столбце время закрепления номера проставится актуальная дата и время. После этого запустится функция createSession.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция createSession
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Принимает два аргумента: параметры, которые создаются в записи сессии и номер телефона. Функция ищет в заголовках листа sessions параметры, которые переданы в параметре event. Если найдено совпадение параметров, переданных в функцию и заголовков на листе sessions — параметр будет записан.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция поиска зарезервированного номера телефона
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция будет искать первое совпадение по Client ID на странице states. При совпадении номера телефона — обновиться время закрепления на листе states. Функция вернёт номер телефона найденный по Client ID пользователя в формате json и время закрепления этого номера телефона за пользователем.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция checkReserve
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Каждую минуту в проекте Google Apps Script будет отрабатывать функция checkReserve. Функция checkReserve проходится по листу states. Функция берет запись о каждом номере телефона и проверяет время, когда в последний раз номер телефона был закреплён за пользователем. Если время закрепления, больше времени указанного на листе config — удаляется запись о пользователе и времени его закрепления с листа states. То есть номер телефона открепляется и может быть выдан другому пользователю, зашедшему на сайт.
"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Google Tag Manager"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"В Google Tag Manager есть два основных тега:
"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["получить новый номер телефона","получить уже зарезервированный номер телефона"],"type":"UL"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Получить новый номер телефона"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Запускается по триггеру просмотр страницы если в основном файле cookie значение getnew.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"В теге CDC — Get New Number отрабатывает основная функция getNewNumber. Эта функция отправляет запрос к приложению Google Apps Script с параметром type=getnew и остальными параметрами, которые мы хотим отслеживать по звонку. В нашем случае это utm метки. Можно также передавать: тип устройства, страница, разрешение экрана и так далее. Когда приходит ответ от Google Apps Script проставляется cookie сессии с номером телефона который пришел от приложения Google Apps Script.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Номер телефона, полученный от Google Apps Script сохраняется в cookie. Это позволяет мгновенно подменять телефон на странице при повторных запросах.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"После проставления cookie вызывается кастомный триггер для Google Tag Manager. По этому триггеру срабатывает тег CDC — Switch Phone Number, который подставляет номер телефона из cookie в элемент на странице. В теге нужно указать css селектор элементов, в которых содержатся номера телефонов.
"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Функция получения уже зарезервированного номера"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция отрабатывает по триггеру загрузки страницы, когда основной файл cookie не равен значению getnew.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Функция получения уже зарезервированного номера телефона отправляет запрос к Google Apps Script с параметром type=getreserve и параметром Client ID. Как только ответ получен, функция сверяет текущий номер телефона из файла cookie и полученный от Google Apps Script.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Параллельно тегу получения зарезервированного номера телефона срабатывает тег подмены номера телефона на странице. Если номер телефона полученный от Google Apps Script не совпадает с номером телефона, который содержится в файле cookie — проставляется cookie с новым номером телефона. После запускается кастомное событие для запуска триггера замены номеров на странице. Если номера телефонов совпадают — продлевается срок истечения cookie.
"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Заключение"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Таким образом, в теории мы смогли бы снизить расходы клиента на коллтрекинг до 70%. Но важно понимать, что данное решение подойдет для небольших проектов — до 500 сессий в сутки. Еще надо помнить про ограничения Google Apps Script.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Благодарим за прочтение! Возможно данное решение кому-то будет полезно.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Также читайте:
"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Как получить отчет из Яндекс Директ формулой в Google Таблицу","Как работать с API Яндекс Директ","R для автоматизации отчётности"],"type":"UL"}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":12,"favorites":96,"reposts":1,"views":164,"hits":4088,"reads":null,"online":0},"dateFavorite":0,"hitsCount":4088,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":true,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://vc.ru/services/200074-dinamicheskii-kolltreking-na-kolenke-s-pomoshyu-google-tablic","author":{"id":486952,"name":"ADF Media","nickname":null,"description":null,"uri":"","avatar":{"type":"image","data":{"uuid":"9a282c35-3c48-7d37-1459-77118b5cf9a3","width":2976,"height":2976,"size":107981,"type":"jpg","color":"040404","hash":"","external_service":[]}},"cover":null,"achievements":[{"title":"Год на vc.ru","code":"registration_1_year","description":"Первый год с vc.ru. Получена 24 июля 2025.","previewUuid":"0d11c244-49de-50e7-894e-b9b27945d42b","formats":{"glb":"https://static.vc.ru/achievements/fish.glb","usdz":"https://static.vc.ru/achievements/fish.usdz"},"viewData":{"contentColor":"#C67AA3","textMaxWidth":0.634765625,"textX":0.5888671875,"textY":0.54296875,"logoX":0.5859375,"logoY":0.6669921875,"logoXNoText":0.6044921875,"logoYNoText":0.5439453125},"id":4941783,"userId":486952,"count":0,"shareImage":"https://api.vc.ru/achievements/share/4941783"},{"title":"3 года на vc.ru","code":"registration_3_years","description":"Провёл 3 года вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"d9d72ac5-bcb5-55e0-8c72-b99251e5cdd9","formats":{"glb":"https://static.vc.ru/achievements/shark.glb","usdz":"https://static.vc.ru/achievements/shark.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.5205078125,"textY":0.341796875,"logoX":0.5205078125,"logoY":0.4609375,"logoXNoText":0.5,"logoYNoText":0.3662109375},"id":1317696,"userId":486952,"count":0,"shareImage":"https://api.vc.ru/achievements/share/1317696"},{"title":"5 лет на vc.ru","code":"registration_5_years","description":"Провёл 5 лет вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"a9140d54-73b8-5f40-afa8-449fbaafd42b","formats":{"glb":"https://static.vc.ru/achievements/whale.glb","usdz":"https://static.vc.ru/achievements/whale.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.533203125,"textY":0.658203125,"logoX":0.533203125,"logoY":0.77734375,"logoXNoText":0.4375,"logoYNoText":0.66015625},"id":90988,"userId":486952,"count":0,"shareImage":"https://api.vc.ru/achievements/share/90988"}],"lastModificationDate":1765027437,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":false,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":200396,"name":"Сервисы","description":"Новые сервисы, обновления инструментов, опыт использования и полезные приёмы.","uri":"/services","avatar":{"type":"image","data":{"uuid":"158fab2d-76c1-5ed8-898a-76ee48d4c795","width":1200,"height":1200,"size":99571,"type":"png","color":"7cdaea","hash":"08183848d81000","external_service":[]}},"cover":{"type":"image","data":{"uuid":"c3fe3abb-6808-527e-9eb1-2b6bb92ea400","width":3840,"height":1120,"size":19502,"type":"png","color":"7cdcec","hash":"","external_service":[]}},"lastModificationDate":1688995401,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"services","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":30}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null}},{"type":"entry","data":{"id":118858,"customUri":null,"subsiteId":486952,"title":"Получаем отчет из Яндекс Директ формулой в Google Таблицу","date":1589285454,"dateModified":1589285454,"blocks":[{"type":"text","cover":true,"hidden":false,"anchor":"","data":{"text":"Готовая формула для выгрузки данных из Яндекс Директа напрямую в Google Таблицу
"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Введение"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Привет! На связи Артём Дурнев и Султан Назаралиев. Мы занимаемся performance маркетингом и сквозной аналитикой. Как и все кто занимается платным трафиком мы делаем много отчётов. Для этого используем Google Таблицы.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Но сводить данные в Google Таблицах не всегда легко. Например, как отчеты из Яндекс Директа. Скачивать Excel файл, а потом заливать его в таблицу - неудобно. Но мы нашли решение.
"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как это все устроено"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Из Яндекс Директа можно получить данные программным способом при помощи API.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Для Google Таблиц мы сделали формулу для получения статистики из API Яндекс Директ через Google Apps Script.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Это фреймворк для интеграции с многими сервисами Google.
"}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как пользоваться"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Скопируйте Google Таблицу"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Скопируйте специальную Google Таблицу. В ней уже есть формула для получения данных
"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"e851ef68-c1f8-43cc-b2dd-c0c2b8f9e574","width":800,"height":440,"size":542228,"type":"gif","color":"dcdcdc","hash":"","external_service":[],"duration":0,"isVideo":false,"has_audio":false}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Получите и скопируйте токен Яндекс Директ"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Чтобы получить данные из Яндекс API вам нужен токен. Для получения токена перейдите на наше приложение Яндекс OAuth
"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"Обратите внимание на аккаунт Яндекса для которого вы получаете токен","image":{"type":"image","data":{"uuid":"13a58a28-0700-fa5d-b93a-53c520c9d768","width":800,"height":440,"size":911349,"type":"gif","color":"291e4a","hash":"","external_service":[],"duration":0,"isVideo":false,"has_audio":false}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Вставьте токен в поле OAuth Token Google Таблицы и вызовите формулу"}},{"type":"media","cover":true,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"460b2415-c0bc-7a61-099e-0a418367c8c6","width":800,"height":440,"size":638298,"type":"gif","color":"eceeee","hash":"","external_service":[],"duration":0,"isVideo":false,"has_audio":false}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Изменяйте поля отчёта под себя"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Полный список параметров и показателей для поля Field names
"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"f8cc0dd9-15e7-1cf3-8927-4cf3c7a103f3","width":800,"height":440,"size":764089,"type":"gif","color":"eceeef","hash":"","external_service":[],"duration":0,"isVideo":false,"has_audio":false}}}]}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как это работает"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Формула получения отчёта называется YandexDirectReport.
"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Подробнее про поля формулы:
"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"5a819179-2642-f9cb-c0b2-4ca605b645e5","width":408,"height":530,"size":175679,"type":"png","color":"eaebeb","hash":"","external_service":[]}}}]}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["yaToken - токен Яндекса","login - логин клиента в Яндекс Директ. Если используется для агентского аккаунта - укажите логин клиента. Если ваш аккаунт представительский - логин представительского аккаунта","datefrom - дата начала отчёта в формате ГГГГ-ММ-ДД","dateto - дата окончания отчёта в формате ГГГГ-ММ-ДД","fields - поля отчета. Перечислите поля через точку с запятой внутри кавычек \"CampaignName;Clicks;Cost\"","includeVAT - включая НДС"],"type":"OL"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Пример"}},{"type":"code","cover":false,"hidden":false,"anchor":"","data":{"text":"YandexDirectReport(\n\"eh3eldlxoL4iMnoRcAhkGa\";\n\"anilange-ss\";\n\"2019-05-24\";\n\"2019-05-24\";\n\"CampaignName;Clicks;Cost\";\n\"YES\")","lang":""}},{"type":"delimiter","cover":false,"hidden":false,"anchor":"","data":{"type":"default"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Заключение"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"Так мы упростили загрузку данных из Яндекс Директа в Google Таблицы. Хотим поделиться решением, возможно кому-то будет полезно.
"}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":24,"favorites":72,"reposts":0,"views":131,"hits":10413,"reads":null,"online":0},"dateFavorite":0,"hitsCount":10413,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":false,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://vc.ru/marketing/118858-poluchaem-otchet-iz-yandeks-direkt-formuloi-v-google-tablicu","author":{"id":486952,"name":"ADF Media","nickname":null,"description":null,"uri":"","avatar":{"type":"image","data":{"uuid":"9a282c35-3c48-7d37-1459-77118b5cf9a3","width":2976,"height":2976,"size":107981,"type":"jpg","color":"040404","hash":"","external_service":[]}},"cover":null,"achievements":[{"title":"Год на vc.ru","code":"registration_1_year","description":"Первый год с vc.ru. Получена 24 июля 2025.","previewUuid":"0d11c244-49de-50e7-894e-b9b27945d42b","formats":{"glb":"https://static.vc.ru/achievements/fish.glb","usdz":"https://static.vc.ru/achievements/fish.usdz"},"viewData":{"contentColor":"#C67AA3","textMaxWidth":0.634765625,"textX":0.5888671875,"textY":0.54296875,"logoX":0.5859375,"logoY":0.6669921875,"logoXNoText":0.6044921875,"logoYNoText":0.5439453125},"id":4941783,"userId":486952,"count":0,"shareImage":"https://api.vc.ru/achievements/share/4941783"},{"title":"3 года на vc.ru","code":"registration_3_years","description":"Провёл 3 года вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"d9d72ac5-bcb5-55e0-8c72-b99251e5cdd9","formats":{"glb":"https://static.vc.ru/achievements/shark.glb","usdz":"https://static.vc.ru/achievements/shark.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.5205078125,"textY":0.341796875,"logoX":0.5205078125,"logoY":0.4609375,"logoXNoText":0.5,"logoYNoText":0.3662109375},"id":1317696,"userId":486952,"count":0,"shareImage":"https://api.vc.ru/achievements/share/1317696"},{"title":"5 лет на vc.ru","code":"registration_5_years","description":"Провёл 5 лет вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"a9140d54-73b8-5f40-afa8-449fbaafd42b","formats":{"glb":"https://static.vc.ru/achievements/whale.glb","usdz":"https://static.vc.ru/achievements/whale.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.533203125,"textY":0.658203125,"logoX":0.533203125,"logoY":0.77734375,"logoXNoText":0.4375,"logoYNoText":0.66015625},"id":90988,"userId":486952,"count":0,"shareImage":"https://api.vc.ru/achievements/share/90988"}],"lastModificationDate":1765027437,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":false,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":199113,"name":"Маркетинг","description":"Рекламные кейсы из России и других стран, советы по продвижению, маркетинг и digital.","uri":"/marketing","avatar":{"type":"image","data":{"uuid":"d66009fe-9bf0-52da-bdbf-4c758eba39e7","width":2400,"height":2400,"size":841299,"type":"jpg","color":"f97373","hash":"0c1cf06cf0d010","external_service":[]}},"cover":{"type":"image","data":{"uuid":"5488a646-f32d-57a6-a31f-d290afc4388a","width":960,"height":280,"size":177,"type":"png","color":"fc7c7c","hash":"","external_service":[]}},"lastModificationDate":1661337194,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"marketing","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":10}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null}}],"cursor":"PuR2GsZKFTvhhGtQDYbn4NrVS6IzQAa09I6wtbz/zlbeaPDONLamzk9T525BkW4=","isAnonymized":true}};