Алексей Филатов, 21 Февраля 2017

Пишем заголовки в Яндекс Директ

Продолжаем цикл статей на тему автоматизации разработки рекламных кампаний для интернет-магазина: составляем заголовки!


После прочтения статей вы научитесь: оптимизировать кампании в Excel методами, которые используются в оптимизаторах конверсий; автоматически собирать семантику, сегментировать и создавать объявления; прогнозировать конверсию на базе истории и многое другое.

Темы статей:

  1. Выгрузка данных из Google Analytics и Яндекс Метрики по API
  2. Парсинг ключевых слов в Key Collector
  3. Кластеризация запросов
  4. Агрегирование данных
  5. Прогнозирование конверсии для ключевых слов
  6. Расчет ставок
  7. Разработка заголовков
  8. Разработка рекламных кампаний
  9. Анализ эффективности

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

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

Когда у нас 11 000 объявлений, то разработка заголовков вручную может потребовать неоправданно много ресурсов, поэтому заголовки составляем из мета-тегов Title или H1 URL, на которые ссылаются ключевые слова.

Итак, что у нас есть? URL страниц, с которых мы можем спарсить мета-теги и из них составить заголовки, а для высокочастотных слов (в точном соответствии) пишем заголовки руками.

Здесь есть 3 варианта:

Выгрузить Titles по URL из Google Analytics - охват URL будет 90%

В предыдущих частях мы уже использовали API GA, поэтому показываю только запрос. Вы могли заметить, что в поле Start index и Max results у нас стоят значения 0-10000 и 10001-20000. Суть в том, что GA позволяет выгрузить только 10000 строк на один запрос и мы как бы делаем два запроса, но указываем, что в первому нужно с 1-ой по 10000-ую строку, а во втором точно такой-же запрос, но строки с 10001 по 20000.

На выходе имеем URL и Title, которые сможем подставить вместо заголовков.


Написать скрипт запроса к базе данных

Попросить клиента сделать скрипт, где на входе URL, а на выходе теги - самый оптимальный вариант! Вы можете попросить клиента сделать скрипт на секретном URL адресе.

Использовать парсеры, например Datacol. Это вариант в лоб, демонстрирую.

Создаем кампанию


Вставляем URL, которые нужно парсить


Выбираем пункт Все, это значит, что без лишних заморочек :)


Добавляем поле H1


Нажимаем селектор


Загружается одна из наших ссылок и нам нужно тыкнуть на текст, который нужно сохранить, он выделятся красным. Потом нажимаем «Сохранить» в левом верхнем углу.


Готово! Появится новая кампания - запускаем ее!


Внизу сразу появятся результаты, которые по завершении сохранятся в папку «Мои документы»


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

В нашем кейсе у нас есть скрипт на стороне заказчика, поэтому проблем по-убавится.

Теперь нужно придать заголовка вид, уместить их в 33 символа, использовать добавку к заголовку 23 символа, восклицательные знаки и так далее.

У нас для этого есть скрипт в питоне. Итак на входе мы имеем:


Применяем код

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import pandas as pd
import re

df = pd.read_excel('Headlines.xlsx', header=0)

# очищаем
df.dropna(inplace=True)
df.reset_index(drop=True, inplace=True)

# считаем символы в колонке с текстом
df.loc[:,'Len'] = df.loc[:,'Title'].str.len()

# очищаем от ненужных символов с помощью регулярного выражения
df.loc[:,'Title'] = df.loc[:,'Title'].str.replace(r'\/|\(|\)', '')

# создаем колонки для заголовков и первой строки
df.loc[:,'headline'] = ''
df.loc[:,'text1'] = ''

