Маркетинг
Adgasm.io
6357

Как бесплатно за два часа спарсить каталог интернет-магазина и создать тысячи объявлений: пошаговая инструкция

На примере интернет-магазина нумизматики Monetnik покажем, как мы в adgasm.io создаём объявления под каждый товар без использования платных генераторов объявлений (например, К50 или Origami) и без привлечения технических специалистов к созданию фидов.

В закладки
Аудио
​Показ уникальных объявлений по товарным запросам

Нам понадобятся: import.io, Редактор Google Ads и Google Таблицы (или Excel). Засекаем время.

30 минут: извлекаем данные о товарах с сайта

1. Регистрируемся на import.io.

Для решения задачи будет достаточно бесплатной версии. Сервис преобразует информацию со страниц сайта в таблицу данных. Например, с его помощью можно собрать в табличном виде информацию о товарах интернет-магазина или следить за наличием товаров и ценами конкурентов. Для этого не потребуются ресурсы разработчиков и специальные знания: все, что нужно — задать адрес страницы и указать, какие данные нужны.

2. Показываем системе, какие данные нужно спарсить.

Допустим, мы хотим выгрузить из карточки товара на Monetnik.ru следующую информацию:

  • название монеты,

  • категория товара,

  • цена,
  • сохранность,
  • год выпуска,
  • номинал,
  • материал.

Перейдем к инструменту «Extractors», нажмем «New Extractor» и введем URL страницы любого товара. После клика по кнопке «Go» начнется загрузка веб-страницы, и система попытается автоматически найти и извлечь данные.

​Выгружаем данные автоматически: Extractors → New Extractor → ввести URL страницы → Go

Но автоматически сгенерированный результат нас не устраивает, Import.io извлек не те данные, что нам нужны. Перейдем на вкладку «Edit» и укажем, какие данные нужно собрать. Для начала удалим таблицу данных, собранную по умолчанию: выберем команду «Start over with empty table» и подтвердим действие «Yes, clear and start over».

Удаляем ненужную таблицу: Edit → Start over with empty table → Yes, clear and start over​

Теперь можно настроить столбцы таблицы с нужными нам данными. Это делается так: даем название столбцу и кликаем на нужный элемент карточки товара. При наведения курсора мыши на любые элементы страницы, из которых можно извлечь данные, — текстовые блоки, изображения, ссылки, кнопки, — появляется зеленая иконка «+» рядом с курсором, а сами данные выделяются рамкой. Для создания новых столбцов выберем «Add column», аналогичным образом добавим нужны данные.

Чтобы оценить результат, после заполнения всех столбцов вернемся на вкладку «Data». Все отлично: мы получили таблицу с нужной информацией. Сохраним проект — кнопка «Extract data from website».

Настраиваем столбцы с нужными данными: Add column → указать название → выбрать элемент страницы​

3. Выгружаем данные со всех страниц.

Это самое приятное: нам не придется вручную собирать данные со всех страниц товаров. На примере одной карточки товара мы показали системе, какую информацию необходимо собрать. Осталось задать адреса товаров, для которых Import.io аналогичным образом соберет данные.

Спарсить URL всех товаров можно на вкладке «Settings». Мы выбрали команду «Similar URLs» — Import.io определил 47 групп урлов. Адрес страницы товара имеет вид: https://www.monetnik.ru/monety/carskie/nikolaj-2/5-rublej-1898-ag-161562/ т.е. URL входит в группу https://www.monetnik.ru/monety/{any}/{any}/{any}/. Установим на него галочку в чекбоксе и нажмем «Add to list». Система нашла 17 446 адресов. В бесплатной версии Import.io можно обработать до 1 000 URL в месяц, поэтому мы сократим список. Выгрузим список адресов — кнопка «Download URLs» в Excel и оставим в файле только URL товаров из раздела «Монеты Николая 2-го (1894—1917)». Скопируем нужные адреса из файла Excel, а потом в Import.io с помощью «Remove all URLs» очистим лист и вставим скопированные данные. Можно еще удалить все ненужное в скачанном файле и загрузить его или вообще загрузить собственный готовый список, если он есть, — кнопка «Import URLs». После загрузки нажмите «Save». Адреса заданы, нажимаем «Run URLs» — система автоматически соберет данные по всем товарам аналогично первому.

Парсим URL и данные всех товаров: Settings → Similar URLs → выбрать группу URL → Add to list → очистить список через Excel → Save → Run URLs​

После обработки всех страниц нажимаем «Preview Data», чтобы в режиме предпросмотра оценить результат. Если никаких изменений не требуется, то выгружаем данные в Excel — «Download Data». Если что-то не так, всегда можно вернуться к редактированию — «Edit».

