Шаблон. Создание однотипных объявлений — Директ. Справка
В Директе существует специальный инструмент для создания однотипных объявлений — шаблоны. С их помощью можно подставить ключевую фразу, по которой было показано объявление, в заголовок, текст объявления, ссылку на сайт или отображаемую ссылку. Таким образом, для каждой ключевой фразы показывается уникальное объявление.
Обучающее видео. Шаблоны: уникальное объявление для каждой фразы
|
Шаблон можно добавить при создании или редактировании объявления. Для этого места, в которые требуется подставлять ключевые фразы, нужно справа и слева ограничить символом «#»
:
Чтобы объявление не теряло смысла при показе, необходимо указать фразу по умолчанию (например, #зоопарк#
).
Ключевые фразы должны быть подобраны таким образом, чтобы при замене шаблона на ключевую фразу текст оставался грамматически согласованным и соответствовал требованиям модерации. Например:
Регистр букв в ключевой фразе не меняется при подстановке в объявление с шаблоном. Если в ключевой фразе присутствует пробел, то при подстановке в ссылку на сайт он заменяется символами %20
.
Максимальное количество символов в заголовках, тексте объявления, ссылке на сайт и отображаемой ссылке ограничено. Если после подстановки ключевой фразы в шаблон ограничение будет превышено, вместо ключевой фразы будет использоваться фраза по умолчанию.
Убедитесь, что страницы, на которые ведут ссылки после замены в них шаблона на ключевую фразу, доступны. В ссылках кириллические символы автоматически кодируются в UTF-8. Важно, чтобы ваш сайт корректно принимал запросы в этой кодировке. В интерфейсе Директа ссылка с шаблоном в объявлении будет помечена символом .
Внимание.Подстановка возможна только в основную ссылку объявления, для быстрых ссылок подстановка шаблона не производится.
Шаблоны Яндекс.Директ: руководство по применению
Яндекс предлагает инструмент для автоматического создания однотипных объявлений – шаблоны. Хотя некоторые PPC специалисты считают, что это халтура на настройке, при правильном использовании шаблоны освобождают от части рутинной работы в аккаунте и показывают пользователям релевантную рекламу.
Давайте разберемся, в чем могут пригодиться шаблоны Яндекс.Директ, а также как их настраивать и использовать.
Для чего нужны шаблоны
Представьте, у вас более 1 000 ключевых слов, и большинство из них – низкочастотники. При классическом подходе «1 ключ = 1 объявление» одной кампании недостаточно. Как поступить?
Можно расширить кампанию хоть до 10 000 ключей с помощью группировки объявлений. Либо создать несколько кампаний. Однако это приводит к «раздуванию» аккаунта и, как следствие, сложности управления: нельзя элементарно посмотреть общую статистику.
Шаблоны позволяют не штамповать пачками однотипные объявления и кампании, и при этом избегать статуса «Мало показов». Как это работает?
Когда определенный ключевик приводит к показу объявления, Яндекс подставляет этот ключевик в заголовок, текст объявления и ссылку на сайт / отображаемую ссылку. В итоге по каждой поисковой фразе выходит уникальное объявление.
Например, если пользователь ищет «рубашка с коротким рукавом в клетку», в заголовке объявления он видит фразу «Купить рубашку с коротким рукавом в клетку».
Это также позволяет:
- Группировать ключи в разных написаниях (это пригодится для ошибочных и русифицированных вариантов брендовых ключевиков с английским написанием): «Купить стиральную машину indesit» и «Купить стиральную машину индезит»;
- Соблюдать нужные словоформы. Если заголовок звучит «Купить #стиральную машину indesit#», в этом же падеже вы задаете все варианты. «Купить #газовую плиту indesit» и т.д.
Ограничения
- Такой алгоритм срабатывает, если ключевая фраза содержит не более 33 символов (с пробелами, но за исключением минус-слов и операторов + и !). Иначе пользователь видит в объявлении вариант по умолчанию. Подробнее – далее в статье;
- Фразы в одном объявлении низкочастотные (менее 100 показов в месяц) и близкие по смыслу. Например, «услуги фотографа пермь», «фотосъемка пермь», «профессиональная фотосъемка пермь»;
- Общая частотность – не выше 300-350 показов в месяц.
Основная аудитория, кому пригодится настройка шаблонов – компании с большим количеством ассортиментных запросов с указанием модели товара и его характеристик (цвет, размер, бренд и т.д.) Интернет-магазины и сайты-каталоги.
Как добавить шаблон
При создании или редактировании объявления решите, какие слова подменять в зависимости от запроса пользователя, и ограничьте их решеткой (#):
Директ отмечает под блоком предпросмотра, что объявление содержит шаблон.
При подборе фраз проверяйте, что:
- Объявления грамматически правильные.
Примечание. Результаты автоматического парсинга часто «сырые». Прежде чем применять эту семантику в шаблонах, отформатируйте её и придайте рекламный вид.
Например, «магазины с комплектующими для пк» → «Магазин комплектующих для ПК», «интернет магазин комплектующие для пк купить» → «Купить комплектующие для ПК в интернет-магазине».
- Текст объявлений учитывает условия модерации Яндекса;
- Ссылки с подменами активные и ведут на правильные страницы;
- Вы укладываетесь в максимальное число символов по каждому полю:
Однако это невозможно для слишком длинных запросов. В этом случае выходит вариант по умолчанию (это тот, который вы задали в настройках с операторами #). Сделайте его более обобщенным, чтобы пользователь понимал смысл, но при этом чувствовал, что предложение ему подходит.
Допустим, в запросе «купить процессор intel core i7 в Перми» более 33 символов, его нельзя подставить в заголовок. Чтобы замена сработала корректно, настроим по умолчанию заголовок «Продажа intel core i7 в Перми»:
- Слово «процессор» опускаем, так как пользователь уже знает, что он ищет;
- Вместо «купить» – «продажа», чтобы отстроиться от конкурентов, большинство из которых пишут «купить»;
- Оставляем геодобавку, так как пользователь ищет процессор в конкретном городе.
По такому типу можно строить все объявления для интернет-магазина компьютерной техники. Типовой шаблон – «Продажа [название товара] в [город]».
Также учитывайте, что:
- При подстановке в ссылку пробел заменяется символами %20;
- Кириллица в ссылках автоматически кодируется в UTF-8. Важно, чтобы сайт верно принимал запросы в этой кодировке;
- Подставить ключевик можно только в основную ссылку, но не в быструю;
- При подстановке регистр букв не меняется. Если вы задаете ключевые слова с маленькой буквы, так они и встают в объявлениях.
Например, если заголовок – «Искали #автомобиль с пробегом#?», для подставления в шаблон пишем фразы с маленькой буквы: «автомобиль с пробегом купить», «автомобиль с пробегом купить в Перми».
В меню «Настройки на всю группу» задайте все подмены:
Чтобы вывести их в виде списка, нажмите «Подобрать слова», введите нужные, затем – «Создать комбинации».
Если список подмен большой, удобнее составить таблицу в Excel и загрузить в Директ Коммандер.
Как использовать шаблоны
Разберем на примере группы объявлений.
Создаем объявление. Заполняем поля:
В интерфейсе настроек указываем, что показывать, если длина фразы превышает лимит. Например, при запросе «Настроить рекламу в Яндекс.Директ» (более 33 символов). Такое объявление видит в этом случае пользователь:
Добавляем фразы в группу, можно добавить на этом уровне минус-слова.
Вот варианты объявлений на основе фраз из списка, который мы составили:
1) Ключевая фраза «Увеличить конверсию сайта»:
2) Ключевая фраза «Увеличить продажи с сайта»:
3) Ключевая фраза «Сэкономить рекламный бюджет»:
Вместо заключения
Когда у вас в рекламной кампании сотни и тысячи однотипных фраз с однотипными предложениями в заголовке объявления – экономьте свое время на настройке, используйте шаблоны.
Высоких вам конверсий!
Как работают шаблоны в Яндекс Директ, плюсы и минусы их применения
Любой специалист стремится облегчить свою работу, упростить, как-то стандартизировать. Так меньше расходуется времени, появляется время на обучение, сосредоточение на более важных делах. В конце концов, ускоряя работу мы можем больше заработать и меньше времени на это тратить.Приветствую!
Сегодня поговорим про шаблоны объявлений в Яндекс Директ. Что это и где, как они работают и как их применять. Для чего они нужны, их плюсы и минусы и нюансы в применении.
Содержание статьи:
- Шаблоны объявлений
- Нюансы
- Плюсы и минусы
- Резюме
Шаблоны объявлений Яндекс Директ
Шаблоны Яндекс Директ – это специальный инструмент для создания шаблонных объявлений, когда ключевые запросы подставляются в объявления автоматически.
Чтобы создать такое правило, нужно заключить фразу в тексте между значками ##. Так Яндекс понимает, что это не текст, а шаблон и вместо него вставляет ключевую фразу из группы объявлений.
Где он применяется:
- Заголовок объявления
- Текст
- Ссылка на сайт
- Отображаемая ссылка
В ссылке пробел заменяется символом %20. Соответственно, ссылка должна быть рабочей, по ней должна быть страница.
Добавляются шаблоны точно также, как обычное объявление. Создаёте или редактируете группу. Заполняете поля Заголовок, второй заголовок, текст и прочее используя знаки ##, там, где хотите применить шаблон. Выше я приложил скриншоты, чтобы было понятно.
При нахождении в списке групп объявлений группа, где применён шаблон будет помечена: “Объявление содержит шаблон”.
Нюансы шаблонов
1. Ключевые фразы при сборе пишутся с маленькой буквы. Если фраза заключённая в решётки находится в начале заголовка или текста, соответственно, стоит ключевые фразы переписать с большой буквы.
Если же вы хотите применить шаблон посередине текста, то ключи должны быть написаны с маленькой буквы.
Получается, что если вы хотите применить шаблон, например в начале заголовка и в середине текста, то у вас выйдет ляпсус. Вот такой, как на изображении в начале этой статьи. Это реальное объявление. Я его встретил на просторах интернета и специально для этой статьи сохранил. Маркетолог использовал его в РСЯ и ключевые запросы написаны с маленькой буквы.
Чаще шаблоны используют на поиске, чем в РСЯ, оно и логично. В РСЯ, в принципе, он не нужен, там другой способ работы.
2. Все поля для создания объявлений имеют лимиты по символам, например лимит для заголовка 35 знаков. В них нужно уложиться. Что будет, если не уложитесь? Показываться будет тот текст, который вы заключили между значками ##. Если учесть, что шаблон чаще используют для низкочастотных многословных запросов, потому как они попадают в статус “Мало показов”, то часто ключевой запрос показан не будет. И в итоге шаблон применён зря.
3. Ключевые запросы часто пишутся не по правилам русского языка, отсюда проблемы с модерацией и показом объявлений. Ошибки иногда притягивают внимание, и в то же время отталкивают безграмотностью и снижают доверие. Большую часть запросов можно привести в соответствие правилам языка. Это занимает достаточно времени.
Плюсы и минусы
Шаблоны помогают избавиться от статуса “Мало показов” – это плюс. Тут есть и минус, чаще “мало показов” присваивается ключам, которые не влазят в лимит заголовка. Вряд ли найдётся объявление, которое не войдёт по символам в текст объявления.
Чаще нужная фраза используется в начале заголовка или текста объявлений, в таком случае каждую фразу нужно править, точнее первую букву каждой фразы нужно сделать заглавной.
Часто слова в ключевых запросах перемешаны не по правилам языка. В итоге нужно каждую фразу пересматривать и, если есть необходимость приводить в соответствие.
Не забывайте между символами ## ставить релевантный текст той группе фраз, для которой составляете объявления. На случай, если ключевой запрос не войдёт в лимит поля.
Резюме
Основные способы создания объявлений:
- 1 ключ – 1 объявление,
- 1 объявление на несколько ключей,
- шаблон.
Шаблон позволяет не потерять релевантность, которая теряется при настройке вторым способом. И обойти статус “Мало показов” при применении первого способа.
Старайтесь войти в лимиты. На случай, что ключевой запрос не будет показан, между символами ## пишите текст, который будет показан вместо ключевого запроса. Лучше, чтобы он был максимально релевантным ключевой фразе.
Актуальнее всего шаблоны применять интернет-магазинам, где много товаров в одной категории, отличающиеся по маркам, размерам, брендам, цвету и прочим характеристикам.
“Думайте сами, решайте сами …” использовать ли шаблоны и в каких случаях. Когда они облегчат труд и улучшат эффективность рекламной кампании, а когда не облегчат или не улучшат.
P.S.
Хотите эффективную рекламу или полное интернет-продвижение под ключ (Проработка вашего предложения + Сайт + Реклама), которые создадут вам стабильный поток заявок, без необходимости в активных поисках клиентов и вне зависимости от кризисов?
Оставьте заявку на стратегический разбор вашей ситуации. После получения вашей заявки я с вами свяжусь, мы обсудим вашу ситуацию, к чему вы хотите прийти и я скажу, помогу ли я вам и как именно.
Для этого нажмите кнопку и там заполните форму заявки:
Успешного продвижения!
Понравилась статья – поделись ею, жми кнопку любимой соцсети — Поделиться.
Получай все статьи и новости сайта в свой Вконтакте, Facebook или на электронную почту — подпишись на статьи сайта (справа). И получи бесплатное руководство “Настройка Яндекс Директ пошагово” – справа красная книжная обложка.
Поделись своим мнением в комментариях, так статьи будут интереснее и ценней!
Поделитесь с друзьями:
Читайте в продолжение:Шаблоны объявлений в Яндекс Директ
- Главная
- Блог
- Шаблоны объявлений в Яндекс Директ
Большинство рекламодателей придерживаются правила: «1 объявление = 1 ключевому запросу», пренебрегая таких способов как шаблоны. Рассмотрим для чего же нужны эти шаблоны объявлений в Яндекс Директе и как ими пользоваться.
Шаблоны в Яндекс Директе
Шаблон объявлений позволяет перенести на место заголовка, текста объявления или отображаемую ссылку ту ключевую фразу, которая была прописана в первом объявлении группы, в том случае, если они превышают допустимое количество символов. Текст шаблона выделяется знаками решетки «#».
Пример: #Продажа дивана#
В случае, если текст запроса не превышает ограничение, то будет отображаться объявление по ключевому фразе, которая была запрошена.
Как сделать шаблон объявлений
Прежде чем начать делать шаблон объявлений Яндекс Директ, нужно хорошенько поработать с ключевыми фразами. Так как чаще всего ключевые фразы не имеют корректного вида, то их нужно привести в более презентабельный вид. Например:
Диван купить → Купите диван;
Диван заказать → Закажите диван;
Диван недорого → Недорогие диваны;
Магазин с диванами и доставкой → Магазин диванов с доставкой;
и так далее.
После того, как определились с ключевыми фразами, в заголовке между знаками решетки вписываем непосредственно ключевую фразу. А так же в начале текста объявления между решетками прописываем такую же ключевую фразу как и в заголовке. На данном этапе настройки, можно так же вписать минус фразы.
Итак, при запросе ключевой фразы, которая проходит по ограничению, будет отображаться с запрашиваемой фразой. А если запрос превышает ограничение по символам, то будет показано объявление с ключевой фразой из шаблона настроек Яндекс Директа.
Настройка шаблонов Яндекс Директ через Excel
Для более удобного и быстрого создания шаблонов объявлений, можно воспользоваться документом Excel, используя в таблице знаки # решетки.
В данном файле, нужно прописать в столбцах «Заголовок 1» и «Текст» соответствующие ключевые фразы как при создании рекламной кампании.
После чего, файл с готовой рекламной кампанией сохраняется и загружается в Яндекс Директ. А следом запускаются показы этих объявлений.
Применение шаблонов в рекламных кампаниях довольно-таки сложный процесс, в который нужно вникнуть, прежде чем использовать.
Шаблоны объявлений в Яндекс.Директ | medoed1.ru
Контекстная рекламаКогда нужно написать объявления для огромной рекламной кампании, с сотнями, а то и больше, ключей, то только и хочешь, чтобы появился какой-нибудь магический инструмент, благодаря которому все можно будет сделать в пару кликов. И подобный действительно существует. Конечно, парой кликов не отделаешься, но работу он упрощает — речь идет о шаблонах объявлений в Яндекс.Директе. Но так ли он полезен на самом деле, и есть ли какие-то подводные камни?
На практике написание шаблонного объявления осуществляется с помощью оператора ##, который означает, что в объявление будет подставлен поисковый запрос пользователя. Если же запрос слишком длинный (читайте об ограничениях в Яндекс.Директе), то замены не происходит, а в заголовке или тексте появляется то, что вы разместили по умолчанию между двумя решетками.
Полезно ли это? С точки зрения скорости — безусловно, да. Но как отражается на качестве объявлений? К сожалению, все не так радужно.
Итак, в чем же кроются подвохи.
- В Яндекс.Директе учитывается регистр, а слова, которые вводят пользователи, как правило написаны только маленькими буквами, из-за этого объявление становится менее привлекательным, что уже плохо сказывается на CTR, а также вы теряется возможность использовать капслок там, где это уместно, например, в названиях брендов.
- Вы не сможете учесть всех возможных запросов, и из-за этого объявления потеряют в релевантности. Например, вы внесли в шаблон «#заказать чистку ноутбука#», а поисковый запрос был «заказать чистку ноутбука acer». Это означает, что пользователь увидит объявление с вашим шаблоном, который не в полной мере соответствует его запросу. Только если вы не внесли в кампанию его запрос.
- Заголовок объявления не резиновый, чего не скажешь о поисковом запросе. Если длина запроса выше 35 символов (а это длина первого заголовка в Директе), то вместо подставленного запроса пользователь увидит ваш стандартный текст. И все бы еще ничего, но ведь вы можете оказаться в шаге от нормального показа. Например, вы учли запрос «заказать чистку ноутбука acer», но пользователь набирает «заказать чистку ноутбука acer москва недорого», что уже превышает допустимый лимит. В этом случае пользователь увидит ваш стандартный шаблон, то есть что-то вроде «ремонт ноутбуков».
- Чтобы написать нормальное объявление с шаблоном, нужно хорошо просчитать, как с точки зрения грамматики и здравого смысла будет выглядеть текст объявления: все ли слова там согласуются друг с другом, нет ли нарушения логики. Из-за этого, а также из-за необходимости тщательного подбора семантики, написание объявлений с шаблонами требует несколько больше времени, чем кажется изначально.
Из всего этого следует вывод, что шаблоны неплохо используются с высокочастотными запросами, но трудно применимы для низкочастотных, а без них контекстная реклама многое теряет, так как НЧ-ключи дешевле, и по ним можно отхватить лакомый кусок трафика, хотя и нужно иногда возиться со статусом «Мало показов».
Кроме того, надо отметить, что вариант с шаблонами не применим для интернет-магазинов, хотя, казалось бы, это наоборот лучшая для них сфера: когда есть много товаров с похожими названиями, то прописать названия моделей проще всего было бы путем шаблонов, но здесь уже сложность состоит в том, что адреса страниц у товаров разные, а это в объявлении учесть невозможно, так что если и пробовать какую-то хитрость, то лучше потестировать динамические объявления. Но если эти товары находятся на одной странице, то шаблон может оказаться и подходящим решением. Или если ссылки отличаются только названием модели, то шаблон можно попробовать подставить и в сам УРЛ. По сути, это единственное неплохое решение по использованию шаблонов.
В остальном же, данный метод не несет много пользы. Объявления становятся менее релевантными, из-за чего снижается CTR. Кроме этого, затрудняется процесс аналитики: гораздо проще и нагляднее выделить хорошо работающие ключи, когда у каждого есть свое объявление. Поэтому шаблоны объявлений в Директе могут сэкономить ваше время, но никак не деньги.
Шаблоны в Яндекс Директе — инструкция как создавать однотипные объявления
Допустим, стоит задача создать 350 однотипных рекламных объявлений, каждое на один отдельный «ключ».
Специально для подобных задач в рекламной площадке «Яндекс Директ» предусмотрен особый инструмент – «Шаблоны», воспользовавшись которым можно создать свой сценарий по заполнению текстов объявлений с помощью подстановки поискового запроса. Это позволяет соблюсти релевантность и в автоматизированном режиме заполнить огромное количество рекламных объявлений, подставив «ключи» в необходимые места.
Конечно же, это не является универсальной «панацеей от всех болезней» и не устраняет абсолютно все системные недостатки. Остается актуальной проблема с превышением допустимого количества знаков в текстах и изменение словоформ в зависимости от заданного контекста. По-прежнему, это предстоит делать вручную, внимательно всё проверяя и редактируя текста.
Инструмент особенно актуален при ведении массивных кампаний на поиске и в сети сайтов-партнеров «Яндекса».
Как создать «Шаблон» в «Яндекс Директе»
Сам по себе процесс очень легкий, не требует обладания какими-либо профильными знаниями и сводится к использованию специального оператора «#». Чтобы его поставить достаточно перейти к уже существующей группе объявлений или создать новую (в случае, если её ещё нет).
Говоря простым языком, оператор «#…#» задаёт переменные, обращенные к настроенным и заранее заданным «ключам». В нашем примере вместо шаблона #Цветы#, можно задать все доступные в продажи виды цветочных изделий (розы, орхидеи, лилии, хризантемы и т.д.).
При подстановке поискового запроса в текста заголовков и рекламных объявлений соблюдаются заданные регистры. По этой причине обязательно следите за лексическим и грамматическим соответствием фраз. Чтобы наиболее точно передать словоформу, стоит изначально продумать задействование предлогов, союзов, запятых, и других элементов синтаксиса, а также знаков препинания во избежание образования бессмыслицы на выходе.
Аналогичным образом можно настроить и другие варианты объявлений, поменяв регион и прочие шаблонные атрибуты.
Как уже говорилось ранее, количество символов ограничено и подчиняется общим правилам службы модерации компании «Яндекс». При подсчёте знаков решетки не учитываются. Таким образом, доступно 35 символов в заголовке рекламного объявления и 77 в самом тексте с учетом двух операторов, установленных по обе стороны «шаблонного ключа».
В случае превышения количества знаков при подстановке «ключевика» система покажет первоначально заданный вариант (значение, по-умолчанию, за вычетом решёток).
Заключение
Таким образом, задействовав шаблоны в «Яндекс Директе», мы получаем возможности по ускорению выполнения огромного объема трудоемкой работы и рационализации временных затрат. Стоит лишь только внимательнее отнестись к словоформам и количеству знаков для избегания непредвиденных проблем с неточностями и грамматической бессмысленностью, негативно сказывающихся на CTR и расходах на рекламу в целом (показы идут, а кликов по объявлениям нет и, как следствие этого, рост стоимости одного рекламного перехода).
Комментарии
Хотите узнать все
подробности о своём
сайте, звоните:
8 800 200 47 80
(Бесплатно по России)или
Отправить заявку
Сообщение отправлено
Как составить 1000 объявлений контекстной рекламы из YML-файла
Запуск рекламной кампании неразрывно связан с подбором ключевых фраз и составлением продающих объявлений. Для интернет-магазинов с 20-30 товарами этот процесс не занимает много времени, даже если все делать вручную. Но если нужно прорекламировать 200, 500 или даже 1000 товаров, то задача становится слишком трудоемкой.
Решить проблему поможет генератор из YML. За пару кликов он сгенерирует ключевые фразы и объявления для каждой позиции в вашем ассортименте.
Рассмотрим, что умеет инструмент и как с ним работать.
Кому и для каких задач подходит генератор из YML
Как работать с генератором ключей и объявлений
Шаг 1. Добавление YML-файла
Шаг 2. Генерация ключевых слов
Шаг 3. Генерация объявлений для Яндекс.Директ
Шаг 4. Генерация объявлений для Google Ads
Шаг 5. Получение результата
Сколько стоит инструмент
Кому и для каких задач подходит генератор из YML
Генератор из YML позволяет собрать ключевые фразы из YML–файла. Сгенерированные ключевики используются для расширения семантики сайта и запуска контекстной рекламы.
Инструмент подходит интернет-магазинам с широким ассортиментом товаров, которые выставляют свои предложения на Яндекс.Маркете в формате YML.
Возможности генератора из YML:
- Быстрая генерация ключевых фраз из файла YML для поискового продвижения или контекстной рекламы.
- Автоматическое создание объявлений для каждого товара (отдельно для Яндекс.Директа и Google Ads).
- Настраиваемые шаблоны ключей и объявлений.
- Создание нескольких шаблонов объявлений для одного и того же товара.
- Ограничение длины заголовков и описаний объявлений (по количеству слов или символов).
- Доступно 4 элемента объявления: заголовок 1, заголовок 2, описание, отображаемая ссылка.
- Для всех объявлений доступен предварительный просмотр.
Преимущества использования генератора из YML:
- Не нужно специально загружать YML файл — достаточно указать ссылку на него.
- Результат выгружается в формате XLS.
- По завершении формирования отчета на e-mail приходит уведомление.
- Отчет хранится в «облаке» неограниченное время.
- Инструмент бесплатный.
Как работать с генератором ключей и объявлений
Зарегистрированные пользователи Click.ru могут бесплатно пользоваться возможностями генератора из YML.
Если у вас еще нет аккаунта, заведите его. Подробнее о процессе регистрации и запуске рекламы через Click.ru читайте в статье «Как запустить рекламу в Яндекс.Директ и Google Ads через Click.ru».
Шаг 1. Добавление YML-файла
После авторизации перейдите на страницу инструмента. Для этого в левом меню в разделе «Инструменты» выберите «Объявления» — «Генератор из YML»:
Нажмите «Добавить задачу». Укажите ссылку на свой YML-файл.
Для справки: Что такое файл YML и где его взять
YML (Yandex Market Language) — это стандарт на основе XML, разработанный Яндексом. Служит для передачи данных о товарах интернет-магазинов в Яндекс.Маркет.
Файл YML содержит в структурированном и стандартизированном виде информацию о товарах магазина: название, цена, категория, описание и т. д. Преимущество YML перед другими форматами — в возможности автоматизировать обновление информации о товарах в Яндекс.Маркете.
Структура документа YML выглядит так:
Может быть 2 ситуации:
- ваш магазин уже принят в Яндекс.Маркет. Если прайс-лист создан в формате YML, то файл будет располагаться в корне сайта. Если вы подгружаете товары с помощью XLS, CSV и TSV, то файл YML нужно создать и разместить в корневой папке;
- ваш магазин не добавлен в Яндекс.Маркет. В такой ситуации у вас не будет YML, и его надо сгенерировать.
Создается YML-файл разными способами: вручную, с помощью CMS, скрипта или генератора.
Шаг 2. Генерация ключевых слов
Генератор ключевых слов работает по принципу шаблона. В квадратных скобках указаны переменные элементы шаблона, которые подгружаются из YML-файла. Текст, который будет оставаться без изменений, указывается за квадратными скобками (до или после переменных элементов).
Доступные элементы:
- Название товара (в синтаксисе YML — name).
- Название бренда (vendor).
- Тип товара (typePrefix).
- Категория (category).
- Описание (description).
- Цена (price).
Для добавления переменного элемента в шаблон просто перетащите его из поля справа в поле шаблона:
При необходимости вы можете добавить столько шаблонов, сколько нужно (кнопка «Добавить шаблон для генерации слов»).
Бывает, что необходимо подкорректировать содержание элемента шаблона (например, название товара слишком длинное). В этом случае нажмите на значок шестеренки в поле шаблона, чтобы перейти в режим настройки тегов для этого шаблона.
В этом режиме для каждого переменного элемента шаблона вы можете:
- Указать регистр слов («С заглавной буквы», «Нижний регистр», «Верхний регистр», «Название Товара»).
- Задать правила обрезки фраз (например, оставить только 3 первых слова или 40 первых символов).
После сохранения изменений ключевые фразы формируются с учетом заданных правил:
Как составить шаблоны ключевых фраз:
- Воспользуйтесь Яндекс Wordstat для сбора базового семантического ядра (собирайте ключи по категориям товаров — «кроссовки», «сапоги», «ботинки» и т. п.). Подробнее об использовании Яндекс Wordstat в контекстной рекламе читайте здесь.
- После этого посмотрите, какие синтаксические конструкции наиболее характерны для вашей тематики (ваша задача — определить плюс-слова и то, как пользователи формулируют запросы).
- Исходя из собранной информации сформируйте шаблоны ключевых фраз, которые помогут привлечь целевую аудиторию.
Пример. В Яндекс Wordstat вводим запрос «электродрель» и получаем ориентировочный список фраз:
На основе проанализированной информации можно сформировать такие шаблоны:
- Купить [Название товара]
- [Тип товара] [Название бренда] цена
- [Категория] интернет-магазин
- [Категория] Москва
- Купить [Название товара] Москва
- Купить [Категория] [Название бренда] недорого
И это только начало. Вариантов может быть масса. В зависимости от тематики могут добавляться плюс-слова «от производителя», «оптом», «в розницу», «продажа», «цена за кг» и др.
Следите, чтобы статические слова не конфликтовали с переменными элементами. Например, если в ассортименте магазина есть дрели и сверла, то шаблон вида «[Категория] аккумуляторные» даст адекватную фразу «дрели аккумуляторные» и бессмысленную «сверла аккумуляторные». Но если в ассортименте большинство товаров — именно дрели, то использование специфических статических слов оправдано (путем чистки в Excel вы сможете быстро убрать нерелевантные фразы).
Шаг 3. Генерация объявлений для Яндекс.Директ
С помощью шаблона генерируются объявления для рекламы в Яндексе. Принцип работы аналогичен шаблону для генерации ключей.
Помните, что длина полей имеет ограничения:
- Заголовок 1-35 символов с пробелами.
- Заголовок 2-30 символов с пробелами.
- Описание — 81 символ с пробелами.
- Отображаемая ссылка — 20 символов с пробелами.
Для «обрезания» фраз в каждом поле можно пойти одним из двух путей:
1. Задать максимальное количество символов (значок шестеренки). Так вы будете точно знать, что длина полей не превышает максимальную. Но в этом случае придется вручную корректировать массу объявлений, поскольку будут встречаться такие варианты:
То есть придется убирать слова, которые обрезались. Чтобы такого не произошло, воспользуйтесь вторым способом.
2. Ограничить максимальное количество слов. Например, для заголовка 1 обычно устанавливают не более 2-3 слов. Этот способ менее трудоемкий, чем предыдущий. Тем не менее необходимо просмотреть и при необходимости откорректировать объявления перед размещением, ведь из-за длинных слов лимит может быть превышен.
Шаг 4. Генерация объявлений для Google Ads
Здесь все аналогично созданию объявлений для Яндекс.Директа. Отличие лишь в том, что тут 2 поля для отображаемого URL:
Также отличается максимальная длина текста в полях:
- Заголовок 1-30 символов с пробелами.
- Заголовок 2-30 символов с пробелами.
- Описание — 80 символов с пробелами.
- Отображаемая ссылка 1 — 15 символов с пробелами.
- Отображаемая ссылка 2 — 15 символов с пробелами.
Шаг 5. Получение результата
После генерации ключей и объявлений отчет в формате XLSX доступен в списке задач. Здесь же есть ссылка, по которой вы можете проверить частотность сгенерированных ключей с помощью парсера Wordstat. О том, как с его помощью отобрать фразы, которые обеспечивают трафик, читайте здесь.
В отчете 2 листа. На первом собраны ключи и объявления для Яндекса, на втором — для Google.
Если вы генерируете несколько сотен или тысяч объявлений, это займет пару минут. После запуска процесса не обязательно держать браузер открытым. По завершении генерации вам на почту придет уведомление.
Сколько стоит инструмент
Инструмент бесплатный для всех пользователей, зарегистрированных в Click.ru. Ограничений по количеству сгенерированных ключей и объявлений нет.
С генератором из YML создание 1000 объявлений за 5 минут становится реальностью. Конечно, нужно потратить пару часов на «шлифовку», но эта работа несравнима с полностью ручным составлением текстов.
Хотите увеличить доход от ведения контекстной и таргетированной рекламы? Регистрируйтесь в Click.ru, подключайте аккаунты своих клиентов к системе и получайте вознаграждение до 12% от их расходов на контекст и до 18% — на таргет.
Представление коннекторов Яндекс.Метрики и Яндекс.Директа
15-МИНУТНОЕ ЧТЕНИЕ · Компания Supermetrics.
Мы рады выпустить мощный дуэт: коннекторы Яндекс.Метрики и Яндекс.Директа. Благодаря этим двум новым интеграциям вы можете полностью контролировать анализ и составление отчетов по маркетинговым данным от Яндекса — крупнейшей местной поисковой системы в России.
Ниже я расскажу, по каким метрикам вы можете сообщать из Яндекс.Метрики и Директ, каковы ограничения пользовательского интерфейса отчетности на каждой платформе и как вы можете улучшить свои отчеты Яндекса с помощью Supermetrics для Google Sheets, а также коннекторов Metrica и Direct для данных Google. Студия.
Кроме того, вы получите множество полезных шаблонов отчетов Data Studio и Google Sheets, которые упростят обработку и визуализацию данных как для Metrica, так и для Direct.
Прочтите статью с самого начала, если хотите понять основы отчетности, лежащие в основе этих двух интеграций с Яндексом, или сразу переходите к интересующему вас разделу:
Отчетность по данным Яндекс.Метрики
Обработайте данные Яндекс.Метрики: отчетность в Google Таблицах
Объединить Яндекс.Данные метрики с показателями из других источников
Погрузитесь глубже с помощью формул и нескольких параметров отчета
Общий вид данных Яндекс.Метрики
Построение отчетов Яндекс.Директа
Обзор Яндекс.Директа: The Data Studio Power
Fly High, Dive Deep: перенос данных Яндекс.Директа в Google Таблицы
Вместе сильнее: отчетность Яндекс.Метрики и Яндекс.Директа
Отчетность Яндекс.Метрики
Metrica — это бесплатный инструмент аналитики, который позволяет измерять посещаемость вашего сайта.Как и Google Analytics, он дает представление о поведении посетителей вашего веб-сайта.
Яндекс.Метрика предлагает своим пользователям два варианта анализа данных: раздел «Личный кабинет», где вы можете получить общий обзор ваших показателей, и раздел «Отчеты», где вы можете просматривать и строить более подробные отчеты.
Однако пользовательский интерфейс отчетов не идеален: у него есть некоторые недостатки с точки зрения более глубокого изучения данных и их визуализации.
В разделе «Панель мониторинга» представлен общий обзор ваших ключевых показателей, визуализированный с помощью добавляемых виджетов.Однако виджеты могут быть представлены только с 4 типами графиков: метрическая система показателей, таблица, спарклайн или круговая диаграмма.
Основным недостатком этого раздела является то, что вы можете просматривать только один настраиваемый отчет за раз: чтобы получить «полную картину», вам нужно будет переключаться между разными страницами. Суперметрики для Google Таблиц и Google Data Studio позволяют улучшить отчетность Яндекса, поместив все необходимые данные в одностраничный отчет.
Анализируйте данные Яндекс.Метрики: отчетность в Google Таблицах
Объединить данные Яндекс.Метрики с метриками из других источников
Яндекс.Метрика — отличный инструмент для анализа, но в нем нет возможности для многоканальной отчетности. Чтобы сравнить данные Метрики с данными из других сетей, вам необходимо экспортировать их в электронную таблицу.
Один из распространенных примеров такого сравнения — Яндекс.Метрика и Google Analytics. Глядя на данные с двух разных платформ бок о бок, вы можете легко обнаружить различия, что повысит точность данных.
Погрузитесь глубже с помощью формул и нескольких параметров отчета
С выигрышной комбинацией Supermetrics + Google Sheets вы можете обрезать и визуализировать данные Metrica так, как вы хотите. Давайте посмотрим на пример панели «10 основных источников трафика» ниже:
Во-первых, боковая панель надстройки Supermetrics позволяет очень легко извлекать и сортировать данные Metrica, а также разделять одну или несколько метрик по параметрам по вашему выбору: всего несколькими щелчками мыши вы можете получить 10 последних значительных источников трафика и соответствующее количество пользователей для каждого источника.После этого вы можете получить больше данных об источниках трафика за прошлый год, разделенных по месяцам, и получить данные о самой популярной целевой странице для каждого источника трафика.Затем с помощью формул вы можете легко собрать все данные в одну диаграмму: в приведенном выше примере показана 12-месячная тенденция количества сеансов для каждого источника трафика, а также упоминается соответствующая верхняя целевая страница.
ФормулыGoogle Sheets предоставляют вам свободу управления данными — после того, как метрики и измерения извлечены с помощью Supermetrics, возможности их анализа и извлечения необходимой информации безграничны.
Общий вид данных Яндекс.Метрики
Еще одной проблемой пользовательского интерфейса отчетности Яндекс.Метрики является то, что ни панель управления, ни пользовательские отчеты не предоставляют необходимого обзора и глубины для удобного повседневного мониторинга метрик.
Reporting Metrica data with Supermetrics в Google Data Studio упростит вашу жизнь: панель управления Data Studio позволяет получить обзор всех важных показателей. Вы также можете использовать детализацию: добавить несколько измерений в таблицу и изучить различные параметры графиков, чтобы настроить каждый отчет так, как вы хотите.
Если вы хотите использовать этот шаблон отчета, нажмите на эту ссылку и следуйте инструкциям в заголовке шаблона.Построение отчетов Яндекс.Директа
Яндекс.Директ — платформа, аналогичная Google AdWords: с помощью этого рекламного сервиса вы можете создавать и отслеживать поисковые объявления.
Интерфейс отчетовЯндекс.Директа менее продвинут, чем у Метрики — в нем нет панели инструментов, которая состоит из виджетов, помогающих получить общий обзор статистики, и не позволяет создавать несколько подробных отчетов.Основным способом предоставления подробной статистики на этой платформе является мастер отчетов.
В мастере отчетов вы можете выбрать несколько показателей и разделить их по одному или нескольким параметрам.
Как и в Метрике, в Яндекс.Директе вы можете сохранять свои собственные отчеты. Но чтобы их просмотреть, вам снова придется переключаться между вкладками. Вы можете избежать этой проблемы, создав отчет с суперметриками в Google Таблицах или Студии данных, где все соответствующие диаграммы можно просмотреть на одной странице.Прочтите статью, чтобы узнать, в чем преимущество просмотра релевантных метрик Директа в Google Data Studio и почему полезно сравнивать данные Яндекс. Директа с данными из других социальных сетей.
Обзор Яндекс.Директа: мощность Студии данных
Supermetrics позволяет легко переносить данные Яндекс.Директа в Google Data Studio, поэтому у вас есть все необходимые метрики и измерения в одном месте.
Панель управления Data Studio Яндекс.Директа предоставит вам отличный обзор актуальной статистики: вы можете создавать системы показателей с основными метриками и линиями тренда, чтобы увидеть, как эти ключевые метрики меняются со временем.Вы также можете, например, легко разбить такие показатели, как CTR, CPC и Cost по кампании. Кроме того, вы можете сделать разбивку по типу устройства.
Еще одной замечательной особенностью коннектора Supermetrics для Студии данных является то, что он позволяет получать данные отчета с нескольких аккаунтов Яндекс.Директа . Чтобы выбрать учетные записи, из которых вы хотите получать данные, просто создайте раскрывающееся меню с параметром «учетная запись» и выберите соответствующую учетную запись в раскрывающемся списке.
Если вы хотите получить шаблон, представленный в примере, щелкните здесь и следуйте инструкциям в заголовке файла.Летайте высоко, ныряйте глубже: загружайте данные Яндекс.Директа в Google Таблицы
Это распространенный сценарий, когда маркетологи размещают рекламу на нескольких разных платформах, помимо Яндекс.Директа: это обеспечивает лучшее покрытие и больше конверсий. Чтобы максимизировать рентабельность инвестиций при таком подходе, вам необходимо иметь подробный отчет.
Вы можете построить такой отчет благодаря Supermetrics для Google Sheets: извлеките данные из нескольких источников и создайте «матрицу микса платных каналов» с помощью формул:
Далее вы можете подробнее изучить Яндекс.Прямые данные: разбейте ключевые показатели по дате, кампании, ключевому слову или любому другому параметру, который вы хотите: Чтобы просмотреть и использовать отчет, представленный в этом примере, щелкните здесь. Следуйте инструкциям в правом верхнем углу файла о том, как получить этот шаблон из галереи шаблонов Supermetrics Google Sheets.Вместе сильнее: отчетность Яндекс.Метрики и Яндекс.Директа
Яндекс.Метрика и Яндекс.Директ могут быть связаны между собой: таким образом можно легко просматривать данные Метрики в Директе и наоборот.Однако количество доступных показателей и измерений очень ограничено. В Яндекс.Директе вы можете сообщать только показатель отказов, отказов, сеансы и средние просмотры страниц в качестве показателей веб-сайта, в то время как в Метрике можно сообщать только данные о кликах и стоимости.
Решение состоит в том, чтобы использовать коннекторы Яндекс.Метрики и Яндекс.Директа вместе для извлечения данных из обоих источников: таким образом вы можете строить диаграммы, как в вышеупомянутых примерах, и составлять красивую панель управления с несколькими метриками.
Заключение
Яндекс.Метрика и Яндекс.Директ являются ключевыми платформами для маркетинга в России.
У встроенного пользовательского интерфейса отчетов обоих инструментов есть свои недостатки: вы не можете выполнять углубленный анализ или хорошо визуализировать всю ключевую статистику в одном отчете. Supermetrics помогает решить эти проблемы: вы можете легко обрабатывать данные Metrica и Direct в Google Sheets и создавать красивые визуализации с данными с обеих платформ в Google Data Studio.
Дайте им шанс сегодня в Google Таблицах или попробуйте Яндекс.Коннекторы Метрики и Яндекс.Директа для Google Data Studio. Как всегда, мы будем рады услышать ваши отзывы!
Можете ли вы попрактиковаться в шаблоне пользовательского статистического исследования в Яндекс.Директ?
Можете ли вы попрактиковаться в шаблоне пользовательского статистического исследования внутри Яндекс.Директа?
A) Нет. Вы не можете практиковать собственный шаблон исследования — отчеты должны каждый раз создаваться с нуля.
B) Да. Мастер отчетов позволяет значительно облегчить изучение шаблонов.
C) Да. Вы можете попрактиковаться в индивидуальном шаблоне исследования на странице «Запрос отчетов».
Яндекс.Метрика защищает конфиденциальность пользователей и обеспечивает обезличивание всей собранной информации. По этой причине для определенной информации такая социально-демографическая информация (пол, возраст, а также и далее) подлежит прямому раскрытию. Такая информация предоставляется отдельно, если в этом месте находилось более 10 пользователей, входящих в выборку.
Например, вы хотите узнать процент мужчин от полных пользователей за день. В четвертом измерении генерации исследования сайт был посещен раз v человек (менее 10). В этом случае исследование содержит информацию о наиболее полном перерыве пользователей за день, но информация о поездках недоступна для перерыва мужчин.
Отчеты предоставляют статистическую информацию для большинства сайтов, кроме того, они делятся на стандартные отчеты (предлагаемые в прошлом сервисе) и пользовательские отчеты.Каждое исследование содержит показатели, разделенные на группы (например, разрыв мужчин внутрь, полный разрыв пользователей). Исследование сформировано для определенного периода четвертого измерения. По умолчанию это 1 месяц. В отчетах информация отображается не только в виде графика, но и в виде табличного массива.- Настройка отчета вверх
- Создание отчета
- Действия между отчетами
Вы можете усилить работу с инструментами, описанными ниже, чтобы расположить тип исследования вверх:
Вы можете усилить выбор календаря в четвертом измерении, чтобы зафиксировать исследование за.По умолчанию выбран 1 календарный месяц. Вы также можете рассчитывать дату и время нажатия.Графики «Линия» и «Площадь» отображают информацию с разбивкой вниз по периодам четвертого измерения. Настройка по умолчанию — авто. Это устанавливает прибытие на основе выбранной менструации четвертого измерения в дополнение к количеству информации, достаточной для этого периода. Вы можете улучшить менструальный цикл четвертого измерения до минут, часов, дней, недель в дополнение к месяцам.
Вы можете усилить секционирование работы до фирменных отчетов о сессиях, которые выполняются при определенных условиях. Например, вы можете принимать данные отчетов «Источники, сводка» в дополнение к трафику только от пользователей планшетов. В большей степени, чем информация, см. Сегментация данных. Если для формирования исследования требуется большое количество данных, для сбора информации можно использовать длинное четвертое измерение. Вот почему сервис использует только роль информации (например, 10%) для создания исследования в большей степени, чем быстро.Чтобы изменить это количество, перейдите на страницу исследования в интерфейсе Яндекс.Метрики, нажмите «Точность» и переместите ползунок на нужную площадь — «Быстрее» или «Точнее». В большей степени, чем информация, обратитесь к разделу «Выборка».При переключении партии на другой отчет эта настройка сохраняется. Информация об этом появляется в нижней части экрана. Вы можете убрать силу или сбросить ее.
Эти вспомогательные средства правильно размещают источник реферала, помещают внутрь для расчета платы за конверсию на единицу измерения для созданной цели.В большей степени, чем информация, см. Модели атрибуции.По умолчанию информация отображается одинаковыми строками. Это наглядное представление динамики показателей. Вы можете усилить работу в большей степени, чем соответствующий тип графика для выбранного отчета:
- Линии — показывает изменения абсолютных значений измеряемых переменных с течением времени.
- Круговая морская карта — показывает распределение переменных по группам за прошедшее время.
- Области — показывает динамику переменных (их значения суммируются).Здесь вы можете проявить большую силу, учитывая полный перерыв в сессиях по четвертому измерению для каждой переменной, заданной внутренним ключом.
- Столбцы — Показывает внутреннее изменение отношения переменных во времени.
- Карта — совокупная информация (сумма в дополнение к средним) на карте Земли в дополнение к подробным картам России, Украины, Беларуси, а также Турции. Например, внутри отчета о времени зарядки страницы карта позволяет вам анализировать скорость ответа вашего сайта в разных регионах.
Вся информация сгруппирована в прошлое время по определенным характеристикам (группировка: прошлое время ОС, прошлое время версия ОС, в дополнение и затем). Эти характеристики показаны внутри списка слева:
Представление в виде списка
Тональность дерева (постепенно раскрывается структура)
Чтобы сформировать отчет, щелкните Измерения или Показатели. В открывшемся окне выберите параметры, по которым будет проводиться исследование. Они по своему желанию перемещаются внутрь правой половины окна.
Когда вы выбираете размер, значок появляется сбоку от него. Это указывает на то, что в самом низком уровне 1 из измерений из этого блока используется внутри отчета.Ограничение. В рамках исследования продолжайте увеличивать до vii параметров в дополнение к более чем 10 показателям.
Метрика предоставляет множество цифр по всем возможным аспектам работы вашего сайта, помимо того, что все эти цифры являются точными внутренними повреждениями того, как они рассчитываются.Но это неправдивый внутренний ущерб от анализа сайта. Например, если не состоящий в браке пользователь посетил сайт в дополнение к просмотру страницы в течение двадцати минут, формально справедливо сказать, что средняя продолжительность сеанса составляет двадцать минут. Однако взаимное чувство говорит нам об обратном: nosotros не могут делать выводы, как правило, на сайте, основанном на не состоящих в браке сеансах.
Услуга позволяет скрыть строки исследования, содержащие неверную информацию такого типа. В большей степени, чем информация, см. Статистическая точность данных.Когда вы выбираете из списка ранее созданный пункт назначения, информация об исследовании обновляется, чтобы отразить эту цель. Цели внутри листинга разделены на прошлое, их цель: конверсия в дополнение к ретаргетингу. В большей степени, чем информация, см. Цели в дополнение к конверсиям.Яндекс.Метрика позволяет установить числовое ограничение для отображения статистики. Например, чтобы отобразить информацию о возвратах при значении выше 50%. Чтобы отфильтровать значения, щелкните.В этом случае в волеизъявлении будут показаны только строки (группы), в которых сохраняются значения показателей, соответствующие установленному вами статусу.
По умолчанию на графике показаны значения показателя, по которому была отсортирована информация. Чтобы отобразить график для любой другой переменной, доступной в отчете, щелкните значок. График воли путешествия обновлен.
По умолчанию информация об исследованиях сортируется по прошлому времени начальной метрики (например, по прошлому времени сеансов). Чтобы изменить сортировку, щелкните метрику, которая в большей степени, чем импортируемая вам.
Чтобы попрактиковаться в новом отчете, выберите в счете за проезд в дополнение к щелчку по значку. По умолчанию это исследование имеет тип отчета «Источники, сводка». Затем заклеймите желаемые изменения. Мы рекомендуем создавать пользовательские отчеты прошлые раз, редактируя отчеты по критериям. После внесения изменений вы значительно облегчите исследование среди предыдущих ссылок в прошлом, нажав кнопку «Сохранить», или среди новых ссылок в прошлом, нажав и выбрав «Сохранить как». Затем отправляйтесь внутрь исследования и внутрь открывшегося окна.После сохранения учебная поездка доступна в разделе Мои отчеты. Другие действия среди отчетов также доступны внутри сервиса.- Экспорт исследования в удобный формат
- Чтобы экспортировать результаты исследования в формат PDF, XLSX или CSV, нажмите кнопку. Начальные 100 000 строк исследования устанавливаются внутри файла выбранного формата.
- Переименовать отчет
- Чтобы переименовать сохраненный отчет, щелкните и выберите «Переименовать». В открывшемся окне перейдите внутрь цитаты из нового исследования и нажмите «Сохранить».
- Удалить отчет
- Чтобы удалить сохраненный отчет, нажмите кнопку в дополнение к выбору «Удалить». Вы не можете восстановить удаленный отчет.
«, numPosts: 4, суммарная длина: 370, titleLength: «авто», thumbnailSize: 250, noImage: «//3.bp.blogspot.com / -ltyYh5ysBHI / U04MKlHc6pI / AAAAAAAADQo / PFxXaGZu9PQ / w250-h350-c / no-image.png «, containerId: «related-post-1305197704045837468», newTabLink: false, moreText: «Подробнее», widgetStyle: 3, callBack: function () {} };
Несколько способов автоматизации рекламных кампаний — PPC
Валерия Дмитренко
30 мая | 2019 г.Автоматизация — — самая большая боль каждого специалиста по контекстной рекламе.Существует множество сервисов, которые могут упростить эту задачу, но все они имеют свои достоинства и недостатки.
В конце концов, у нас все-таки остается огромный объем рутинной работы, на которую уходит много часов.
Конечно, один выбор не охватит все, но он даст общее представление о том, как можно быстрее выполнять свою работу и экономить время.
В первой части статьи я поделюсь 10 рекомендациями по использованию инструментов и сервисов Google Ads, Яндекс Директ и Facebook Ads.
1. Правила
Автоматизированные правила позволят вам выполнять оптимизацию с настраиваемой регулярностью.
Google Реклама имеет широкий спектр возможностей для создания условий и действий.
Для этого зайдите в меню настроек — «правила».
Здесь вы можете установить правила для разных уровней для включения / выключения, повышения / понижения ставок или бюджета, уведомлений при различных условиях.
Устанавливает регулярность и график изменений, а также отчетный период для активации этих изменений.Это избавляет от необходимости ежедневно корректировать ставки вручную, дает вам возможность разрабатывать больше кампаний и аккаунтов в день.
Но правила, а также вносимые изменения нужно контролировать, а условия устанавливать очень тщательно.
Аналогичная возможность есть и в Facebook Ads, хотя и с меньшей функциональностью, но в целом эти правила могут помочь в управлении вашими учетными записями.
Самое главное — отслеживать изменения и вносить коррективы, особенно сразу после создания, чтобы все работало правильно.
Такая оптимизация помогает не только сэкономить время специалиста, но и минимизировать ошибки, связанные с человеческим фактором.
В этом году стало возможным использовать условия, связанные с новыми индикаторами конкуренции в Google Ads. Это позволило более точно поставить необходимые условия.
В Яндекс Директ, к сожалению, этот функционал не реализован. Но есть сторонние сервисы для решения этой проблемы.
2. Скрипты
У нас уже есть статья об использовании скриптов. Скрипты, как и правила, с определенной периодичностью вносят изменения в рекламные кампании.
Настройки здесь можно настроить более гибко, написав необходимые изменения с помощью кода JavaScript.
Для использования скрипта необходимо в меню настроек выбрать соответствующий пункт, выбрать пункт создания скрипта, добавить код скрипта и выполнить его.
Для написания скриптов необходимо иметь определенные навыки веб-разработчика.Чтобы понять их создание, вы можете посетить портал Google.
Или можно воспользоваться сборником готовых скриптов. На данный момент их очень много: от автоматических уведомлений о бюджете до корректировки тарифов в зависимости от погодных условий.
Вот некоторые из этих коллекций:
https://www.searchengines.ru/100_use_scripts_1.html
https://www.searchengines.ru/100_use_scripts_2.html
https://web-analytics.me/adwords_scripts
Однако при использовании готовых скриптов нужно быть очень осторожным.Кто угодно может написать сценарий, поэтому это не значит, что сценарий работает правильно.
Было бы лучше проверить, какие изменения произойдут в результате использования скрипта. Для этого вы можете запустить предварительный просмотр работы скрипта перед выполнением, а также четко следовать инструкциям разработчика.
Если у вас есть разработчик, вы можете управлять массовыми изменениями и вносить их прямо через системный сервер. Чтобы все делать правильно, будет полезно прочитать и изучить гайдлайны API:
3.Корма модификаторов и модификаторы в целом
Модификаторы и шаблоны — это возможность заставить динамически изменять отображаемый текст объявления, подставляя в него релевантную информацию.
Google Реклама имеет модификаторы «ключевое слово», модификаторы «обратного отсчета» и операторы «если».
Чтобы использовать «ключевое слово» в любом месте текста объявления, необходимо вставить следующие символы:
{KeyWord: текст по умолчанию}
Текст по умолчанию — это то, что будет отображаться, если в результате подстановки текста будет превышено допустимое ограничение на количество символов.
При использовании этого модификатора ключевое слово, которое привело к показу объявления, будет автоматически вставлено в текст. Здесь также можно использовать разные заглавные буквы:
ключевое слово — все слова строчные;
Ключевое слово — первое слово с большой буквы, остальные — с маленькой буквы;
KeyWord — каждое слово начинается с заглавной буквы.
COUNTDOWN и GLOBAL_COUNTDOWN — модификаторы обратного отсчета в объявлении. При использовании этого модификатора в объявлении автоматически отображается количество дней / часов, оставшихся до любого события.
Функция «если» — это набор условий для показа разного текста разным аудиториям. Поддерживается таргетинг по устройству и аудитории, созданной в аккаунте.
Модификатор можно зарегистрировать вручную или вызвать меню создания при редактировании любого текстового объявления. Достаточно поставить фигурную скобку () в поле ввода, и откроется меню динамической подстановки.
В дополнение к этим модификаторам можно создать фид, в котором вы можете установить абсолютно любые значения, которые вы хотите динамически подставлять в объявлениях.Например модель, цвет. Текст, дата, число, цена поддерживается.
Вам нужно будет подготовить таргетинг, атрибуты, загрузить фид в коммерческие данные Google Рекламы, а затем добавить модификаторы в текст объявления.
В Яндекс Директ функционал хуже, но есть возможность подставить в текст ключевую фразу. Это реализовано с помощью шаблонов. Для добавления достаточно заключить слово, вместо которого нужно заменить фразу, символом «#» с обеих сторон.
Facebook имеет такую возможность при продвижении товаров из каталога. Вы можете добавить параметры каталога в свое объявление. Вам просто нужно вызвать соответствующее меню.
4. Оповещения
Если у вас нет времени проверить всю статистику и вовремя войти в аккаунт, вы можете настроить оповещения на случай, если что-то пойдет не так.
В Google Рекламе вы можете настроить оповещения с помощью правил. Причем это можно настроить не только через настройки, но и из просмотра статистики.
Также есть возможность планировать отчеты:
В Яндекс Директ можно настроить оповещения при создании кампании. Однако функционал ограничен, доступно только уведомление о балансе.
Однако автоматическая отчетность доступна в Яндекс Метрике. Итак, вы можете настраивать отчеты по расписанию.
Для этого при просмотре отчета выберите меню в правом верхнем углу, укажите периодичность и адрес электронной почты для отправки.
Вы также можете настроить оповещения в Google Analytics.
В Facebook оповещения настраиваются с помощью правил.
5. Группы кампаний
Эта функция доступна в Google Рекламе. Он позволяет отслеживать эффективность по группам выбранных кампаний.
В принципе, это поможет, если вы получите большой аккаунт, разделенный на несколько сегментов в разных кампаниях. Чтобы создать группу, выберите это меню:
Далее переходим в группы кампании и переходим к созданию.
Есть некоторые ограничения на управление группами кампаний.
6. Динамические ярлыки
С помощью разметки вы можете добавить динамические исходные данные к некоторым параметрам отслеживания.
Например, вместо прописывания:
«Utm_campaign = Шкаф», вы можете «utm_campaign = {{campaign.name}}»
Таких тегов есть во всех системах:
Динамические параметры для Facebook Ads
Динамические параметры Google Ads
Динамические параметры Яндекс Директ
7.Галерея шаблонов
Google имеет возможность публиковать и сохранять различные пользовательские конфигурации. Это может очень помочь, например, при создании аудиторий или целей.
Будет очень удобно пользоваться доступными опциями из галереи.
8. Google Web Designer
Раньше Google Ads был сервисом для создания баннеров. После закрытия в прошлом году Google рекомендует использовать его аналог — Google Web Designer.
Преимущество перед другими визуальными редакторами — наличие шаблонов формата Google Рекламы.
9. Надстройки Excel Facebook Ads и Google Analytics
Автоматизировать создание отчетов можно не только в интерфейсах сервисов, но и с помощью специальных надстроек.
Например, в Facebook Ads можно создавать шаблоны отчетов, выгружать их в Excel и обрабатывать данные уже в удобном формате. Чтобы начать его использовать, вам нужно выбрать экспорт в excel:
Затем разрешите редактирование и подтвердите безопасность надстройки.
Далее необходимо открыть панель навигации:
Analytics имеет аналогичную настройку для таблиц Google.
Для начала вам необходимо установить надстройку Google Analytics.
Далее можно перейти к настройке отчета. Здесь вы можете создавать, запускать отчеты, а также настраивать расписание автоматической загрузки.
10. Слова-формулы
Редактор Google Рекламы может массово заменять название группы, кампанию, аккаунт и другие элементы в тексте объявления.
Например, если вы хотите показывать аудитории релевантные объявления и в то же время не использовать модификатор ключевого слова, вы можете массово добавить название группы в объявление. Это реализовано с помощью инструмента замены текста. Подробная инструкция по ссылке.
Редактор Google Рекламы может массово заменять название группы, кампанию, аккаунт и другие элементы в тексте объявления.
Например, если вы хотите показывать аудитории релевантные объявления и в то же время не использовать модификатор ключевого слова, вы можете массово добавить название группы в объявление.Это реализовано с помощью инструмента замены текста. Подробная инструкция по ссылке.
qimus / yandex-ad-generator: Генерация рекламы для yandex direct easy
Базовый шаблон проекта Yii 2 — это скелетное приложение Yii 2, которое лучше всего подходит для быстрое создание небольших проектов.
Шаблон содержит основные функции, включая вход / выход пользователя и страницу контактов. Он включает в себя все часто используемые конфигурации, которые позволят вам сосредоточиться на добавлении новых функции вашего приложения.
СТРУКТУРА КАТАЛОГА
активы / содержит определение активов
commands / содержит консольные команды (контроллеры)
config / содержит конфигурации приложения
контроллеры / содержит классы веб-контроллеров
mail / содержит файлы просмотра для электронной почты
models / содержит классы моделей
время выполнения / содержит файлы, созданные во время выполнения
tests / содержит различные тесты для базового приложения
vendor / содержит зависимые сторонние пакеты
views / содержит файлы просмотра для веб-приложения
web / содержит сценарий входа и веб-ресурсы
ТРЕБОВАНИЯ
Минимальное требование этого шаблона проекта, чтобы ваш веб-сервер поддерживал PHP 5.4.0.
УСТАНОВКА
Установить из архивного файла
Распакуйте архивный файл, загруженный с yiiframework.com, в
каталог с именем basic
, который находится непосредственно в корневом веб-каталоге.
Установить ключ проверки cookie в файле config / web.php
на случайную секретную строку:
'запрос' => [ // !!! вставьте секретный ключ в следующее (если он пуст) - это требуется для проверки файлов cookie 'cookieValidationKey' => '<сюда идет секретная случайная строка>', ],
Затем вы можете получить доступ к приложению по следующему URL-адресу:
http: // локальный / базовый / веб /
Установить через Composer
Если у вас нет Composer, вы можете установить его, следуя инструкциям в getcomposer.орг.
Затем вы можете установить этот шаблон проекта, используя следующую команду:
php composer.phar global требуется "fxp / composer-asset-plugin: ~ 1.1.1"
php composer.phar create-project --prefer-dist --stability = dev yiisoft / yii2-app-basic basic
Теперь у вас должна быть возможность получить доступ к приложению по следующему URL-адресу, предполагая, что базовый
— это каталог
прямо под корнем Интернета.
http: // локальный / базовый / веб /
КОНФИГУРАЦИЯ
База данных
Отредактируйте файл config / db.php
с реальными данными, например:
возврат [ 'class' => 'yii \ db \ Connection', 'dsn' => 'mysql: host = localhost; dbname = yii2basic', 'username' => 'root', 'пароль' => '1234', 'charset' => 'utf8', ];
ПРИМЕЧАНИЯ:
- Yii не будет создавать базу данных за вас, это нужно сделать вручную, прежде чем вы сможете получить к ней доступ.
- Проверьте и отредактируйте другие файлы в каталоге
config /
, чтобы настроить приложение по мере необходимости. - Обратитесь к README в каталоге
tests
для получения информации, относящейся к базовым тестам приложений.
Полный список — Справочный центр OWOX
При экспорте данных о расходах из рекламных служб в Google Analytics OWOX BI также передает значения динамических параметров, которые вы используете в URL-адресах объявлений. Благодаря этому вы можете сопоставлять посещения и расходы на рекламу по тегам UTM в отчете Google Analytics Cost Analysis.
Однако API рекламных сервисов не предоставляет данные о некоторых динамических параметрах.В отчетах эти параметры будут отображаться как их имена, а не значения. Например, имя {позиция} вместо значения 1 .
Чтобы сохранить соответствие посещений и расходов на рекламу в отчете анализа затрат, такие неподдерживаемые параметры должны быть перенесены из UTM-тегов в дополнительные пользовательские GET-параметры и собраны в специальные параметры в Google Analytics.
- Данные о расходах будут доступны только для значений UTM-тегов.
- Данные сеанса будут доступны для неподдерживаемых параметров (через пользовательские измерения) и значений UTM-тегов.
Ниже в этой статье приведен полный список всех поддерживаемых и неподдерживаемых параметров URL, которые вы можете экспортировать из рекламных служб в Google Analytics.
Нажмите на рекламный сервис, который вам нужен, чтобы перейти к его списку:
Яндекс.Директ
ВКонтакте
myTarget
Bing Ads
Яндекс.Директ
Поддерживаемые параметры:
Имя | Описание | Значения |
---|---|---|
{ad_id} | ID объявления | Число |
{banner_id} | Идентификатор рекламного баннера | Число |
{addphrases} | Был ли показ инициирован соответствующими ключевыми словами | да — показ объявления согласно связанному ключевому слову |
{campaign_name} | Название рекламной кампании | Текст до 60 символов |
{campaign_name_lat} | Название кампании на транслитерации | Латинский текст, до 60 знаков. Примечание: Этот параметр будет обработан только в том случае, если название кампании в аккаунте Яндекс.Директа содержит латинский текст, цифры и / или специальные символы. Если в нем есть какой-либо другой текст (например, кириллица), параметр обрабатываться не будет. |
{campaign_type} | Тип кампании | type1 — Текстовые и графические объявления type2 — Объявления для мобильных приложений type3 — Динамические объявления type4 — Смарт-баннеры |
{campaign_id} | Рекламная кампания ID | Число |
{device_type} | Тип устройства, на котором производился слепок | настольный / мобильный / планшет |
{gbid} | ID группы | Число |
{keyword} | Ключевое слово, по которому было показано объявление (текстовые и графические объявления или реклама для мобильных приложений) | текст ключевого слова без минус-слов |
{фраза_id} | Идентификатор ключевого слова для текстовых и графических объявлений или объявлений для мобильных приложений | Число |
{retargeting_id} | Идентификатор целевой аудитории, связывающий группу объявлений со списком ретаргетинга или интересами мобильного приложения. Поддерживается, только если объявление содержит AUDIENCE_TARGET или KEYWORD в качестве CriteriaType. | Число |
{coef_goal_context_id} | Идентификатор корректировки ставок для списка ретаргетинга | Число |
{match_type} | Тип соответствия критерия показа и поискового запроса. Примечание: параметр {match_type} поддерживается конвейером Яндекс.Директ → Google Analytics и не поддерживается Яндекс.Директ → Конвейер Google BigQuery. | rm — автотаргетинг syn — синоним rkw — связанное ключевое слово |
{adtarget_name} | Цель динамической текстовой рекламы. Поддерживается, только если объявление содержит DYNAMIC_TEXT_AD_TARGET или KEYWORD в качестве CriteriaType. | Название цели динамической текстовой рекламы |
{adtarget_id} | Идентификатор условия таргетинга динамической рекламы. Поддерживается, только если объявление содержит DYNAMIC_TEXT_AD_TARGET или KEYWORD в качестве CriteriaType. | Число |
{position_type} | Тип рекламного блока, если объявление появлялось на странице результатов поиска Яндекса | премиум — премиум размещение прочее — блок справа или внизу нет — реклама отображалась в рекламных сетях (РСЯ или биржи объявлений) |
{источник} | Размещение | Домен издателя рекламной сети (например, travel.ru) за показы в рекламных сетях (РСЯ или биржи) нет — за показы в поиске Яндекса |
{source_type} | Тип рекламной сети | поиск — поисковый сайт контекст — сайт рекламной сети |
{region_name} | Название региона, в котором показывалась реклама | Название региона |
{region_id} | ID региона, в котором показывалась реклама | Число |
{param1} | Специальный параметр 1 | |
{param2} | Специальный параметр 2 |
Неподдерживаемые параметры:
Имя | Описание | Значения |
---|---|---|
{addphrasestext} | Текст ключевого слова | текст ключевого слова — при показе объявлений по связанному ключевому слову нет , если этот показ не был инициирован связанным ключевым словом |
{creative_id} | Идентификатор объявления из Редактора объявлений | Число |
{Interest_id} | ID интереса в мобильном приложении | Число |
{matched_keyword} | Соответствующее ключевое слово (используйте с {match_type} ) | Текст выбранного ключевого слова, синонима или связанного ключевого слова |
{позиция} | Точное положение объявления в блоке.Передает только номер позиции, который не определяет тип блока, в котором отображается реклама | номер позиции в блоке (например 1) |
Важно: Параметры {keyword}, {фраза_id} и {retargeting_id} поддерживаются частично. Если все три в одной ссылке, динамические значения некоторых из этих параметров не будут собраны. В этом случае мы рекомендуем удалить из ссылок наименее важный из этих параметров.Это обеспечит правильное получение всех динамических значений.
Подробнее о параметрах динамического URL в справке Яндекс.Директа
Поддерживаемые параметры:
Имя | Описание |
---|---|
ad_id = {{ad.id}} | Идентификатор объявления |
adset_id = {{adset.id}} | Рекламный набор ID |
campaign_id = {{campaign.id}} | Рекламная кампания ID |
ad_name = {{ad.name}} | Название объявления |
adset_name = {{adset.name}} | Название набора объявлений |
campaign_name = {{campaign.name}} | Название кампании |
Узнайте больше о параметрах динамических URL в справочном центре Facebook
ВКонтакте
Поддерживаемые параметры:
Имя | Описание |
---|---|
{ad_id} | Рекламный номер |
{campaign_id} | Рекламная кампания ID |
Неподдерживаемые параметры:
Имя | Описание |
---|---|
{случайный} | Случайное число |
{campaign_name} | Название кампании задано в ВК (только для объявлений с кнопками и карусели) |
{платформа} | Платформа пользователя (только для объявлений с кнопками и объявлений-каруселей) |
{price_list_id} | Параметр для тегов динамического таргетинга |
{product_id} | Параметр для тегов динамического таргетинга |
Подробнее о динамических параметрах URL читайте в Справочном центре ВКонтакте
myTarget
Поддерживаемые параметры:
Имя | Описание |
---|---|
{{Advertiser_id}} | Идентификатор рекламодателя |
{{campaign_id}} | Идентификатор кампании |
{{campaign_name}} | Название кампании |
{{banner_id}} | Идентификатор баннера |
Неподдерживаемые параметры:
Имя | Описание |
---|---|
{{geo}} | ID региона географического дерева myTarget, в котором был зарегистрирован клик |
{{пол}} | Пол пользователя, который нажал на |
{{age}} | Возраст пользователя, вошедшего в кликнувший |
{{случайный}} | Случайная цифра.Часто используются в АУДИТ-пикселях для более точного подсчета показов |
{{impression_weekday}} | Temlpate на будний день оттиска |
{{impression_hour}} | Шаблон для часа оттиска, в часовом поясе Москвы, 24-часовой формат |
{{user_timezone}} | Temlpate для часового пояса пользователя. Используется для тегов ссылок |
Подробнее о параметрах динамических URL-адресов в справке myTarget
Bing Ads
Поддерживаемые параметры:
Имя | Описание |
---|---|
{CampaignId} | Идентификатор кампании, по которой было показано объявление |
{AdGroupId} | Идентификатор группы объявлений, в которой было показано объявление |
{MatchType} | Тип соответствия, используемый для показа объявления |
{BidMatchType} | Тип соответствия ставки ключевого слова |
{Сеть} | Тип рекламной сети, в которой было показано объявление |
{Устройство} | Устройство, с которого раздался щелчок. m = мобильное устройство t = планшетное устройство c = настольный или портативный компьютер |
{IfMobile: строка} | Текстовая строка (которую вы определяете) справа от двоеточия, если реклама отображается на мобильном устройстве |
{IfNotMobile: string} | Строковый текст (который вы определяете) справа от двоеточия, если реклама отображается на настольном компьютере, ноутбуке или планшете |
{IfSearch: string} | Текстовая строка (которую вы определяете) справа от двоеточия, если объявление отображается в поисковой сети |
{IfContent: string} | |
{keyword: default} | Заменяет ключевое слово, соответствующее поисковому запросу пользователя.Каждый пробел в ключевом слове будет заменен на «% 20», чтобы убедиться, что URL-адрес действителен. |
{AdId} | Числовой идентификатор отображаемого объявления |
{OrderItemId} | Числовой идентификатор ключевого слова, по которому было показано ваше объявление. |
{QueryString} | Текст поискового запроса, введенный пользователем |
{param1} | Заменяет {Param1} в URL-адресе параметром Param1 ключевого слова, которое соответствует поисковому запросу пользователя |
{param2} | Заменяет {Param2} в URL-адресе параметром Param2 ключевого слова, которое соответствует поисковому запросу пользователя |
{param3} | Заменяет {Param3} в URL-адресе параметром Param3 ключевого слова, которое соответствует поисковому запросу пользователя |
Неподдерживаемые параметры:
Имя | Описание |
---|---|
{Кампания} | Название кампании, по которой было показано объявление |
{AdGroup} | Название группы объявлений, в которой было показано объявление |
{TargetId} | Идентификатор ключевого слова («kwd»), ремаркетинга или списка аудитории («aud»), цели динамической рекламы («dat») или идентификатора целевого местоположения («loc»), по которым было показано объявление. Если имеется более одного идентификатора, они будут отображаться в следующем порядке: aud, dat, kwd. |
{IfNative: строка} | Текст строки (который вы определяете) справа от двоеточия будет заменен в URL-адрес, если объявление отображается как объявление Microsoft Audience. |
{IfPLA: строка} | Текст строки (который вы определяете) справа от двоеточия будет подставлен в URL-адрес, если объявление отображается как товарное объявление |
{игнорировать} | Игнорирует элементы отслеживания вашего конечного URL, чтобы снизить нагрузку сканирования на ваш веб-сайт.Его можно использовать только в вашем конечном или конечном мобильном URL | .
{lpurl} , {lpurl + 2} , {escapedlpurl + 2} , {lpurl + 3} , {escapedlpurl + 3} , {escapedlpurl + 3} , l {unescapurl40} , l {unescapurl40} } | Параметры шаблона отслеживания: конечные URL |
{ProductId} | Только для торговых кампаний Bing: числовой идентификатор продукта, по которому была показана ваша реклама. Он взят из вашего каталога Bing Merchant Center и используется с Product Ads | .
{CriterionId} | Только для торговых кампаний Bing: идентификатор группы товаров Bing Shopping, используемой с товарными объявлениями. |
{product_country} | Только для торговых кампаний Bing: страна продажи продукта в объявлении, по которому был сделан клик.Например, США, Великобритания и т. Д. |
{product_language} | Только для торговых кампаний Bing: язык информации о ваших товарах, указанный в фиде данных Merchant Center. Например, EN, FR |
{seller_name} | Только для торговых кампаний Bing: значение, связанное с продавцом этого продукта, которое может быть именем продавца из фида или названием магазина в зависимости от того, является ли рекламодатель агрегатором или нет. |
Подробнее о параметрах динамических URL в справке Bing Ads
Обзор архитектуры| Документация ClickHouse
- Разработка
ClickHouse — истинно ориентированная на столбцы СУБД.Данные хранятся по столбцам, а во время выполнения — массивами (векторами или порциями столбцов). По возможности операции выполняются с массивами, а не с отдельными значениями. Это называется «векторизованное выполнение запроса» и помогает снизить затраты на фактическую обработку данных.
В этой идее нет ничего нового. Он восходит к
APL
(язык программирования, 1957) и его потомкам:A +
(диалект APL),J
(1990),K
(1993) иQ
(язык программирования из Kx Systems, 2003).Программирование массивов используется при обработке научных данных. Эта идея также не является чем-то новым в реляционных базах данных: например, она используется в системеVectorWise
(также известной как Actian Vector Analytic Database от Actian Corporation).
Существует два разных подхода к ускорению обработки запросов: векторизованное выполнение запроса и генерация кода времени выполнения. Последний удаляет всю косвенную и динамическую отправку. Ни один из этих подходов не лучше другого.Генерация кода времени выполнения может быть лучше, если она объединяет множество операций, таким образом полностью используя исполнительные блоки ЦП и конвейер. Выполнение векторизованного запроса может быть менее практичным, поскольку оно включает временные векторы, которые должны быть записаны в кеш и прочитаны обратно. Если временные данные не помещаются в кэш L2, это становится проблемой. Но при выполнении векторизованных запросов проще использовать SIMD-возможности ЦП. Исследование, написанное нашими друзьями, показывает, что лучше сочетать оба подхода.ClickHouse использует векторизованное выполнение запросов и имеет ограниченную начальную поддержку генерации кода во время выполнения.
Столбцы
Интерфейс IColumn
используется для представления столбцов в памяти (фактически, фрагментов столбцов). Этот интерфейс предоставляет вспомогательные методы для реализации различных операторов отношения. Почти все операции неизменяемы: они не изменяют исходный столбец, а создают новый измененный. Например, метод IColumn :: filter
принимает байтовую маску фильтра.Он используется для операторов отношения WHERE
и HAVING
. Дополнительные примеры: метод IColumn :: permute
для поддержки ORDER BY
, метод IColumn :: cut
для поддержки LIMIT
.
Различные реализации IColumn
( ColumnUInt8
, ColumnString
и т. Д.) Отвечают за расположение столбцов в памяти. Структура памяти обычно представляет собой непрерывный массив. Для столбцов целочисленного типа это всего лишь один непрерывный массив, например std :: vector
.Для столбцов String
и Array
это два вектора: один для всех элементов массива, расположенных непрерывно, а второй — для смещений к началу каждого массива. Существует также ColumnConst
, который хранит в памяти только одно значение, но выглядит как столбец.
Поле
Тем не менее, можно работать и с отдельными значениями. Для представления отдельного значения используется Поле
. Поле
— это просто размеченное объединение UInt64
, Int64
, Float64
, String
и Array
. IColumn
имеет метод operator []
для получения n-го значения в виде поля
и метод вставки для добавления поля
в конец столбца. Эти методы не очень эффективны, потому что они требуют работы с временными объектами Field
, представляющими отдельное значение. Существуют более эффективные методы, такие как insertFrom
, insertRangeFrom
и т. Д.
В поле
недостаточно информации об определенном типе данных для таблицы.Например, UInt8
, UInt16
, UInt32
и UInt64
все представлены как UInt64
в поле
.
Leaky Abstractions
IColumn
имеет методы для обычных реляционных преобразований данных, но они не удовлетворяют всем требованиям. Например, ColumnUInt64
не имеет метода для вычисления суммы двух столбцов, а ColumnString
не имеет метода для запуска поиска подстроки.Эти бесчисленные подпрограммы реализованы за пределами IColumn
.
Различные функции для столбцов могут быть реализованы общим, неэффективным способом с использованием методов IColumn
для извлечения значений поля или специализированным способом с использованием знания структуры данных во внутренней памяти в конкретной реализации
IColumn
. Он реализуется путем приведения функций к определенному типу IColumn
и напрямую работает с внутренним представлением. Например, ColumnUInt64
имеет метод getData
, который возвращает ссылку на внутренний массив, а затем отдельная процедура считывает или заполняет этот массив напрямую.У нас есть «дырявые абстракции», позволяющие эффективно специализировать различные процедуры.
Типы данных
IDataType
отвечает за сериализацию и десериализацию: за чтение и запись фрагментов столбцов или отдельных значений в двоичной или текстовой форме. IDataType
напрямую соответствует типам данных в таблицах. Например, есть DataTypeUInt32
, DataTypeDateTime
, DataTypeString
и так далее.
IDataType
и IColumn
только слабо связаны друг с другом.Различные типы данных могут быть представлены в памяти одними и теми же реализациями IColumn
. Например, DataTypeUInt32
и DataTypeDateTime
оба представлены как ColumnUInt32
или ColumnConstUInt32
. Кроме того, один и тот же тип данных может быть представлен разными реализациями IColumn
. Например, DataTypeUInt8
может быть представлен как ColumnUInt8
или ColumnConstUInt8
.
IDataType
хранит только метаданные.Например, DataTypeUInt8
вообще ничего не хранит (кроме виртуального указателя vptr
), а DataTypeFixedString
хранит только N
(размер строк фиксированного размера).
IDataType
имеет вспомогательные методы для различных форматов данных. Примерами являются методы сериализации значения с возможным заключением в кавычки, сериализации значения для JSON и сериализации значения как части формата XML. Нет прямого соответствия форматам данных. Например, разные форматы данных Pretty
и TabSeparated
могут использовать один и тот же вспомогательный метод serializeTextEscaped
из интерфейса IDataType
.
Блок
A Блок
- это контейнер, который представляет подмножество (фрагмент) таблицы в памяти. Это просто набор троек: (IColumn, IDataType, имя столбца)
. Во время выполнения запроса данные обрабатываются Блоком
с. Если у нас есть Блок
, у нас есть данные (в объекте IColumn
), у нас есть информация о его типе (в IDataType
), которая сообщает нам, как работать с этим столбцом, и у нас есть имя столбца. Это может быть как исходное имя столбца из таблицы, так и какое-то искусственное имя, присвоенное для получения временных результатов вычислений.
Когда мы вычисляем некоторую функцию по столбцам в блоке, мы добавляем еще один столбец с его результатом в блок, и мы не касаемся столбцов для аргументов функции, потому что операции неизменяемы. Позже ненужные столбцы можно удалить из блока, но не изменить. Это удобно для исключения общих подвыражений.
Блоки создаются для каждого обрабатываемого блока данных. Обратите внимание, что для одного и того же типа вычислений имена и типы столбцов остаются одинаковыми для разных блоков, и изменяются только данные столбца.Лучше отделить данные блока от заголовка блока, потому что небольшие размеры блока имеют высокие накладные расходы на временные строки для копирования shared_ptrs и имен столбцов.
Блочные потоки
Блочные потоки предназначены для обработки данных. Мы используем потоки блоков для чтения данных откуда-то, выполнения преобразования данных или записи данных куда-то. IBlockInputStream
имеет метод read
для выборки следующего блока, пока он доступен. IBlockOutputStream
имеет метод write
для перемещения блока куда-нибудь.
Потоки отвечают за:
- Чтение или запись в таблицу. Таблица просто возвращает поток для чтения или записи блоков.
- Реализация форматов данных. Например, если вы хотите вывести данные на терминал в формате
Pretty
, вы создаете поток вывода блока, в который вы вставляете блоки, и он их форматирует. - Выполнение преобразований данных. Допустим, у вас есть
IBlockInputStream
и вы хотите создать отфильтрованный поток. Вы создаетеFilterBlockInputStream
и инициализируете его своим потоком.Затем, когда вы извлекаете блок изFilterBlockInputStream
, он извлекает блок из вашего потока, фильтрует его и возвращает вам отфильтрованный блок. Так представлены конвейеры выполнения запросов.
Есть более сложные преобразования. Например, когда вы извлекаете из AggregatingBlockInputStream
, он считывает все данные из своего источника, агрегирует их, а затем возвращает вам поток агрегированных данных. Другой пример: UnionBlockInputStream
принимает множество источников ввода в конструкторе, а также несколько потоков.Он запускает несколько потоков и параллельно читает из нескольких источников.
Блочные потоки используют подход «вытягивания» для управления потоком: когда вы извлекаете блок из первого потока, он, следовательно, извлекает необходимые блоки из вложенных потоков, и весь конвейер выполнения будет работать. Ни «тянуть», ни «толкать» - не лучшее решение, потому что поток управления является неявным и это ограничивает реализацию различных функций, таких как одновременное выполнение нескольких запросов (объединение множества конвейеров вместе).Это ограничение можно преодолеть с помощью сопрограмм или просто запуском дополнительных потоков, которые ждут друг друга. У нас может быть больше возможностей, если мы сделаем поток управления явным: если мы разместим логику для передачи данных от одного вычислительного блока к другому за пределами этих вычислительных блоков. Прочтите эту статью, чтобы узнать больше.
Следует отметить, что конвейер выполнения запроса создает временные данные на каждом шаге. Мы стараемся сохранять размер блока достаточно маленьким, чтобы временные данные помещались в кеш-память ЦП.При таком предположении запись и чтение временных данных почти бесплатны по сравнению с другими вычислениями. Мы могли бы рассмотреть альтернативу, которая заключается в объединении многих операций в конвейере. Он может сделать конвейер как можно короче и удалить большую часть временных данных, что может быть преимуществом, но также имеет недостатки. Например, разделенный конвейер позволяет легко реализовать кэширование промежуточных данных, кражу промежуточных данных из аналогичных запросов, выполняемых одновременно, и объединение конвейеров для аналогичных запросов.
Форматы
Форматы данных реализуются с блочными потоками. Существуют «презентационные» форматы, подходящие только для вывода данных на клиент, например, формат Pretty
, который предоставляет только IBlockOutputStream
. И есть форматы ввода / вывода, такие как TabSeparated
или JSONEachRow
.
Также существуют потоки строк: IRowInputStream
и IRowOutputStream
. Они позволяют извлекать / отправлять данные по отдельным строкам, а не по блокам.И они нужны только для упрощения реализации строковых форматов. Обертки BlockInputStreamFromRowInputStream
и BlockOutputStreamFromRowOutputStream
позволяют преобразовывать потоки, ориентированные на строки, в обычные потоки, ориентированные на блоки.
I / O
Для байтового ввода / вывода существуют абстрактные классы ReadBuffer
и WriteBuffer
. Они используются вместо C ++ iostream
s. Не волнуйтесь: каждый зрелый проект на C ++ использует что-то другое, кроме iostream
s, по уважительным причинам.
ReadBuffer
и WriteBuffer
- это просто непрерывный буфер и курсор, указывающий на позицию в этом буфере. Реализации могут владеть или не владеть памятью для буфера. Существует виртуальный метод для заполнения буфера следующими данными (для ReadBuffer
) или для очистки буфера где-нибудь (для WriteBuffer
). Виртуальные методы вызываются редко.
Реализации ReadBuffer
/ WriteBuffer
используются для работы с файлами и файловыми дескрипторами и сетевыми сокетами, для реализации сжатия ( CompressedWriteBuffer
инициализируется другим WriteBuffer и выполняет сжатие перед записью в него данных) и для других целей - имена ConcatReadBuffer
, LimitReadBuffer
и HashingWriteBuffer
говорят сами за себя.
Буферы чтения / записи работают только с байтами. Существуют функции из заголовочных файлов ReadHelpers
и WriteHelpers
, которые помогают с форматированием ввода / вывода. Например, есть помощники для записи числа в десятичном формате.
Давайте посмотрим, что происходит, когда вы хотите записать набор результатов в формате JSON
в стандартный вывод. У вас есть набор результатов, готовый к выборке из IBlockInputStream
. Вы создаете WriteBufferFromFileDescriptor (STDOUT_FILENO)
для записи байтов в стандартный вывод.Вы создаете JSONRowOutputStream
, инициализированный этим WriteBuffer
, для записи строк из JSON
в стандартный вывод. Вы создаете BlockOutputStreamFromRowOutputStream
поверх него, чтобы представить его как IBlockOutputStream
. Затем вы вызываете copyData
для передачи данных из IBlockInputStream
в IBlockOutputStream
, и все работает. Внутри JSONRowOutputStream
будет записывать различные разделители JSON и вызывать метод IDataType :: serializeTextJSON
со ссылкой на IColumn
и номер строки в качестве аргументов.Следовательно, IDataType :: serializeTextJSON
вызовет метод из WriteHelpers.h
: например, writeText
для числовых типов и writeJSONString
для DataTypeString
.
Таблицы
Интерфейс IStorage
представляет таблицы. Различные реализации этого интерфейса - это разные движки таблиц. Примеры: StorageMergeTree
, StorageMemory
и т. Д. Экземпляры этих классов - это просто таблицы.
Ключевыми методами IStorage
являются чтение
и запись
. Также есть alter
, rename
, drop
и так далее. Метод read
принимает следующие аргументы: набор столбцов для чтения из таблицы, запрос AST
для рассмотрения и желаемое количество возвращаемых потоков. Он возвращает один или несколько объектов IBlockInputStream
и информацию о стадии обработки данных, которая была завершена внутри табличного движка во время выполнения запроса.
В большинстве случаев метод чтения отвечает только за чтение указанных столбцов из таблицы, но не за дальнейшую обработку данных. Вся дальнейшая обработка данных выполняется интерпретатором запросов и не входит в компетенцию IStorage
.
Но есть заметные исключения:
- Запрос AST передается методу
read
, и механизм таблиц может использовать его для определения использования индекса и чтения меньшего количества данных из таблицы. - Иногда механизм таблиц может обрабатывать данные самостоятельно на определенном этапе.Например,
StorageDistributed
может отправить запрос на удаленные серверы, попросить их обработать данные до этапа, на котором данные с разных удаленных серверов могут быть объединены, и вернуть эти предварительно обработанные данные. На этом интерпретатор запросов завершает обработку данных.
Метод read
таблицы может возвращать несколько объектов IBlockInputStream
, чтобы обеспечить параллельную обработку данных. Эти входные потоки нескольких блоков могут читать из таблицы параллельно. Затем вы можете обернуть эти потоки различными преобразованиями (такими как оценка выражений или фильтрация), которые можно вычислить независимо, и создать UnionBlockInputStream
поверх них для параллельного чтения из нескольких потоков.
Есть еще TableFunction
s. Это функции, которые возвращают временный объект IStorage
для использования в предложении FROM
запроса.
Чтобы быстро понять, как реализовать свой движок таблиц, взгляните на что-нибудь простое, например StorageMemory
или StorageTinyLog
.
В результате метода
read
IStorage
возвращаетQueryProcessingStage
- информацию о том, какие части запроса уже были вычислены внутри хранилища.
Синтаксические анализаторы
Написанный от руки рекурсивный синтаксический анализатор спуска анализирует запрос. Например, ParserSelectQuery
просто рекурсивно вызывает базовые синтаксические анализаторы для различных частей запроса. Парсеры создают AST
. AST
представлен узлами, которые являются экземплярами IAST
.
Генераторы парсеров не используются по историческим причинам.
Интерпретаторы
Интерпретаторы отвечают за создание конвейера выполнения запроса из AST
.Существуют простые интерпретаторы, такие как InterpreterExistsQuery
и InterpreterDropQuery
или более сложный InterpreterSelectQuery
. Конвейер выполнения запроса представляет собой комбинацию входных и выходных потоков блоков. Например, результатом интерпретации запроса SELECT
будет IBlockInputStream
, из которого будет считываться набор результатов; результатом запроса INSERT является IBlockOutputStream
для записи данных для вставки, а результатом интерпретации запроса INSERT SELECT
является IBlockInputStream
, который возвращает пустой набор результатов при первом чтении, но копирует данные из ВЫБРАТЬ
- ВСТАВИТЬ
одновременно.
InterpreterSelectQuery
использует оборудование ExpressionAnalyzer
и ExpressionActions
для анализа запросов и преобразований. Именно здесь выполняется большинство оптимизаций запросов на основе правил. ExpressionAnalyzer
довольно беспорядочный и должен быть переписан: различные преобразования и оптимизации запросов должны быть выделены в отдельные классы, чтобы обеспечить возможность модульных преобразований или запросов.
Функции
Есть обычные функции и агрегатные функции.Об агрегатных функциях см. Следующий раздел.
Обычные функции не изменяют количество строк - они работают так, как если бы они обрабатывали каждую строку независимо. Фактически, функции вызываются не для отдельных строк, а для данных блока
, чтобы реализовать выполнение векторизованного запроса.
Есть несколько разных функций, таких как blockSize, rowNumberInBlock и runningAccumulate, которые используют обработку блоков и нарушают независимость строк.
ClickHouse поддерживает строгую типизацию, поэтому неявное преобразование типов отсутствует.Если функция не поддерживает определенную комбинацию типов, она вызывает исключение. Но функции могут работать (быть перегруженными) для множества различных комбинаций типов. Например, функция плюс
(для реализации оператора +
) работает для любой комбинации числовых типов: UInt8
+ Float32
, UInt16
+ Int8
и т. Д. Кроме того, некоторые функции с переменным числом аргументов могут принимать любое количество аргументов, например, функция concat
.
Реализация функции может быть немного неудобной, поскольку функция явно отправляет поддерживаемые типы данных и поддерживает IColumns
. Например, функция плюс
имеет код, сгенерированный путем создания экземпляра шаблона C ++ для каждой комбинации числовых типов и постоянных или непостоянных левого и правого аргументов.
Это отличное место для реализации генерации кода во время выполнения, чтобы избежать раздувания кода шаблона. Кроме того, он позволяет добавлять объединенные функции, такие как объединенное умножение-сложение, или выполнять несколько сравнений за одну итерацию цикла.
Из-за выполнения векторизованного запроса функции не замыкаются. Например, если вы напишете WHERE f (x) AND g (y)
, обе стороны вычисляются, даже для строк, когда f (x)
равно нулю (за исключением случая, когда f (x)
является нулевой константой выражение). Но если селективность условия f (x)
высока, а расчет f (x)
намного дешевле, чем g (y)
, лучше реализовать многопроходное вычисление. Сначала он вычислит f (x)
, затем отфильтрует столбцы по результату, а затем вычислит g (y)
только для меньших отфильтрованных фрагментов данных.
Агрегатные функции
Агрегатные функции - это функции с отслеживанием состояния. Они накапливают переданные значения в какое-то состояние и позволяют вам получать результаты из этого состояния. Они управляются с помощью интерфейса IAggregateFunction
. Состояния могут быть довольно простыми (состояние для AggregateFunctionCount
- это всего лишь одно значение UInt64
) или довольно сложными (состояние AggregateFunctionUniqCombined
представляет собой комбинацию линейного массива, хеш-таблицы и вероятностных данных HyperLogLog
. структура).
Состояния выделяются в Arena
(пул памяти) для работы с несколькими состояниями при выполнении запроса GROUP BY
с высокой мощностью. Состояния могут иметь нетривиальный конструктор и деструктор: например, сложные состояния агрегирования могут сами выделять дополнительную память. Это требует некоторого внимания к созданию и разрушению государств и правильной передаче порядка их владения и уничтожения.
Состояния агрегирования могут быть сериализованы и десериализованы для передачи по сети во время выполнения распределенного запроса или для записи их на диск, где недостаточно оперативной памяти.Их можно даже сохранить в таблице с DataTypeAggregateFunction
, чтобы обеспечить инкрементное агрегирование данных.
В настоящее время версия сериализованных данных для состояний агрегатной функции не контролируется. Это нормально, если агрегатные состояния хранятся только временно. Но у нас есть механизм таблиц
AggregatingMergeTree
для инкрементной агрегации, и люди уже используют его в производственной среде. Это причина, по которой требуется обратная совместимость при изменении сериализованного формата для любой агрегатной функции в будущем.
Сервер
Сервер реализует несколько различных интерфейсов:
- Интерфейс HTTP для любых внешних клиентов.
- Интерфейс TCP для собственного клиента ClickHouse и для межсерверной связи во время выполнения распределенных запросов.
- Интерфейс для передачи данных для репликации.
Внутренне это просто примитивный многопоточный сервер без сопрограмм и волокон. Поскольку сервер не предназначен для обработки высокой скорости простых запросов, а для обработки относительно низкой скорости сложных запросов, каждый из них может обрабатывать огромный объем данных для аналитики.
Сервер инициализирует класс Context
необходимой средой для выполнения запроса: список доступных баз данных, пользователей и права доступа, настройки, кластеры, список процессов, журнал запросов и т. Д. Переводчики используют эту среду.
Мы поддерживаем полную обратную и прямую совместимость для протокола TCP сервера: старые клиенты могут общаться с новыми серверами, а новые клиенты могут общаться со старыми серверами. Но мы не хотим поддерживать его вечно, и примерно через год мы прекращаем поддержку старых версий.
Примечание
Для большинства внешних приложений мы рекомендуем использовать интерфейс HTTP, поскольку он прост и удобен в использовании. Протокол TCP более тесно связан с внутренними структурами данных: в нем используется внутренний формат для передачи блоков данных, а для сжатых данных используется настраиваемый фрейм. Мы не выпустили библиотеку C для этого протокола, потому что она требует связывания большей части кодовой базы ClickHouse, что непрактично.
Распределенное выполнение запросов
Серверы в кластере в основном независимы.Вы можете создать распределенную таблицу
на одном или всех серверах в кластере. Таблица Distributed
сама по себе не хранит данные - она только обеспечивает «представление» для всех локальных таблиц на нескольких узлах кластера. Когда вы выбираете из таблицы Distributed
, он перезаписывает этот запрос, выбирает удаленные узлы в соответствии с настройками балансировки нагрузки и отправляет им запрос. Таблица Distributed
запрашивает удаленные серверы для обработки запроса до стадии, когда промежуточные результаты с разных серверов могут быть объединены.Затем он получает промежуточные результаты и объединяет их. Распределенная таблица пытается распределить как можно больше работы между удаленными серверами и не отправляет много промежуточных данных по сети.
Ситуация усложняется, когда у вас есть подзапросы в предложениях IN или JOIN, и каждый из них использует таблицу Distributed
. У нас разные стратегии выполнения этих запросов.
Нет глобального плана запроса для выполнения распределенного запроса. У каждого узла есть свой локальный план запроса для своей части задания.У нас есть только простое выполнение распределенного запроса за один проход: мы отправляем запросы удаленным узлам, а затем объединяем результаты. Но это невозможно для сложных запросов с высокой мощностью GROUP BY или с большим количеством временных данных для JOIN. В таких случаях нам необходимо «перетасовать» данные между серверами, что требует дополнительной координации. ClickHouse не поддерживает такое выполнение запросов, и нам нужно над этим работать.
Дерево слияния
MergeTree
- это семейство механизмов хранения, поддерживающих индексацию по первичному ключу.Первичный ключ может быть произвольным кортежем столбцов или выражений. Данные в таблице MergeTree
хранятся в «частях». Каждая часть хранит данные в порядке первичного ключа, поэтому данные упорядочены лексикографически по кортежу первичного ключа. Все столбцы таблицы хранятся в отдельных файлах column.bin
в этих частях. Файлы состоят из сжатых блоков. Каждый блок обычно составляет от 64 КБ до 1 МБ несжатых данных в зависимости от среднего размера значения. Блоки состоят из значений столбцов, расположенных подряд друг за другом.Значения столбцов расположены в одинаковом порядке для каждого столбца (первичный ключ определяет порядок), поэтому, когда вы выполняете итерацию по многим столбцам, вы получаете значения для соответствующих строк.
Первичный ключ сам по себе «разреженный». Он обрабатывает не каждую строку, а только некоторые диапазоны данных. Отдельный файл primary.idx
имеет значение первичного ключа для каждой N-й строки, где N называется index_granularity
(обычно N = 8192). Кроме того, для каждого столбца у нас есть файлов column.mrk
с «метками», которые представляют собой смещения для каждой N-й строки в файле данных.Каждая метка представляет собой пару: смещение в файле до начала сжатого блока и смещение в распакованном блоке до начала данных. Обычно сжатые блоки выравниваются по меткам, а смещение в распакованном блоке равно нулю. Данные для primary.idx
всегда находятся в памяти, а данные для файлов column.mrk
кэшируются.
Когда мы собираемся прочитать что-то из части в MergeTree
, мы смотрим на данные primary.idx
и обнаруживаем диапазоны, которые могут содержать запрошенные данные, а затем смотрим на столбец .mrk
и вычислите смещения для начала чтения этих диапазонов. Из-за разреженности могут быть прочитаны лишние данные. ClickHouse не подходит для высокой нагрузки простых точечных запросов, потому что весь диапазон с index_granularity
строк должен быть прочитан для каждого ключа, а весь сжатый блок должен быть распакован для каждого столбца. Мы сделали индекс разреженным, потому что мы должны иметь возможность поддерживать триллионы строк на одном сервере без заметного потребления памяти для индекса.Кроме того, поскольку первичный ключ разрежен, он не уникален: он не может проверить наличие ключа в таблице во время INSERT. В таблице может быть много строк с одним и тем же ключом.
Когда вы ВСТАВЛЯЕТЕ
группу данных в MergeTree
, эта группа сортируется по порядку первичных ключей и образует новую часть. Существуют фоновые потоки, которые периодически выбирают некоторые части и объединяют их в одну отсортированную часть, чтобы количество частей было относительно небольшим. Вот почему он называется MergeTree
.Конечно, слияние приводит к «усилению записи». Все части неизменяемы: они только создаются и удаляются, но не изменяются. Когда выполняется SELECT, он содержит снимок таблицы (набор частей). После слияния мы также оставляем старые части в течение некоторого времени, чтобы облегчить восстановление после сбоя, поэтому, если мы увидим, что какая-то объединенная часть, вероятно, сломана, мы можем заменить ее исходными частями.
MergeTree
не является деревом LSM, поскольку не содержит «memtable» и «log»: вставленные данные записываются непосредственно в файловую систему.Это делает его подходящим только для ВСТАВКИ данных партиями, а не по отдельной строке и не очень часто - примерно один раз в секунду это нормально, но тысячу раз в секунду - нет. Мы сделали это для простоты и потому, что мы уже вставляем данные пакетами в наши приложения.
Существуют механизмы MergeTree, которые выполняют дополнительную работу во время фоновых слияний. Примеры: CollapsingMergeTree
и AggregatingMergeTree
. Это можно рассматривать как особую поддержку обновлений.Имейте в виду, что это не настоящие обновления, потому что пользователи обычно не могут контролировать время, когда выполняется фоновое слияние, а данные в таблице MergeTree
почти всегда хранятся более чем в одной части, а не в полностью объединенной форме.
Репликация
Репликация в ClickHouse может быть настроена для каждой таблицы. У вас может быть несколько реплицированных и несколько нереплицированных таблиц на одном сервере. Вы также можете реплицировать таблицы разными способами, например, одну таблицу с двухфакторной репликацией, а другую - с трехфакторной.
Репликация реализована в подсистеме хранения ReplicatedMergeTree
. Путь в ZooKeeper
указывается как параметр для механизма хранения. Все таблицы с одинаковым путем в ZooKeeper
становятся копиями друг друга: они синхронизируют свои данные и поддерживают согласованность. Реплики можно добавлять и удалять динамически, просто создавая или удаляя таблицу.
Репликация использует асинхронную схему с несколькими мастерами. Вы можете вставлять данные в любую реплику, которая имеет сеанс с ZooKeeper
, и данные реплицируются на все другие реплики асинхронно.Поскольку ClickHouse не поддерживает ОБНОВЛЕНИЯ, репликация является бесконфликтной. Поскольку кворум не подтверждает вставки, только что вставленные данные могут быть потеряны в случае отказа одного из узлов.
Метаданные для репликации хранятся в ZooKeeper. Существует журнал репликации, в котором перечислены действия, которые необходимо выполнить. Действия: получить часть; объединить части; сбросить раздел и т. д. Каждая реплика копирует журнал репликации в свою очередь, а затем выполняет действия из очереди. Например, при вставке в журнале создается действие «получить деталь», и каждая реплика загружает эту часть.Слияния координируются между репликами для получения байт-идентичных результатов. Все части объединяются одинаково на всех репликах. Один из лидеров сначала инициирует новое слияние и записывает в журнал действия «слияния частей». Несколько реплик (или все) могут быть лидерами одновременно. Реплику можно предотвратить, используя параметр merge_tree
, replicated_can_become_leader
. Лидеры несут ответственность за планирование фоновых слияний.
Репликация физическая: между узлами передаются только сжатые части, а не запросы.В большинстве случаев слияния обрабатываются на каждой реплике независимо, чтобы снизить сетевые затраты, избегая усиления сети. Большие объединенные части отправляются по сети только в случае значительного лага репликации.
Кроме того, каждая реплика хранит свое состояние в ZooKeeper в виде набора частей и своих контрольных сумм. Когда состояние локальной файловой системы отличается от эталонного состояния в ZooKeeper, реплика восстанавливает свою целостность, загружая недостающие и сломанные части из других реплик.Когда в локальной файловой системе появляются неожиданные или поврежденные данные, ClickHouse не удаляет их, а перемещает в отдельный каталог и забывает.
Примечание
Кластер ClickHouse состоит из независимых сегментов, и каждый сегмент состоит из реплик. Кластер не эластичный , поэтому после добавления нового шарда данные не перебалансируются между шардами автоматически. Вместо этого предполагается, что нагрузка на кластер будет неравномерной. Эта реализация дает вам больше контроля и подходит для относительно небольших кластеров, таких как десятки узлов.Но для кластеров с сотнями узлов, которые мы используем в производстве, такой подход становится существенным недостатком. Мы должны реализовать механизм таблиц, который охватывает кластер с динамически реплицируемыми регионами, которые могут быть автоматически разделены и сбалансированы между кластерами.
Работа, преимущества, бизнес-модель, история основания
Яндекс - публичная интернет-компания, которая управляет крупнейшей поисковой системой в России. Он также предоставляет электронную почту и новостные порталы, а также ряд интернет-услуг, таких как электронные платежи, онлайн-перевод и каталоги.
Яндекс был основан в 2000 году Аркадием Воложом («Волож»), Аркадием Борковским и Ильей Сегаловичем («Сегалович»). Основатели работали над поисковыми технологиями за несколько лет до основания «Яндекса» в небольшой компании под названием «Аркадия», создав программы для поиска по Библии, Классификатору товаров и услуг и Международному классификатору патентов. В 1993 году Сегалович и Волож создали название «Яндекс», которое будет использоваться для новой поисковой программы «Аркадия». Название было игрой на слове index и служило аббревиатурой от «еще одного индексатора».
С момента своего официального запуска Яндекс сделал ряд приобретений, разработал поисковые технологии и решения для контекстной рекламы, а также расширил спектр предлагаемых услуг, зарекомендовав себя как ведущая интернет-компания в России. В 2011 году Компания зарегистрировалась на нью-йоркском рынке NASDAQ путем первичного публичного размещения акций на сумму 1,3 миллиарда долларов, что стало крупнейшим размещением акций в технологическом секторе с момента публичного листинга Google в 2004 году. Яндекс добавил листинг на Московской фондовой бирже в 2014 году. Текущая рыночная капитализация компании составляет 6 долларов.47 миллиардов.
Бизнес-модель Яндекса
Сегменты клиентовЯндекс управляет самым популярным интернет-порталом в России, где обслуживает более 53 миллионов пользователей. Также сообщается, что по состоянию на июль 2015 года компания контролирует 57% поискового рынка страны в Интернете.
Хотя Россия на сегодняшний день является крупнейшим Яндексом, на него приходится почти 90% веб-трафика, проходящего через его домашнюю страницу, он также обслуживает клиентов в Украине, Беларуси, Казахстане и Турции.
Домашняя страница компании, поисковая система и новостной портал обслуживают обычных потребителей и интернет-пользователей, а более целевые порталы обслуживают более различную аудиторию. Сюда входит служба аналитики AppMetrica, обслуживающая владельцев веб-сайтов и предприятий, и портал Yandex Realty, обслуживающий тех, кто желает купить или продать недвижимость.
Яндекс также оказывает рекламные услуги бренд-маркетологам и рекламным агентствам.
Ценностные предложенияОсновная ценность Яндекса для потребителей заключается в том, что его флагманские службы поиска, электронной почты, новостей и потокового видео доступны бесплатно.Компания предоставляет клиентам ряд продуктов и услуг, позволяя им интегрировать свои учетные записи и предпочтения по нескольким каналам. Яндекс является лидером рынка в своей родной России и имеет репутацию надежного и инновационного поставщика услуг.
Для рекламодателей сетевой портфель услуг и интернет-порталов Яндекса, а также крупных подписчиков предоставляет значительные возможности для расширения охвата бренда и рекламной аудитории.
Каналы ПлатформаЯндекс доступна на домашней странице компании www.yandex.com, который ссылается на отдельные порталы для своих различных услуг.
Компания также предоставляет ряд мобильных приложений для iOS и Android, охватывающих весь свой портфель услуг, включая Яндекс Браузер, Яндекс Почту, Яндекс Навигатор и Яндекс Карты. С Компанией также можно связаться напрямую по телефону по поводу рекламных запросов.
Отношения с клиентамиСервисы Яндекса в основном являются самообслуживанием и не требуют взаимодействия с представителями Яндекса.Пользователи могут пользоваться многими сервисами Яндекса без регистрации, включая его поисковую систему, новостной портал и службу переводов, а также могут подписаться на различные другие сервисы через главную страницу Яндекса.
Рекламодатели и маркетологи, напротив, должны связываться с Яндексом напрямую по телефону, чтобы обсудить условия, получая более персонализированные и адаптированные услуги. Яндекс оказывает поддержку своим клиентам с помощью справочных материалов и руководств по технической поддержке, доступных через отдельные сервисные порталы, а также предоставляет контактные данные своих офисов на своем основном корпоративном веб-сайте.
Компания также взаимодействует со своими клиентами через учетные записи в социальных сетях, в том числе через Facebook и Twitter.
Основная деятельностьЯндекс - многофункциональная российская интернет-компания и технологическая компания, предоставляющая пользователям услуги поиска, связи и цифрового контента в Интернете. Он управляет крупнейшей поисковой системой в России, а также онлайн-порталами для электронной почты, новостей, финансов, недвижимости, музыки, обмена фотографиями, ведения блогов и потокового видео, которые доступны через главную страницу Яндекса.
Компания также предоставляет различные решения для поиска, отображения, видео- и аудиорекламы в своем онлайн-портфолио, на которые приходится большая часть ее годового дохода.
Ключевые партнерыЯндекс управляет сетью поисковых партнеров, партнеров по рекламе, партнеров по развитию и партнеров по аналитике. Компания сотрудничает с рядом веб-сайтов в рамках своей рекламной сети Яндекса, через которую размещает контекстную рекламу и медийные баннеры, а партнеры получают вознаграждение за привлечение трафика.
Яндекс сотрудничает с различными технологическими компаниями в рамках своей поисковой службы. Компания сотрудничает с Facebook, обеспечивая включение общедоступного контента с сайта социальных сетей в поисковые запросы, выполняемые через движок Яндекс, при этом Facebook доказывает, что Компания имеет доступ к полному списку данных. У Яндекса аналогичная договоренность с местным клоном Facebook Вконтакте. Кроме того, Яндекс стал партнером Mozilla Firefox, который стал поисковой системой браузера по умолчанию в России и предоставляет информацию для поисковых запросов, выполненных через систему DuckDuckGo.
Yandex Data Factory, подразделение компании, занимающееся машинным обучением и анализом данных, сотрудничает с компаниями из различных секторов. У него есть партнерские отношения с Intel, для которых это технология сбора больших данных и аналитики; стратегический альянс с фармацевтической компанией AstraZeneca, работающей с научными данными; и партнерство с международной консалтинговой компанией Accenture, предоставляющей вычислительные мощности для ее исследовательских и опытно-конструкторских проектов в России.
Ключевые ресурсыКлючевые ресурсы Яндекса - это технологические и интернет-порталы, ИТ-инфраструктура, персонал и стратегические партнерства.Компания имеет ряд патентов, поданных в Управление по патентам и товарным знакам США через его дочернюю компанию Yandex Europe AG, базирующуюся в Швейцарии.
Сюда входят приложения, озаглавленные «Экран дисплея или его часть с графическим пользовательским интерфейсом, показывающий страницу результатов поисковой системы изображений», «Экран дисплея с графическим пользовательским интерфейсом» и «Способ отображения положения на карте».
Структура затратЯндекс несет расходы за счет развития своих веб-порталов, обслуживания своей ИТ-инфраструктуры и удержания персонала.У Яндекса также большой маркетинговый и рекламный бюджет.
В компании работает крупный международный персонал, насчитывающий более 5 400 человек, и на них накапливаются значительные расходы, связанные с заработной платой и льготами.
Он также имеет сеть офисов в России, Украине, Беларуси, Турции, Германии и Швейцарии, которые генерируют расходы на аренду и коммунальные услуги.