# экспортируем данные из исходного текста в колонки заголовка и первой строки
for i in range(len(df)):
    if df.loc[i,'Len'] > 33:
        for word in df.loc[i,'Title'].split(' '):
            if (len(df.loc[i,'headline']) + len(word) + 1) <= 33:
                df.loc[i,'headline'] += word + ' '
            else:
                if (len(df.loc[i,'text1']) + len(word) + 1) <= 23:
                    df.loc[i,'text1'] += word + ' '
                else:
                    df.loc[i,'text1'] = df.loc[i,'text1'][0].upper() + df.loc[i,'text1'][1:]
                    df.loc[i,'text1'] = df.loc[i,'text1'][0:(len(df.loc[i,'text1'])-1)] + '!'
                    break
        else:
            if len(df.loc[i,'text1']) > 0:
                df.loc[i,'text1'] = df.loc[i,'text1'][0].upper() + df.loc[i,'text1'][1:]
                df.loc[i,'text1'] = df.loc[i,'text1'][0:(len(df.loc[i,'text1'])-1)] + '!'
    else:
        df.loc[i,'headline'] = df.loc[i,'Title']
        continue

# пишем добавки
d = [u' в Москве', u' в МСК', u'!']

# скрипт добавления
for i in range(len(df)):
    if df.loc[i,'text1'] == '' and len(df.loc[i,'headline']) <33:
        for add in d:
            if len(add) <= (33 - len(df.loc[i,'headline'])):
                df.loc[i,'headline'] += add
                break
    else:
        continue

# добавляем текст в пустые добавки
for i in range(len(df)):
    if df.loc[i,'text1'] == '':
        df.loc[i,'text1'] = u'В наличии!'

df.to_excel('headlines.xlsx')

И получаем


Так же есть возможность применить применить подобный подход в Excel


Прикрепляю ссылку на файл

Теперь копируем заголовки в главный Excel и подтягиваем в основную таблицу с помощью VLOOKUP


Все!

Пишите вопросы в комментариях, какие темы было бы интересно раскрыть подробнее? Если у вас есть идеи или советы, то делитесь!

Подпишитесь на Facebook или Телеграмм, чтобы не пропустить новые статьи
Другие материалы по теме
Как сделать сквозную аналитику, кроме ROISTAT HOWTO
Как сделать сквозную аналитику, кроме ROISTAT
У нас поток проектов и всем нужно сводить расходы на рекламу с выручкой, у нас есть основных 5 решений, о которых я расскажу ниже.
Cквозная аналитика: AmoCRM с Google Analytics за пару часов HOWTO
Cквозная аналитика: AmoCRM с Google Analytics за пару часов
Как интегрировать AmoCRM с Google Analytics бесплатно без помощи программисто за пару часов, пошаговая инструкция. Как посчитать LTV каналов.
Сквозная аналитика: вручную за 15 минут HOWTO
Сквозная аналитика: вручную за 15 минут
Как вручную свести данные о продажах по источникам трафика.
Как настроить автоматическую отчетность по РСЯ-площадкам в разрезе конверсий и CPA HOWTO
Как настроить автоматическую отчетность по РСЯ-площадкам в разрезе конверсий и CPA
Как сводить конверсии и расходы по РСЯ-площадкам в Google Analytics.
Как вручную свести конверсии и их стоимость по площадками РСЯ в Google Analytics HOWTO
Как вручную свести конверсии и их стоимость по площадками РСЯ в Google Analytics
Как вручную свести расходы и конверсии в разрезе РСЯ площадок. Для этих целей рекомендуем работать в Google Analytics.
Сквозная аналитика бесплатно за 20 минут: Google Sheets + Google Analytics + Zapier HOWTO
Сквозная аналитика бесплатно за 20 минут: Google Sheets + Google Analytics + Zapier
В своем агентстве контекстной рекламы мы научились решать вопрос со сквозной аналитики для небольших кампаний. Наверняка наш опыт будет актуален для всех интернет-маркетологов.
читать наш блог

Оставьте заявку

После того, как вы оставите заявку: интервью ~15 минут → гостевые доступы для аудита ~15 минут → аудит в течении 2-х дней → согласование предложения → начало первой итерации. По нашему опыту реально начать что-то делать уже через 2-3 дня.

Менеджер проектов Александр
Александр

Менеджер проектов



Пишите на — info@1jam.ru , звоните в скайпе — jam.agency , или по телефону — 8 (800) 551-85-03