​Оценить результат — Preview Data, выгрузить данные — Download Data

В результате мы получили таблицу с нужными характеристиками монет, включая цену.

Данные с 1000 товарных страниц сайта собраны за 18 минут

30 минут: создаем рекламную кампанию

1. Решаем, какой тип объявлений запускать: текстовые (классическая поисковая кампания) или динамические (DSA).

Попробуем ответить на этот вопрос на примере товара «1 пенни 1909, монета для Финляндии». Условия таргетинга в классических поисковых кампаниях — ключевые фразы. Попробуем их подобрать с помощью сервисов WordStat и Планировщик ключевых слов.

Один запрос найден в WordStat:

Планировщик Ads не показал статистику по этому запросу:

Дополним список ключевыми словами, сгенерированными с помощью генератора ключевых фраз (метод «сцепка»):

Как видно из скриншота, все фразы получили статус «Мало запросов», т.е. классическую поисковую кампанию мы запускать не можем — не получим показов.

Если семантика по большинству товаров получает статус «Мало запросов» или вы работаете с нишей, где постоянно появляются новые товары и семантики на момент запуска просто нет, то рекомендуем запустить динамические поисковые объявления. Вероятность получить показы по низкочастотной семантике здесь гораздо выше. В DSA вам не нужно собирать ключевые слова — условием таргетинга являются страницы сайта.

Для Monetnik.ru мы выбрали динамические поисковые кампании. Если вы решили запускать классический поиск, продолжайте читать статью — механика генерации объявлений для двух типов кампаний не будет отличаться.

2. Определяем страницы, на основе которых будут создаваться объявления.

При запуске DSA можно выбрать 3 варианта таргетинга:

  • индекс сайта в Google (таргетинг на проиндексированные поисковыми роботами Google страницы сайта);
  • только URL из фида страниц (таргетинг только на страницы из фида);
  • URL из индекса сайта в Google и из фида страниц (комбинированный вариант).

Выбираем «Использовать только URL из фида страниц»: этот вариант позволит точнее настроить таргетинг и привлечь пользователей на максимально релевантные страницы — карточки товаров.

Создадим фид страниц — таблицу из 2 столбцов: Page URL (адрес страницы сайта) и Custom label (метка продавца). Метка продавца — это любые значения, которые используются для настройки таргетинга и ставок: например, название товара, категория товара и любые другие значения. Из Import.io мы выгрузили таблицу с данными, скопируем в отдельный файл два первых столбца («URL» и «Название монеты»), переименуем их в «Page URL» и «Custom label» и сохраним файл в формате .csv. Чтобы вам было проще — вот шаблон фида страниц.

В фиде страниц 2 столбца: адрес товара и метка продавца​

В интерфейсе Google Ads перейдем на вкладку «Инструменты и настройки» — «Коммерческие данные» и создадим фид страниц. Выберем созданный файл и нажмем «Просмотр». Если будут обнаружены ошибки, исправьте их по комментариям Ads. Если ошибок не обнаружено, сохраните фид.

3. Создадим поисковую кампанию Google Ads.

В разделе «Настройка динамических поисковых объявлений» укажем домен сайта, выберем источник таргетинга «Использовать только URL из фида страниц» и созданный фид:

Создадим первую группу объявлений. Скопируем значение из столбца «Custom label» в фиде страниц и вставим это значение в название группы объявлений и метку продавца:

Теперь выгрузим кампанию в Редакторе Google Ads и массово создадим остальные группы через команду «Внести несколько изменений». Нужно добавить столбцы:

  • кампания,
  • группа объявлений,
  • тип группы объявлений («Dynamic»).

Также через команду «Внести несколько изменений» добавим цели динамической рекламы через столбцы: Dynamic Ad Target Condition 1 и Dynamic Ad Target Value 1:

Нажмем «Обработать» — и готово: мы создали поисковую кампанию с динамическими группами объявлений и таргетингом на товарные карточки.

60 минут: создаем рекламные объявления

1. Создадим набор данных для модификаторов объявлений.

Модификаторы объявлений — это динамические данные, которые можно подставить в текст объявления в зависимости от условий таргетинга (рекламной кампании, группы объявлений, ключевого слова и др.). Подробнее о модификаторах объявлений в статье из Справки Google Ads.

Для модификаторов нам нужны атрибуты и условия таргетинга. Атрибутами являются любые данные, описывающие ваши товары и услуги. В нашем случае так:

Атрибуты

  • категория товара

  • цена

  • сохранность
  • год выпуска
  • номинал
  • материал

