Алексей Филатов, 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 или Телеграмм, чтобы не пропустить новые статьи
Другие материалы по теме
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
В своем агентстве контекстной рекламы мы научились решать вопрос со сквозной аналитики для небольших кампаний. Наверняка наш опыт будет актуален для всех интернет-маркетологов.
Успевать в два раза больше, избавившись от клиентов-нытиков с помощью корреляционного анализа HOWTO
Успевать в два раза больше, избавившись от клиентов-нытиков с помощью корреляционного анализа
В ежедневной рутине вы перестаёте видеть, что 70% времени тратите на клиентов или проекты, с которых ничего не зарабатываете — что делать?
читать наш блог

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

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

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

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



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