Динамический ремаркетинг в Google Рекламе без Google Merchant Center — скрипт для автоматического обновления фида
Хотите, чтобы
При загрузке фида с помощью Google Merchant Center товарный фид обновляется автоматически, согласно установленному расписанию. К сожалению, в Украине, Беларуси и Казахстане пока недоступен Merchant Center, поэтому нужно постоянно следить за изменениями и загружать фид вручную.
Мой способ избавит вас от необходимости регулярно загружать фид в Google Рекламу. Вам понадобится:
- Подготовить фид в формате XML или YML.
- Создать таблицу Google и настроить скрипт, который будет загружать в нее данные из фида.
- Загрузить полученную таблицу в свой аккаунт Google Рекламы и настроить обновление.
Скрипт для парсинга данных в таблицу Google разработали Analytics Strategist Алексей Данилин и Software Engineer at Serpstat Антон Белоус.
1. Импортируйте данные из фида в таблицу Google
1.1. Создайте файл в таблицах Google.
1.2. Выберите в верхнем меню пункт «Инструменты» — «Редактор скриптов».
В окне редактирования скриптов сразу откроется новый проект, в котором вы будете работать. Дайте понятное название вашему проекту, например такое, как прописали ранее для созданной таблицы Google.
1.3. Далее перейдем непосредственно к работе со скриптом. Сначала полностью удалите имеющиеся на странице строки кода.
Затем скопируйте и вставьте в свой проект этот скрипт:
var doc = SpreadsheetApp.getActiveSpreadsheet();try
{var s_settings = doc.getSheetByName("Settings");s_settings.clear();}catch(e)
{var s_settings = doc.insertSheet();s_settings.setName("Settings");}function parseXml()
{var url = 'https://адрес_нашего_xml_файла';var xml
= UrlFetchApp.fetch(url).getContentText();var document
= XmlService.parse(xml);var root = document.getRootElement();var
ns = XmlService.getNamespace('https://www.w3.org/1999/xhtml');Logger.log(ns);var
entries = document.getRootElement().getChildren();Logger.log(entries);var
orders = entries[0].getChildren('offers')[0].getChildren('offer');Logger.log(orders);
var rows = [];rows.push(['ID','Final URL','Item category','Item title','Image URL','Price'])for
(var i = 0; i < orders.length; i++) { var id = orders[i].getAttribute('id').
toString().split("'")[1]; var url = orders[i].getChildText('url').toString().
trim(); var cat = orders[i].getChildText('vendor'); var name = orders[i].getChildText('model');
var pic = orders[i].getChildText('picture').toString().trim(); var currencyId
= orders[i].getChildText('currencyId').toString().trim(); var price
= orders[i].getChildText('price').toString()+' '+currencyId; var newRow
= [ id, url, cat, name, pic, price ];
rows.push(newRow);}Logger.log(rows[rows.length-1]);
s_settings.getRange(1,1,rows.length, 6).setValues(rows);}
1.4. Чтобы скрипт корректно работал именно с вашим фидом, необходимо отредактировать несколько строк в коде.
В строке 12 вместо «https://адрес_нашего_xml_файла» укажите адрес вашего фида, из которого скрипт будет тянуть информацию о товарах.
В некоторых случаях для работы скрипта достаточно вставить ссылку на ваш фид, но, возможно, придется скорректировать еще несколько пунктов.
1.5. Проанализируйте структуру вашего фида. Передаваемые параметры должны совпадать со значениями атрибутов, указанными в этом фрагменте скрипта:
rows.push(['ID','Final URL','Item category','Item title',
'Image URL','Price'])for (var i = 0; i < orders.length; i++)
{ var id = orders[i].getAttribute('id').toString().split("'")[1];
var url = orders[i].getChildText('url').toString().trim();
var cat = orders[i].getChildText('vendor');
var name = orders[i].getChildText('model');
var pic = orders[i].getChildText('picture').toString().trim();
var currencyId = orders[i].getChildText('currencyId').toString().trim();
var price = orders[i].getChildText('price').toString()+' '+currencyId;
Рассмотрим подробнее, какие значения должны передаваться:
- из атрибута getAttribute('id') в столбец ID импортируется информация об идентификационном номере товара;
- из getChildText('url') в столбец Final URL передается значение ссылки на карточку товара;
- из getChildText('vendor') в Item category подтягивается информация о названии категории;
- из getChildText('model') в Item title передается название товара.
- из getChildText('picture') в Image URL — ссылка на изображение продукта;
- из атрибута getChildText('price') в столбец Price — цена товара.
Если в вашем фиде названия параметров отличаются от указанных выше значений атрибутов, необходимо отредактировать код скрипта. Допустим, информация о товаре в продуктовом каталоге выглядит так:
<offer id="№ ID товара" type="vendor.model"
available="true"><url>https://ссылка на страницу товара</url>
<price>100</price><currencyId>UAH</currencyId><categoryId>1
</categoryId><picture>https://ссылка на рисунок товара.jpg
</picture><typePrefix>Смартфон</typePrefix><categoryname>Samsung</categoryname>
<name>Galaxy S4</name><param>White</param></offer>
Как видите, название и категория товара передаются с помощью параметров «name» и «categoryname», а не «vendor» и «model». Замените в коде значения атрибутов.
1.6. После редактирования скрипта нажмите на кнопку «Сохранить», а затем — «Выполнить»
В правом верхнем углу появиться сообщение, что скрипт начал выполняться.
Редактор скриптов запросит авторизацию — нажмите «Предоставить разрешение».
1.7. Чтобы убедится, что данные из фида извлекаются правильно, перейдите непосредственно к таблице. Должны появится столбцы, как на скриншоте.
2. Настройте правила обновления данных
Чтобы информация в таблице регулярно обновлялась, необходимо в редакторе скриптов создать соответствующий триггер.
2.1. В верхнем меню выберите пункт «Ресурсы» — «Триггеры текущего проекта».
Чтобы перейти к настройке вашего первого триггера, в открывшемся окне нажмите на строку с синим текстом.
2.2. Сначала выберите, как часто должен обновляться фид.
2.3. Рекомендую настроить оповещения, которые будут сообщать вам об ошибках обновления файла. Для этого нажмите на ссылку «Уведомления».
По умолчанию в настройках будет указана ваша почта и ежедневные оповещения. Выберите удобное время, а при необходимости измените или добавьте еще одного получателя. Нажмите кнопку «ОК» и сохраните изменения.
3. Добавьте фид в Google Рекламу
3.1. Скачайте сгенерированную таблицу в формате CSV. Для этого нажмите в верхнем меню на «Файл» и в выпадающем списке выберите «Скачать как» — «CSV-файл (текущий лист)».
3.2. Приступим непосредственно к загрузке каталога товаров в Google Рекламу. Перейдите в «Общую библиотеку» и кликните на подпункт «Коммерческие данные».
3.3. Нажмите на кнопку «+Данные» и выберите «Фид динамических медийных объявлений» — «Выбранный пользователем».
3.4. Нажмите кнопку «Выбрать файл», выберите CSV-файл с фидом и загрузите его в аккаунт.
После предварительной обработки файла нажмите «Применить изменения».
3.5. Чтобы установить частоту обновления данных, в списке «Коммерческие данные» перейдите к добавленному фиду. На вкладке «Запланированные загрузки» нажмите на кнопку «+Расписание».
3.6. Установите периодичность обновления. В качестве источника укажите таблицу Google, для которой ранее настроили скрипт.
Обратите внимание на примечание с информацией, на какой адрес необходимо открыть доступ к таблице Google для вашего аккаунта в Google Рекламе.
3.7. Проверьте, работает ли обновление файла. Для этого нажмите кнопку «Обновить» во вкладке «Запланированные загрузки».
Выводы
Чтобы автоматизировать обновления фида в аккаунте Google Рекламы, нужно следовать простому алгоритму:
- Создайте таблицу Google в редакторе скриптов и добавьте наш код.
- В скрипт добавьте ссылку на ваш фид и при необходимости замените значения атрибутов.
- Настройте триггеры, с помощью которых информация в таблице будет автоматически обновляться.
- Сохраните информацию в формате в CSV и загрузите в Google Рекламу.
- Настройте период загрузки данных и проверьте, обновляется ли информация.
Показывайте вашим пользователям актуальную информацию о товарах.
Свежее
Обзор изменений в GA4: различие между ключевыми событиями (Key events) и конверсиями (Conversions)
Увидели оповещение в GA4 об изменении в конверсиях? Давайте разбираться что именно изменилось и как это повлияет на вашу аналитику
Как добиться роста органического трафика на 195% за полгода в высококонкурентной нише — кейс BAYADERA
Показываем на практике как повысить видимость сайта и небрендовый органический трафик
Кто такой конечный пользователь, и Почему он важен
Он нужен не только для настройки рекламы, но и при разработке продукта или услуги. Разбираемся, кто он такой и как его найти