Условия таргетинга

  • кампания

  • группа объявления

Снова возвращаемся к таблице из Import.io. Значения столбцов форматируйте на свое усмотрение — меняйте регистр, склонение слов, сокращайте или дополняйте данные. Только не вздумайте делать это вручную, пользуйтесь возможностями табличных редакторов — Excel, Google Таблицы или гуглите онлайн-сервисы — склоняторы, конверторы регистров и другие.

Мы изменили регистр значений в столбце «Материал» (было «Серебро», стало — «серебро») и заменили значение «Монеты Николая 2-го (1894-1917)» в столбце «Категория товара» на «монет Николая II». Вот такая таблица у нас получилась — сохраняем ее .csv:

Поменяли регистр букв и склонение слова «монеты», чтобы данные логично вписывались в текст объявления

Не забывайте об ограничении на количество символов в описаниях: текст после подстановки данных не должен превышать 90 символов. Проверить количество символов можно в Excel или Google Таблицах — пропишите в отдельных столбцах статичный текст, а затем с помощью формул «СЦЕПИТЬ» объедините значения всех столбцов, а с помощью формулы «ДЛСТР» вычислите количество символов:

Заранее подсчитайте символы в объявлении: текст не должен превышать 90 символов

В интерфейсе Google Ads снова переходим в раздел «Коммерческие данные» и создаем данные модификаторов объявлений. Загружаем фид с модификаторами объявлений и нажимаем «Просмотр». Если форматы данных верные и ошибок не найдено, то выбираем «Применить».

2. Переходим в любую группу объявлений и создаем динамическое объявление.

При создании динамических объявлений заполняются только поля «Описание 1» и «Описание 2». Конечный и отображаемый URL, а также заголовок создаются системой автоматически на основе содержания сайта.

Ввод модификатора начинается с фигурной скобки. Модификатор имеет синтаксис вида {=Имя данных.Имя атрибута:текст по умолчанию}, где:

  • имя данных — это название таблицы с данными (мы назвали фид «Монеты Николая 2»);
  • имя атрибута — это название столбцов таблицы с данными (например, «Цена»);
  • текст по умолчанию — например, {=Монеты Николая 2.Цена:от 1 руб}. Если при подстановке значения, заменяющего модификатор, текст превысит ограничения на количество символов, то подставится фраза по умолчанию «от 1 руб». При подстановке значения по умолчанию текст также не должен превышать 90 символов, иначе показов объявления не будет. Можно не вводить текст по умолчанию, но в таком случае в группу объявлений должно быть добавлено хотя бы одно объявление без модификаторов, иначе объявление показываться не будет.

Начинаем вводить статичный текст и добавлять модификаторы объявлений. Сразу в предпросмотре вы увидите будущее объявление — если все корректно, сохраните. Теперь просто скопируйте объявление в остальные группы с помощью редактора Ads. Вам не придется редактировать каждое объявление: в фиде модификаторов указаны условия таргетинга — кампания и группа объявлений, поэтому система сама понимает, какие значения из таблицы нужно подставить для каждой группы.

3. Оценим результат.

Группа «10 копеек 1907 СПБ ЭБ»:

Группа объявлений «50 копеек 1912 Э.Б»:

Результат

2 часа, 0 рублей, 1 000 уникальных текстов и посадочных страниц под каждый товар.

Авторы статьи: Ната Нефедьева, Мариам Оганесян

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Adgasm.io", "author_type": "editor", "tags": [], "comments": 31, "likes": 40, "favorites": 244, "is_advertisement": false, "subsite_label": "marketing", "id": 86350, "is_wide": false, "is_ugc": false, "date": "Thu, 03 Oct 2019 07:54:29 +0300", "is_special": false }
0
{ "id": 86350, "author_id": 385183, "diff_limit": 1000, "urls": {"diff":"\/comments\/86350\/get","add":"\/comments\/86350\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/86350"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199113, "last_count_and_date": null }
31 комментарий
Популярные
По порядку
Написать комментарий...
3

Интересная статья. Надо попробовать )

Ответить
3

очень круто, спасибо, надо брать))

Ответить
3

в 2008 подобным образом  запарсил Яндекс.Карты  - все 36тыс. домов в мск, чтобы выявить многоофисные муравейники, расставить оборудование :)

Ответить
2

Подскажите пожалуйста, при парсинге URL с помощью similar urls, попросту нету данной кнопки в списке как на ваших скриншотах. Вместо неё Generate Url
Как тогда спарсить похожие url?
Заранее спасибо

Ответить
2

На вкладке «Run History» нужно дождаться полной загрузки данных, чтобы появилась зеленая галочка. После этого переходим на вкладку «Settings», и кнопка «Similar URLs» будет доступна. 

Ответить
0

Зеленая галочка есть, Similar URLs не появились 

Ответить
0

Федор, записали скринкаст этого этапа. Посмотрите, пожалуйста. Вы все так делаете? 

Ответить
0

К сожалению тоже не появляется кнопка Similar URLs. Делаю все как указан, повторил несколько раз. Подскажите в чем может быть проблема?

Ответить
0

Разобрался в чем дело. Кнопка появляется только у тех сайтов у которых сервис нашел карту сайта. Т.е. он не парсит урлы, а просто берет их из карты. Очень жаль https://monosnap.com/file/hGKtyp4LvPCJcSVzHe0fvvlCRkoZu5

Ответить
0

и у меня Similar URLs не появились, хотя зеленая галочка есть

Ответить
0

Александр, приложили скринкаст выше. Вы делаете так, и все равно не появляется кнопка "Similar URLs"? 

Ответить
0

не появляется. Как-то странно, сервис за несколько секунд у вас нашел 70к+ страниц. Возможно, эта кнопка появляется у вас, так как сервис уже в базе имеет данные о ваших страницах? Ну для себя я спарсил страницы сервисом Screaming Frog и загрузил. На import.io очень понравилась функция, которая позволяет парсер обучать распознавать элементы на нескольких однотипных страницах, это помогает, когда одни и те же элементы в стилях имеют разные id и трудно вычислить шаблоны XPath

Ответить
2

Никто конечно никаких объявлений не увидит с адблоком, ни на десктопе ни в телефоне, но прикольно.
Про парсинг было интересно.

Ответить
1

Спасибо за статью.

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

Но всё же, куда проще выгрузить эти данные из БД. И никаких лимитов (в большинстве случаев), да и даже без специальных знаний - научиться выгружать будет куда полезнее, чем разбираться в ворохе сервисов.

А про 1000 посадочных в конце - так они и были уже на сайте до старта работ, разве нет?)

Ответить
4

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

Парсить можно не только свои сайты, но и конкурентов. Например, изучить цены на аналогичные товары и их наличие, чтобы понять, где стоит усилить рекламу.

Ответить
0

А сколько занимает порсинг например 1000 страниц? По времени. Спасибо.

Ответить
1

Андрей, парсинг 1000 страниц в данном кейсе занял 18 минут. Время проработки зависит от количества URL и объема данных, которые нужно извлечь. 

Ответить
1

Спасибо за ответ!

Ответить
0

как зарегистрироваться на сайте adgasm.io ?
ни ссылки, ни формы, ни кнопок регистрации просто нет

Ответить
0

Вы имеете в виду import.io?

Adgsam.io — сайт нашего агентства. Там регистрироваться не нужно :)

Ответить
0

а, сорри... охрана, отмена

Ответить
0

Коллеги, как в данном случае поддерживается актуальность цен и наличия в объявлениях?

Ответить
0

Павел, спасибо за хороший вопрос.
Поддерживать актуальность источника данных можно через расписания в Import.io (команда "Schedule to run") и данных модификаторов объявлений — через расписания в коммерческих данных Ads. 

Когда цены/наличие товаров обновляются часто и вариант с префиксом "от... руб." не подходит, то лучше использовать генераторы объявлений. Если же такой проблемы нет — то можно обойтись без платных инструментов. 

Ответить
0

Хороший инструмент для аналитики. Спасибо!

Ответить
0

Спасибо! Классный инструмент, понравилась статья.

У вас в объявлении помарка: в одном месте написано, что 3700 отзывов, во втором — 1432 отзыва.

Ответить
0

И какие получились показатели? CTR, конверсии? Реклама окупилась на горизонте неделя-месяц?

Ответить
0

Как поступали в случае с gtin? или с монетами этот параметр не нужен? 

Ответить
0

@Kirill Khatkevich , мы запускали DSA (динамические поисковые кампании), параметр gtin для такого типа кампаний не требуется.

Ответить
0

понял, спасибо!

Ответить
0

Парсю сайты с помощью Datacol - обращайтесь.
Telegram: @karpekinn

Ответить
0

Кто писал эту статью: мастер своего дела или блогер теоретик, диванный специалист? Хотелось бы узнать и исходя из этого принять решение по своему сайту. Самому заниматься всем вышеописанным -это тоже самое, что медведя научить танцам. Мне нужен специалист, который мог бы заняться моим сайтом тем, что написано выше. Мой емайл: MetrikaWebYa@yandex.ru

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }