транзакционные, коммерческие, информационные и пр.
Для эффективного комплексного продвижения уже давно недостаточно подбирать наобум фразы вроде «пластиковые окна», не обращая внимание на тип запроса, интересы целевой аудитории, состояние выдачи и т.д.
Нужно четко понимать, что может искать человек по запросу, который вы пытаетесь продвинуть. Может ли он совершить покупку? Готов ли прочитать большую статью с обзором новых товаров? Есть ли вероятность, что сразу закроет сайт, вернувшись в выдачу? Для ответа нужно четко разделить все ключевые слова.
Виды поисковых запросов:
- Транзакционные (коммерческие) – их набирают люди, которые уже готовы к действию, если встретят адекватное предложение. Пример: «купить строительные материалы». Оптимизируя необходимую страницу, нужно делать максимум конкретики – назовите свой продукт/услугу, его/ее характеристики, цену и условия поставки. И все. Никаких дополнительных разъяснений и длинных рассказов про историю создания.
- Навигационные – это случай, когда поисковик используется лишь как посредник – большинство пользователей безвозвратно уходят из выдачи, найдя, к примеру, официальный сайт какого-нибудь футбольного клуба или известной личности. Продвижение по таким ключевикам – очень специфично. Если действительно ищут не вашу компанию, то все усилия могут выйти боком: люди просто будут уходить с сайта, увеличивая процент отказов, что влияет на оценку поведенческих факторов. Поставьте себя на место Яндекса: зачем сайт высоко ранжировать по какому-то запросу, если его практически сразу же закрывает каждый второй зашедший?
- Информационные – здесь единственная цель – получить данные без коммерческой основы. Любые запросы, начинающиеся с «как», «сколько», «когда», «почему» и т.п. Можно воспользоваться тем, что человек готов читать различные обзоры, статьи, советы и рейтинги, но, не «кидаясь» коммерческими предложениями.
- Мультимедиа («файловые» или «медийные») запросы. Все до банальности просто: кто-то ищет, где скачать новый видео-обзор или посмотреть отсканированные сертификаты качества. Не думайте, что эти люди не принесут вам ничего кроме дополнительной нагрузки на сервер. Всегда есть шанс конвертировать человека как в минимум в разряд «заинтересованных».
- Обобщенные запросы – то, что нельзя охарактеризовать однозначно. Отгадайте, что ищет пользователь, вводящий в Яндексе ключевое слово «мир»: географические данные о планете? Цитаты известных людей о дружбе народов? А может быть это «оборванное» название местного магазина «Мир спорта»? Здесь есть тонкая грань: если вы беретесь продвигать подобные слова, то рискуете нарваться на массовые отказы. Исключаете его из семантического ядра – теряете довольно большой «кусок торта».
Кроме того, нужно учитывать виды ключевиков по конкуренции и частотности: есть ли смысл продвигать информационную статью всего лишь по одному запросу, который набирают только 3 раза в месяц? Правильно ли будет браться за высококонкурентное ключевое слово, имея молодой сайт?
Задавайте себе как можно больше вопросов – это педантичный и правильный путь к успеху.
Если вы занимаетесь коммерческой деятельностью, то основной упор здесь очевиден: составляйте хорошее семантическое ядро из транзакционных запросов и создавайте под каждую группу ключевиков посадочные страницы с оптимизированными текстами.
Но преследование финансовых целей – не повод забывать про другие типы ключевых слов. Аргументируем это:
- С помощью информационных и мультимедиа-запросов вы увеличиваете количество точек входа на сайт – и это не обязательно должны быть переходы с поисковой выдачи.
- Открываются новые пути привлечения клиентов. Какой бы «большой» ни была тематика, рано или поздно коммерческие ключевые слова заканчиваются либо «выжимают» максимум, выходя в ТОП. Что делать после этого:
— Выходить в другие регионы
— Открывать новое направление деятельности
— Начинать работать на информационном «фронте»
- Возможность создания первого этапа лида – подписка на рассылку, добавление RSS-ленты, переадресация в соц. сети и т.п.
- Повышение репутации, грамотное самопозиционирование. Люди привыкли рассуждать так: если компания пишет какие-то интересные материалы, не заставляя немедленно совершать покупку, значит это «серьезная контора», выделяющая ресурсы на внимание своих потенциальных клиентов. Вам просто больше доверяют.
- Расширение семантического ядра. Яндекс стает все умнее и сложнее: теперь для увеличения невидимого «траста» требуется всестороннее развитие сайта. Если из двух одинаковых компаний одна будет постоянно писать про свои спец. цены на новое оборудование, а другая – создавать разносторонний контент, ведя целую информационную колонку, то предпочтение отдается последней.
- Увеличивается вовлеченность пользователей. Иногда до принятия решения о покупке требуется пролистать все страницы сайта, почитать отзывы, оставить комментарий или обратиться к поддержке. Воспринимайте информационные статьи как мотив ко всему перечисленному.
- Возможность предугадать интересы пользователей. Особенно это актуально с введением алгоритма Яндекса «Дублин», о котором рассказывает независимый эксперт Дмитрий Силаев:
http://www.seonews.ru/masterclasses/yandex-dublin-master-class/
Стали учитываться не только постоянные интересы человека, но и его «сиюминутные» желания. Если недавно вы искали информацию об изменениях в механизме ранжирования Яндекса, то по запросу «остров» получите ссылки на новый алгоритм, а не на туры в индонезийский Бали.
Соответственно, при наличии инструментов статистики можно выгодно использовать эти знания и технологии.
Итак, об инструментах – как подобрать ключевые слова:
- Яндекс.Метрика – этот сервис позволяет просматривать запросы, по которым люди уже приходят на ваш сайт:
Что это дает?
- Выгружаем список в таблицу
- Убираем лишние ключевые слова – нецелевые, непопулярные и т.п.
- Собираем частотность и действующие позиции
- Делаем сортировку сначала по популярности, а затем – по месту в выдаче, либо другой вариант – по релевантным страницам
- Получаем почти готовую стратегию – по каким запросам можно дописать/создать тексты, добиваясь ТОП’овых позиций = трафика
- Сервисы для анализа конкурентов:
- prodvigator. ua
- spywords.ru
- semrush.com/ru
В чем суть – вам показываются фразы, по которым сайты аналогичной тематики уже сидят в ТОП Яндекса и Google:
- Счетчики посещаемости. У некоторых сайтов есть открытые счетчики со статистикой LiveInternet по позициям:
А иногда попадается и открытая Яндекс.Метрика:
- Правая колонка Яндекс.Wordstat:
Фразы, которые интересны людям, искавшим ваше ключевое слово.
- Основная левая колонка – с помощью модели «как (сколько, что и т.п.) + ключевое слово» (без кавычек). Удивительно, но таким образом можно собрать сотни тем для информационных статей:
Прочие рекомендации:
- При продвижении обобщенных запросов пытайтесь предугадать основные интересы аудитории. Например, имея сайт-энциклопедию общей тематики, попробуйте оптимизировать страницу под запрос «сименс», разделив на несколько блоков контент: мобильные телефоны, бытовая техника, электротехническое оборудование и общая информация о компании.
- Учитывайте кликабельность позиции в определенной нише. Для навигационных запросов, первые сайты которых по статистике собирают почти весь трафик, ТОП-10 – не очень хорошая цель. В то время как в коммерции иногда даже ТОП-20 можно считать эффективным результатом.
- Сочетайте продающие посадочные страницы с «полукоммерческими» ключевыми словами: «отзывы», «где заказать», «как купить» и т.п.
- Подсматривайте в поисковые подсказки – что люди набирают больше. Здесь работает «эффект толпы» и принцип экономии времени.
Если у вас остались вопросы по созданию семантического ядра или написанию оптимизированных текстов, обращайтесь к нам — cпециалисты студии «ЛидерВеб» с радостью подскажут, как можно улучшить ваш сайт и развивать его в верном направлении.
Типы поисковых запросов, их классификация по видам и частотности
Информационные
Они подразумевают, что человек хочет просто получить информацию. Скорее всего, он надеется увидеть в выдаче подробную статью или видео, которые максимально полно раскроют тему и ответят на все его вопросы.
Пример такого запроса — “как продвинуть сайт в интернете”. Если ввести его в поисковик, в выдаче мы увидим инструкции и список популярных способов раскрутки. Всё это большие статьи с подробной информацией.
Хотя на первый взгляд кажется, что коммерческим ресурсам продвижение по таким фразам не нужно, это не совсем так. Да, по ним вряд ли придёт аудитория, которая заинтересована в покупке прямо сейчас. Но зато присутствие ресурса в такой выдаче повышает узнаваемость, создаёт экспертность и как бы “прогревает” аудиторию для покупки.
Транзакционные
Транзакционные запросы — это те фразы, которые выражают намерение человека не просто найти информацию по теме, а купить продукт. Поэтому их отличают слова “купить”, “заказать”, “скачать”, “цена” и т.д. Часто их ещё называют коммерческими.
В примере ниже мы видим, что по транзакционному запросу “заказать продвижение сайта”, в выдаче уже не просто информационные статьи, а коммерческие страницы. Если перейти по ним, там можно найти телефоны компаний и кнопки вроде “связаться с нами”.
Конечно, по таким фразам продвигаться очень выгодно. Ведь они сразу приводят аудиторию, которая максимально готова к покупке. Но и конкуренция по ним большая. Оно и понятно — ведь все хотят получить на свой ресурс как можно больше заинтересованных в покупке пользователей.
Навигационные
Они подразумевают, что пользователь хочет сразу найти конкретный сайт, а не увидеть большое количество результатов поиска. Часто в таком случае в поисковик просто вводят название компании или сопровождают его словами вроде “официальный сайт”. Обычно такие запросы появляются, когда человек точно не помнит адрес ресурса или ему просто лень переходить на английскую раскладку, если URL на латинице.
Пример:
Геонезависимые
В этом случае всё наоборот: выдача не будет зависеть от местоположения пользователя. То есть из какого города вы бы ни спросили у поисковика о том, в каком году затонул “Титаник”, результаты будут одинаковыми.
Логично, что чаще всего к геонезависимым относятся информационные запросы со словами вроде “что такое”, “как”, “почему”, “это” и т.д. Ведь чтобы дать человеку информацию о каком-либо явлении, в большинстве случаев совсем необязательно учитывать его местоположение.
Плюс, в эту же категорию можно отнести фразы с указанием города. Даже если человек находится в Новосибирске, ему может понадобиться заказать доставку цветов в Екатеринбурге. В этом случае его актуальное местоположение на выдачу не повлияет.
Пример такого вопроса к поисковику и топа выдачи по нему:
Общие
К этому типу относятся самые расплывчатые форматы запросов, по которым непонятно, что точно искал человек. Например, если ввести в поисковик фразу “продвинуть сайт”, он не поймёт хотите ли вы заказать продвижение, а может заняться раскруткой самостоятельно. Поэтому в выдаче вы увидите и то, и другое: и предложения SEO-студий, и информационные статьи с перечислениями способов продвижения сайта.
Ещё примеры:
-
“Гитара”. Вариаций для релевантного ответа на такой вопрос может быть много: что это за инструмент, какие гитары бывают, музыкальные магазины, где можно их купить и т.д.
-
“Столярные инструменты”. Опять же неясно, что человек ожидает увидеть — определение или ссылку на магазин.
-
“Капитальный ремонт”. Непонятно хочет ли человек заказать капитальный ремонт для своей квартиры или узнать, сколько платят за капремонт домов жители его города.
Иногда по общим вопросам выдача выглядит совсем не так, как человек ожидает, и тогда ему приходится добавлять уточняющие слова. После этого фраза легко может перейти в категорию и информационных, и коммерческих запросов.
Продвигаться по общим словам сложно, потому что их используют слишком часто, следовательно, по ним довольно большая конкуренция. И совсем не факт, что со своей страницей вы попадёте в ожидания человека. А рост процента отказов может в целом негативно повлиять на позиции в выдаче.
Частотность запросов
Помимо всех видов, которые мы обсудили выше, все запросы можно поделить ещё и по частотности — то есть по тому, как часто их используют люди. Всего выделяют три типа:
-
Высокочастотные. Это самый часто встречающийся тип. Обычно в них 1-2 слова, ведь люди ленивы, а значит большинство старается использовать для поиска максимально короткие фразы. Из-за этого здесь очень большая конкуренция: логично, что каждая компания хочет, чтобы по запросам вроде “заказать аниматора” или “цветы москва”, их сайт находился на первом месте в выдаче. Поэтому за такое размещение придётся побороться.
-
Среднечастотные. Такие запросы используют реже, но зато они чуть больше конкретизируют информацию, которую ожидает получить человек. Из-за этого выдача становится для него более полезной. Примеры таких фраз: “смотреть бесплатно фильм титаник”, “как научить собаку выполнять команды”, “купить красные розы в москве”.
-
Низкочастотные. Их люди используют реже всего. Продвигаться по ним выгоднее, потому что конкуренция здесь не такая высокая. Но зато и такого большого трафика на первых местах в выдаче получить не удастся. Примеры: “купить недорого чайник бош WCR23406”, “лучшие бюджетные акустические гитары”, “игрушки для собак из резины”.
Также иногда выделяют микронизкочастотные запросы. Тут частота использования совсем небольшая: примерно от 5 до 30 в месяц. Но и у них есть свои преимущества. Конечно же, это супернизкая конкуренция. Далеко не все заморачиваются со сбором таких редких ключевых фраз, а значит у тех, кто всё-таки потратит на это время, будет возможность получать весь этот трафик себе.
Оценить частотность можно с помощью сервиса Яндекс.Вордстат. На скриншоте видно, что справа от каждой фразы написано количество запросов по ней в месяц.
Итог
Скорее всего, после прочтения статьи вы уже догадались, что классификация поисковых запросов — вещь довольно расплывчатая. Ведь какая-то фраза может относиться к двум категориям сразу, а какая-то в зависимости от обстоятельств переходить из одной в другую. Но для общего понимания темы примерную классификацию типов запросов знать всё-таки стоит. Ведь только так можно составить грамотное семантическое ядро именно для своего ресурса и успешно продвигать сайт в выдаче.
как выжать максимум из ключевых фраз в контекстной рекламе
Поделиться
Поделиться
Авторы:
|
Анастасия Кадыркина, специалист по интернет-рекламе E-Promo |
|
|
Иван Есев, старший специалист по интернет-рекламе E-Promo |
Ключевые запросы в контекстной рекламе — предмет извечных споров. Считается, что и здесь действует Закон Парето: 20% популярных запросов делают 80% трафика. Но за этот трафик в высококонкурентных отраслях приходится немало платить.
Для примера возьмём одну из непростых сфер — электронику и бытовую технику. Для неё характерны высокая стоимость совершения конверсии и длительное принятие решения о покупке. Чтобы пользователь нашёл в поисковике конкретный магазин и перешёл именно на его сайт, ритейлеру придётся не только предугадать возможный запрос, но и выделиться среди конкурентов привлекательным предложением.
В этом помогут правильно собранное семантическое ядро рекламной кампании и релевантные объявления. Если грамотно дополнить ключевые запросы эффективными информационными или транзакционными приставками (словами типа «купить», «каталог» или «доставка»), можно заметно повысить конверсию даже по редко используемым фразам, причём на всех этапах воронки продаж.
Мы проанализировали более 17 тысяч рекламных кампаний в Яндекс. Директе и Google Ads — это более 700 000 ключевых фраз.
Все они относятся к следующим категориям товаров: компьютерная, бытовая, садовая техника, мобильная электроника, аудио- и видеотехника, электроинструменты.
Примерно ⅔ всех транзакций приходится на запросы с геодобавками, дополнительными характеристиками (цвет, материал, размер) и так далее. Такие слова мы исключили из нашего анализа. Оставшиеся запросы содержат ключевые фразы с условно транзакционными и информационными приставками, они и представляют особый интерес для анализа.
Для начала мы составили список наиболее популярных информационных и транзакционных приставок в ключевых фразах по отрасли. Затем сгруппировали их по виду:
Эти наименования являются условными для простоты восприятия и оценки различий среди ключевых фраз. А потом распределили их по этапам воронки продаж с учётом потребностей пользователя на каждом шаге.
Воронка продаж и запросы пользователей
На первом этапе пользователи ищут информацию об особенностях товара, и основная задача ритейлера — повысить узнаваемость бренда, заинтересовать пользователя, чтобы он задумался о покупке.
На втором этапе бизнес работает с пользователями, которые ищут информацию о конкретном продукте и оценивают предложения на рынке.
Тем пользователям, которые уже выбрали товар и в данный момент ищут способ и место его приобретения, важно рассказать о предоставляемых выгодах и УТП бренда, объяснить, почему они должны купить именно в этом магазине.
На этапе принятия решения важно помочь пользователю преодолеть барьеры и совершить конверсию: предложить кредит, рассрочку, скидку, варианты доставки.
На этапе покупки задача ритейлера — сделать пользователя лояльным и приверженным бренду для совершения дальнейших покупок в этом магазине.
Учитывая потребности пользователя и задачи ритейлера, мы распределили популярные приставки по этапам воронки, оценили их эффективность и сформулировали рекомендации для специалистов по контекстной рекламе в отрасли техники и электроники.
Эффективность приставок мы анализировали с помощью оценки количества транзакций и показателя конверсий.
1. Поиск информации о товаре или бренде
На этапе ознакомления с товаром пользователи ищут информацию о его особенностях, характеристики, преимущества и недостатки, но пока не уверены в его приобретении. Также они могут интересоваться брендом в целом, искать сведения о производителе, способы оформления заказа и доставки товара.
Наиболее характерные информационные приставки:
Лидируют по транзакциям «фирма», «плюсы», «оригинал» и «личный кабинет». В зависимости от типа кампаний (брендовая или нет) эффективность приставок может быть разной.
Используя при поиске уточнения «фирма» или «фирма + магазин», покупатель старается найти известного производителя качественной, оригинальной продукции или официальный магазин бренда, чтобы обезопасить себя от подделок. Работая с такими запросами, помимо преимуществ самого товара следует выделять в УТП объявлений официальность бренда, товара и его продавца.
Пользователи, добавляющие в запрос слово «плюсы» или комбинацию слов «плюсы + купить», выясняют преимущества продукта, которые отвечают их потребностям и подталкивают к приобретению.
Моноприставка «плюсы» принесла больше транзакций, чем микс-приставка «плюсы + купить», однако у последней коэффициент CR почти в два раза выше.
При работе с такими запросами следует подчёркивать ключевые характеристики и преимущества бренда или продукции. Приставка «плюсы» будет хорошо работать в ключевых словах брендовых рекламных кампаний.
Топ транзакционных микс-приставок
Сочетание инфо- и транзакционных приставок повышает вероятность оформления заказа. Пользователь ищет надёжного и известного поставщика оригинальной продукции, поэтому часто использует такие слова, как «оригинал + купить», «фирма + магазин».
На эффективность рекламной кампании могут влиять и запросы с приставками «личный кабинет», «адреса».
Именно поэтому в УТП важно подчёркивать скорость и простоту оформления заказа на сайте, указывать на лёгкость получения товара, наличие пунктов выдачи и условия доставки на дом.
Используя информационные приставки в брендовых РК, разделяйте их по группам — так будет проще контролировать эффективность. А вот из небрендовых кампаний инфоприставки лучше исключить: пользователь, который пока выбирает продукт и ещё не определился с конкретным продавцом, вряд ли дойдёт до покупки на этом этапе воронки.
2. Изучение продукта
На этом этапе пользователь готов совершить покупку в дальнейшем, однако пока не обладает всей информацией о продукте и способе покупки.
Разделили популярные приставки на два блока:
-
запросы с приставкой «каталог»;
-
запросы с приставками, которые относятся к цене товара: «цена», «стоимость», «сколько стоит».
Приставку «каталог» уместнее использовать в брендовых запросах, где пользователь ищет не конкретный товар, а интересуется ассортиментом ритейлера, прежде чем принять решение о покупке. В небрендовых кампаниях эта приставка носит информационный характер. Рекомендуем использовать моноприставку «каталог» для брендовых кампаний и протестировать данную добавку в категорийной семантике небрендовых кампаний, например, «смартфоны каталог».
Для небрендовых кампаний лучше всего работает приставка «цена» — запросы по товарам с ней характерны для тёплой аудитории. На этом этапе воронки пользователь уже выбрал товар и для него не важен бренд магазина, в котором он его приобретёт. Нет приверженности к месту покупки — поиск выгодной цены приоритетнее. В таких кампаниях стоит добавить в текст объявлений информацию о ценах на сайте для товара, который ищет пользователь.
Для брендовых РК лучше использовать связку «цена + каталог». В этом случае мы ориентируемся на пользователей, которым интересен ассортимент и цены у конкретного бренда, и связка «цена + каталог» усилит конверсионность объявлений.
Моноприставка «цена» и микс-приставка «цена + каталог» составляют более 90% среди приставок со словом цена.
Интересно посмотреть на две схожие по смыслу приставки: «стоимость» и «сколько стоит». Они отрабатывают по-разному: «стоимость» приносит почти в два раза больше транзакций при примерно одинаковом уровне кликабельности объявлений (около 20%).
А сложные приставки со словами «сколько стоит» вообще не приносят транзакций несмотря на высокий CTR. Вероятно, пользователи указывают эти слова в запросе только для поиска информации, но не в момент принятия решения о покупке.
Поэтому в семантическом ядре рекомендуем использовать только моноприставки, а дополнения микс-приставок добавлять в минус-слова.
Микс-приставки «сколько стоит + оригинал» и «сколько стоит + плюсы» характеризуются очень высоким CTR при полном отсутствии транзакций.
3. Выбор способа и места покупки
Когда пользователи тщательно изучили товар, они переходят к поиску магазина или сайта, где можно его приобрести.
На этом этапе наибольшую долю транзакций в ключевых фразах приносят такие приставки как «сайт», «интернет-магазин» и «магазин».
Слова «онлайн» и «официальный» реже приводят к совершению транзакции.
Указывая «сайт», «магазин» или «интернет-магазин» в брендовом запросе, пользователь ищет конкретный магазин. Он уже знает, где ему нужно совершить покупку. В зависимости от этапа принятия решения о покупке, значения для бренда и небренда могут отличаться.
В небрендовых запросах такие приставки означают, что пользователь ищет конкретный товар, но ещё не решил, где будет его покупать.
Когда он вводит запрос вида «название товара / модели + магазин / сайт / интернет-магазин», то находится в поиске выгодного предложения и при этом у него нет приверженности к конкретному бренду.
Для брендовых кампаний мы рекомендуем использовать в заголовках и текстах объявлений моноприставки, которые указывают на место покупки. Это повысит релевантность объявлений.
Бренд: большее количество транзакций у приставок «интернет-магазин», «магазин», «официальный», «сайт» — указывают на место покупки.
Небренд: большее количество транзакций у приставок «онлайн».
Интересно, что в случае с микс-приставкой «сайт + официальный» мы получили разные результаты для Яндекса и Google.
Микс-приставка — транзакций больше в Яндексе.
Моноприставка — транзакций больше в Google.
Поисковые подсказки в Яндексе указывают на дополнительную приставку «официальный». Пользователь выбирает вариант с этим словом, чтобы перейти на официальный сайт бренда или купить продукт у официального реселлера или магазина.
В таких случаях стоит обратить внимание на УТП и подчеркнуть безопасность покупки.
4. Решение о покупке
На этом этапе важно отработать все возможные возражения и барьеры, препятствующие совершению покупки и помочь пользователю их преодолеть.
Если в вашем магазине проходят акции с промокодами, можно также использовать их в текстах объявлений и заголовках. Возможно, именно так вы решите проблему пользователя и предоставите выгодное и конкретное предложение здесь и сейчас.
Если пользователь понимает, что товар для него слишком дорогой, ритейлер может предложить решение в виде рассрочки или кредита.
На диаграмме мы можем увидеть, что наибольшее количество транзакций приносят ключевые фразы с приставками «рассрочка», «кредит», «промокод».
При этом ключевые слова с упоминанием рассрочки приносят больше транзакций, чем с кредитом. Рассрочка чаще всего беспроцентная, а кредит нередко вызывает негативные ассоциации. Для привлечения пользователей на этом этапе в качестве УТП в текстах мы рекомендуем указывать условия рассрочки. Если магазин предоставляет и кредит, и рассрочку — можно настроить отдельные кампании, запустить А/Б-тестирование и сравнить эффективность.
Наибольшее количество транзакций приходится на моноприставки. При использовании микс-приставок количество транзакций снижается.
Моноприставка «рассрочка» приносит наибольшее количество транзакций при CR — 2,3%. Наименьшее количество транзакций — микс-приставки с добавкой «взять».
Слова «рассрочка» и «кредит» лучше работают в небрендовых рекламных кампаниях, когда пользователь ищет более выгодные условия приобретения конкретного товара. Помимо условий приобретения, в качестве УТП можно указать на выгоды, которые можно получить при рассрочке или кредите.
В брендовых кампаниях эти слова можно применять для повышения узнаваемости и охвата.
Небрендовые кампании приносят большее количество транзакций, чем брендовые.
Для этих приставок мы наблюдаем разную эффективность в Яндексе и Google. Транзакций при поиске рассрочки в Яндексе почти вдвое больше. И здесь свою роль сыграл поисковый запрос с моноприставкой «рассрочка», который стоит на первом месте среди предложенных системой.
Исходя из популярности поискового запроса в Яндексе, рекомендуем использовать ключевые слова с приставкой «рассрочка» для новинок и моделей с высокой стоимостью.
Яндекс приносит большее количество транзакций, Google — приносит больший CR%.
5. Покупка
Пользователи, готовые приобрести товар, используют в поисковых запросах транзакционные приставки: «купить», «заказать», «заказ», «предзаказ». Рекламодателю в этот момент важно помочь покупателю преодолеть последние барьеры, препятствующие покупке.
Наибольшее количество транзакций приносят приставки с добавкой «купить».
Наибольший показатель CR (отношение транзакций к кликам) — приставки со словом «предзаказ».
Приставка «купить» приносит наибольшее количество транзакций, в то время как «предзаказ» — максимальный CR.
Со сцепкой отражающих цену приставок «цена», «недорого», «дешёво» и слова «купить» нужно быть максимально аккуратными. Если продавец предлагает не самую низкую цену и не демпингует, объявления по таким запросам могут снизить конверсию. Перейдя по заманчивому объявлению, пользователь поймёт, что реальная стоимость товара не соответствует его ожиданию и не станет его покупать. А значит вырастет стоимость клика и показатель отказов.
Если вы хотите привлечь покупателя своими ценами, отразите их в текстах и заголовках объявлений. Слова «недорого», «дешёво» стоит использовать только в том случае, если вы действительно предлагаете цены ниже рыночных.
Микс-приставки «купить недорого», «купить дешёво», «скидки» снижают CR (среднее значение CR по приставке «купить» — 0,8%) и увеличивают CPA.
Слово «предзаказ» эффективно работает в небрендовых кампаниях, так как пользователь интересуется возможностью предзаказа, а не покупкой в конкретном магазине. С большой вероятностью он имеет чёткое намерение приобрести товар заранее, до начала официальных продаж. Поскольку
Немногие интернет-магазины предлагают возможность раннего заказа, и это может стать эффективным УТП в объявлениях. Желательно запускать отдельные кампании на предзаказ новинок до старта продаж у конкурентов.
Моноприставка имеет наивысший CR% среди транзакционных добавок.
Рекомендации
-
Изучайте потребительское поведение на каждом этапе воронки продаж. Объявление должно быть релевантным и актуальным приставкам в поисковых запросах.
-
Выявляйте барьеры, с которыми сталкивается пользователь. Выясняйте, что именно мешает ему совершить конверсию — и предлагайте пути решения с помощью УТП в тексте объявлений.
-
Эффективность запросов в Google и Яндексе может различаться, анализируйте результаты по отдельности и ставьте повышающие корректировки на ключевые фразы с наиболее эффективными приставками.
-
Даже одинаковые по смыслу приставки могут по-разному отрабатывать. Необходимо анализировать различия между ними и вносить корректировки на уровне ключевых фраз.
-
Одни и те же приставки могут приносить разные результаты в брендовых и небрендовых кампаниях. Используйте различные подходы в проработке семантического ядра и добавляйте неэффективные слова в минус-фразы в разных типах кампаний.
-
В зависимости от того, используете вы моно- или микс-приставки, показатель конверсий может увеличиваться или уменьшаться. Если микс-приставка значительно снижает показатель конверсий и не приносит транзакций, необходимо исключить эту добавку из семантического ядра и занести в список минус-слов.
Источник фото на тизере: Shengjun Shi on Unsplash
Что такое поисковое продвижение?
Поисковое продвижение сайта – это комплексная работа по повышению позиции сайта в выдаче поисковых систем по выбранным поисковым запросам. Результатом SEO-продвижения является первые места сайта в поисковой выдаче. Верхние строчки обеспечивают веб-ресурсу популярность и стабильный целевой трафик, а значит – рост конверсии. Главное преимущество в том, что за размещение в ТОПе поиска системе не нужно платить, и владелец сайта получает полностью бесплатный трафик. Для того, чтобы сайт попал на верхние строчки он должен удовлетворять требованиям поисковых систем, иначе говоря быть лучшим из всех.
Поисковое продвижение: значение и особенности
В поисковых системах собирается и хранится информация обо всех ресурсах сети интернет. Информация структурирована и выдается по запросу поиска. Почему важно находится в топе поисковой выдачи? Самое главное – это гарантия, что сайт будет показываться наибольшему количеству пользователей. По данным исследований первые места в поисковой выдаче получают не менее 95% уникальных посетителей. Особенность поискового продвижения в том, что сайты из первой 10 по мнению поисковых систем дают лучшие ответы на заданные пользователем запросы.
Основная цель продвижения сайта это вывод сайта на верхние позиции по наиболее популярным поисковым запросам. Запросы собираются при анализе статистики, которую предоставляют поисковые системы. Не каждый запрос пользователя является коммерческим, т.е. говорит о намерении пользователя. Например, «окна ПВХ» является общим, а «Купить окна ПВХ в Санкт-Петербурге» — продающим и дополнительно с региональной привязкой. Т.е. он указывает на желание потребителя приобрети товар, и еще конкретизирует место, где ему удобно это сделать. Данные запросы являются транзакционными и ориентированы на продажу, поэтому интересны большинству владельцев веб-ресурсов. При формировании семантического ядра (списка поисковых запросов по конкретной тематике) транзакционные запросы максимально расширяют по словоформам и словосочетаниям, чтобы обеспечить максимальный охват целевой аудитории. Например, «Окна ПВХ продажа», «Окна ПВХ цены» и т.д. Благодаря качественной семантике сайт может попасть в топ не по одному, а сразу по нескольким запросам.
Исходя из этого основными целями продвижения будут:
- Вывод сайта на верхние строчки поисковой выдачи по максимальному числу поисковых запросов
- Привлечение целевого трафика на сайт, т.е. максимального количества целевых посетителей.
Стоит отметить, что высокие места в топе выдачи, это не равно высокие продажи с сайта. В этом случае запускаются другие алгоритмы – удобство сайта для совершения покупок, качество размещенной на сайте информации, условия работы компании, цены на товар или услугу и т. д. Для улучшения этих показателей помимо специалиста по SEO с сайтом работают другие специалисты.
Какие требования предъявляются поисковыми системами к качеству сайта?
При оценке качества сайта поисковые системы учитывают множество показателей, многие из которых даже не афишируются. Начинать разработку стратегии продвижения сайта важно с учетом следующих показателей.
- Возраст домена. Продвижения сайтов до 1 года потребует комплексной и длительной работы по продвижению, ведь чем старше сайт, тем проще и легче его раскрутить.
- Уникальное и полезное содержание. Контент с интересными и полезными статьями, видео и фото материалами является залогом успешного продвижения. С текстами, рассчитанными исключительно на роботов поисковых систем и не представляющими интереса для пользователей сложно вывести сайт в ТОП, а вот снизить его позиции очень легко.
- Качество оптимизации сайта. Верстка изображений, заголовков, подзаголовков, таблиц, инфографики, текста c помощью кодов HTML и CSS с учетом требований поисковых систем повышает доверие и лояльность последних. Важно, чтобы сайт был адаптирован, корректно и без ошибок открывался на любых устройствах. Тексты и графические элементы должны размещаться так, чтобы пользователю было максимально удобно и интересно изучать информацию.
- Внутренняя перелинковка. Правильное размещение ссылок внутри веб-ресурса сделает сайт максимально информативным и полезным для пользователя. Перелинковка позволит сделать приоритетными нужные страницы, увеличить конверсии. Важные страницы или разделы будут индексироваться в ускоренном режиме, что позволит быстрее выйти в ТОП.
- Оптимизация страниц под целевые запросы. Для эффективного продвижения важно собрать и сегментировать по страницам и разделам семантическое ядро (список наиболее релевантных для сайта целевых запросов). Грамотная оптимизация по высоко, средне и низкочастным запросам позволит подняться на верхние строчки.
- Внешние ссылки. За счет увеличения ссылочной массы улучшается рейтинг сайта в поисковой системе, растет трафик и привлекается больше целевых пользователей с помощью запросов. Ссылки с других авторитетных площадок — сигнал для поисковых систем поднять ваш сайт выше в выдаче.
- Объем веб-ресурса. На ранжирование сайта влияет количество страниц. Каждая страница имеет свой вес, и его учитывают поисковые роботы при ранжировании. Чем больше страниц, тем больше общий вес сайта. Важно также, чтобы разница между количеством индексированных и скрытых от индексации страниц не была значительной, ведь это дает сигнал поисковым системам о большом количестве низкокачественного контента.
Как организовать грамотное продвижение сайта?
Поисковое продвижение – это комплексна работа команды специалистов, причем постоянная. Невозможно достичь длительного и стабильного результата, разместив качественные тексты, нарастив ссылочную массу и проведя оптимизацию. На некоторое время результат будет достигнут и даже продлиться некоторое время, но отсутствие работы с сайтом будет снижать его позиции. В поисковом продвижении можно выделить несколько главных моментов.
- Наполнение контентом. Систематическое размещение на сайте новой, интересной и полезной информации – это большой плюс для позиции сайта в поиске.
- Разные формы подачи материалов. Красивые изображения, фото и видеоматериалы, музыка, графика позволят преподнести товар или услугу в самом привлекательном для пользователя виде. Материалы должны дополняться и обновляться.
- Юзабилити сайта. Отслеживать поведение пользователя, проводить оптимизацию страниц, и следить насколько сайт удобен в использовании на разных устройствах нужно постоянно, ведь это позволит своевременно выявлять и устранять ошибки в его работе.
- Увеличение ссылочной массы. Важно размещать ссылки не только на платных платформах, но и на бесплатных ресурсах по тематике сайта. Это позволит не только улучшить ранжирование сайта, но и даст естественные переходы с блогов и форумов заинтересованных пользователей.
Как быстро можно получить результат?
Однозначного ответа на этот вопрос нет, ведь выведение в ТОП зависит от многих условий: направленности и тематики ниши, конкуренции, бюджета на продвижение, стартовых показателей сайта и т. д. Опыт продвижения показывает, что вывести сайт на верхние строчки поисковой выдачи можно за 4-6 месяцев. Причем, первый поток клиентов пойдет уже спустя несколько месяцев (при грамотно организованной работе с низкочастотными вопросами), а по мере доверия поисковых систем станет постоянным.
Как определить эффективность продвижения?
Для людей далеких от сферы интернет-маркетинга часто непонятно, как и насколько эффективно расходуется бюджет на продвижение, и как можно отследить результаты работы подрядчика? Сделать это очень просто. Достаточно запросить у подрядчика или сделать самостоятельно отчет о динамике движения сайта в поисковой выдаче, с помощью программных продуктов и Online-сервисов для определения позиций сайта. Важно при этом проверить не конкретный запрос (группу запросов), а общие для всего сайта показатели.
Виды работ по поисковому продвижению
Продвижение в поиске предполагает проведение комплекса работ, без которых невозможна качественное функционирование веб-ресурса. Примерный алгоритм работы с продвигаемым Интернет-ресурсом.
- Технический аудит сайта. Оценка текущего состояния сайта, количественных и качественных показателей позволит определить время и объем затрат на продвижение.
- Анализ ниши, конкурирующих сайтов, продаваемых товаров и услуг позволит оценить общее состояния проекта и выстроить стратегию продвижения.
- Сбор и кластеризация семантики сайта. Грамотное составление и распределение поисковых запросов по страницам сайта напрямую влияет на успех в продвижении. Ключевые слова должны охватывать весь поисковый спрос в тематике продвигаемого сайта. На данном этапе формируется оптимальная структура сайта.
- Написание и размещение SEO-текстов, на основе семантического ядра.
- Внутренняя оптимизация сайта. Включает техническую оптимизацию, оптимизацию контента и коммерческий аудит.
- Внутренняя перелинковка. Правильное распределение веса страниц внутри веб-ресурса напрямую влияет на ранжирование сайта.
- Внешняя оптимизация заключается в формировании внешней ссылочной массы размещением информации на тематических ресурсах, блогах и форумах.
- Анализ поведенческих факторов, улучшение юзабилити и повышение конверсии.
- Коммерческий аудит с проработкой целевых страниц, оптимизацией процессов заказа и покупки на сайте.
- Предоставление отчетов о проделанной работе.
Из-за постоянного обновления поисковых алгоритмов SЕО-специалисты регулярно вносят изменения в стратегию продвижения, дорабатывают семантику и структуру сайта, вносят изменения в тексты, организуют внутреннюю перелинковку, обновляют мета-теги, добавляют внешние ссылки.
Органическое трафик имеет огромный коммерческий потенциал. Грамотный подбор стратегии продвижения позволяет рассчитывать на постоянное увеличение целевых пользователей. Но следует учитывать, что СЕО не принесет мгновенных результатов. Значимые результаты можно получить через 4-6 месяцев после начала работ. Остались вопросы по поисковому продвижению? Обратитесь к специалистам команды «VisualTeam».
Продолжая использовать данный сайт, Вы соглашаетесь с условиями пользовательского соглашения, выражаете своё согласие на использование cookie-файлов и на обработку своих персональных данных в соответствии с политикой в отношении обработки персональных данных на сайте visualteam.ru
Как собрать ключевые слова для продвижения сайта — гайд по SEO-оптимизации в 2022 году
Собрать семантическое ядро сайта не так-то просто. На одно эффективное слово приходится сотня бесполезных, и если вы будете работать не с теми ключевиками, то есть вероятность, что ваш контент так и не сможет попасть на первую страницу Гугла. Чтобы избежать таких ошибок, читайте наше руководство для сеошников о том, как правильно подбирать ключевые слова, чтобы вывести ваш сайт в топ выдачи.
Содержание
- Как подбирать ключевые слова для сайта
- Шаг 1: Как определить базовые ключевые слова
- Шаг 2: Как выбрать инструменты для поиска ключевых слов
- Google Ads Keyword Planner
- Google Search Console
- Google Trends
- Yandex. Wordstat
- Bing Webmaster
- Rank Tracker
- Шаг 3: Как расширить семантическое ядро сайта
- Ключи конкурентов
- Автозаполнение запросов
- Сопутствующие вопросы
- TF-IDF
- Комбинации слов
- Шаг 4: Отфильтруйте данные
- Определите параметры фильтрации
- Длина ключевых слов
- Частотность ключевого слова
- Сложность ключевых слов
- Нерелевантные слова
- Примените выбранные фильтры
- Определите параметры фильтрации
- Шаг 5: Приоритезируйте ваши ключевые слова
- Семантическое сегментирование
- Сегментирование по цели поиска
- Шаг 7. Распределите ключевые слова по целевым страницам
- Определите сложность ключевых слов
- Закрепите ключевые слова за целевыми страницами
- Зачем составлять семантическое ядро сайта
В данном SEO-гайде мы разбираем пошаговый поиск и выбор тех ключевых слов, которые имеют наибольший потенциал для ранжирования страниц в поисковиках. Следуя этим инструкциям, вы получите список работающих ключевых слов и понимание, какой органический трафик они могут привлечь к вашим целевым страницам.
Как подбирать ключевые слова для сайта
Составление семантического ядра является основой любой SEO-стратегии. Оптимизация страниц может занять разное количество времени и усилий в зависимости от:
- авторитетности вашего сайта
- качества контента
- и конкуренции в отрасли.
Не забывайте о вашей целевой аудитории: сайт должен приносить пользу людям и соответствовать их поисковым целям.
Процесс составления семантического ядра фактически состоит из трех этапов:
- Придумать как можно больше потенциальных ключей.
- Отфильтровать список, избавляясь от малозначительных, странных или слишком сложных фраз.
- Отсортировать оставшиеся слова по приоритетности и решить, какие ключевики будут внедряться в контент в первую очередь.
Для простоты мы разбили каждый этап на последовательные шаги, но общий подход выглядит так — сгенерировать ключевые слова, отфильтровать лучшие из них и сгруппировать ключи соответственно страницам и их задачам.
Шаг 1: Как определить базовые ключевые слова
Базовые ключевые слова — это простейшие термины, которые описывают ваш бизнес наиболее широко. По идее, ваш контент уже включает в себя ваши основные ключи. Обычно это название фирмы, основной продукт, услуги и т.д. Эти слова — основа для наработки новых ключевиков.
Как найти базовые ключевые слова? Запишите несколько слов и фраз, которые лучше всего описывают ваши продукты и сервисы. Разбейте ваш бизнес на темы и выберите пару значимых ключевых слов для каждой из них. В результате вы получите список, который станет основой для дальнейшего исследования.
Также можно пройтись по навигации вашего сайта и поискать ключи в каталоге:
Каталог онлайн-магазина может подсказать главные ключевые слова по теме
Выше приведен пример каталога из магазина товаров для активного отдыха. Практически каждая позиция этого каталога — готовая идея для основных ключей. Совместите несколько слов, и вы получите такие ключевые слова, как мужская одежда, женская обувь, куртки для сноуборда, и т. д. Покопайтесь в подкатегориях, настройте всевозможные фильтры, посмотрите описания компаний-производителей — и вы получите еще пару десятков, а то и сотен ключей.
Шаг 2: Как выбрать инструменты для поиска ключевых слов
Имея базовые ключевые слова, вы можете найти сотни других вариантов при помощи поисковых сервисов и инструментов. Рынок инструментов для SEO-оптимизации имеет множество решений под разные бюджеты, от простых и бесплатных до сложных и дорогих. В нашей статье мы рассмотрим самые популярные, пять из которых встроены непосредственно в сами поисковики. Шестой инструмент является примером SEO-программы с набором функций и инструментов, объединяющий более 9 методов поиска ключевых слов.
Google Ads Keyword Planner
Планировщик ключевых слов Гугла (Google Keyword Planner, он же бывший Google Adwords) — первое, что приходит на ум, когда мы говорим о поиске ключевых слов. Работает он так: вы набираете несколько главных ключевиков, а программа генерирует огромный список похожих слов и фраз. Результаты можно оценить с помощью таких метрик, как частотность запроса, конкуренция и диапазон цены клика. Сразу же можно немного почистить список, удаляя ключи 18+, брендовые и негативные ключи. В итоге у вас будет список ключевых слов, которые очень похожи на ваши основные, и это уже неплохо для начала.
Подбор ключевых слов в Планировщике Google Ads
Не забывайте, что Google Ads направлен в первую очередь на прогнозирование ключевых слов для рекламы, поэтому полученные с его помощью результаты весьма относительны, но не бесполезны. Например, если количество запросов по слову А составляет 3500 в месяц, а по слову B — 1500 за то же время, то мы не можем быть уверены в точности этих цифр, но можем предположить, что первый ключевик привлечет больше трафика, чем второй.
Планировщик ключевых слов Google Ads хорош тем, что берет статистику прямо из первоисточника. Тем не менее, он выдает лишь базовую информацию, и для полноценного исследования вам понадобятся дополнительные инструменты.
Google Search Console
В отличие от планировщика ключевых слов, консоль администратора Гугла покажет вам только те запросы, по которым ваши страницы уже присутствуют в выдаче Google. Суть в том, чтобы найти перспективные, но недорабатывающие ключи, и вывести их на первую страницу выдачи. Это займет куда меньше усилий, чем продвигать страницы по абсолютно новым ключевикам — ведь ваши страницы уже неплохо ранжируются по этим ключам.
Главные ключевые слова, по которым ранжируется сайт, можно найти в панели вебмастера
В аккаунте Консоли откройте отчет об эффективности (Search Performance > Search Results) и выберите Показы (Impressions). Консоль покажет усредненные позиции ваших ключевиков, а также скажет, сколько просмотров и кликов вам приносит каждый из них. Вы можете узнать, что ищет именно ваша аудитория, упорядочив результаты по страницам, странам и типам устройств. Инструмент позволяет отфильтровать до 1000 ключевых слов. Но здесь совет не распыляться на все подряд, а сосредоточиться на потенциально сильных ключевых словах — изучите 20 первых позиций.
Google Trends
Для понимания того, какой объем трафика можно считать достаточным, надо изучить конкурентную среду. Например, в крупных нишах вроде туризма количество запросов по ключевым словам может доходить до сотен тысяч в месяц, в то время как в более специфических областях, например продаже парашютного снаряжения, цифры будут куда менее впечатляющими.
Тренды Гугла (Google Trends) показывают результаты по той или иной теме за определенный период времени, что позволяет вам увидеть сезонную зависимость запросов. Вы можете узнать, что в тренде именно сейчас, просмотреть интересы по регионам и различным каналам поиска, изучить и сравнить поисковые запросы и проанализировать смежные темы, чтобы понять, что именно формирует определенный тренд.
Дэшборд Трендов Google показывает популярные темы, разбитые по странам, периодам и типам поиска
Yandex.Wordstat
Основной конкурент Гугла на российском рынке, Яндекс также предлагает инструмент для определения популярных поисковых запросов. Сервис показывает объем поисковых запросов по типу устройства (компьютер либо мобильный носитель), по географии, а также исторические изменения популярности.
В левой колонке сервис предлагает низкочастотные запросы, в которые вложено базовое ключевое слово. В правой колонке Вордстат выдает похожие поисковые фразы. Несколько поисковых операторов (такие как плюс, минус, восклицательный знак, кавычки и квадратные скобки) позволяют уточнить поисковый запрос, порядок слов в ключе и т.д. Сервис поможет проанализировать долгосрочные тренды и выбрать несколько удобных вариантов для продвижения.
Инструмент поиска ключевых слов Yandex. Wordstat
Bing Webmaster
И снова — не Гуглом единым. Советуем обратить внимание на Вебмастер Бинга (Bing Webmaster), который встроен в поисковый движок Майкрософта и обладает собственными полезными функциями для анализа объемов поиска.
Подбор ключевых слов в поисковике Bing
Анализ результатов поиска Bing схож с тем, что предлагает Google. Например, вы можете проверить эффективность ключевиков в выдаче за определенный период времени или пока меняется средняя позиция страницы. Как и планировщик Гугла, Бинг предлагает новые идеи, похожие на ваши основные ключевики. Однако Google Keyword Planner отображает платные результаты поиска, а Bing — органические.
Rank Tracker
Rank Tracker — это мощная программа для SEO-оптимизации, которая включает в себя девять разных методов исследования ключевиков для SEO и объединяет более двадцати инструментов для анализа ключевых слов. Rank Tracker показывает множество количественных и качественных метрик, предлагает всевозможную сортировку и фильтрацию ключей, а также дает возможность отслеживать позиции выдачи в реальном времени. К тому же, Rank Tracker интегрируется с Google Search Console и Keyword Planner для получения более точных данных.
Подбор ключевых слов в Rank Tracker
Для генерирования новых ключевиков в Rank Tracker вы можете использовать как ваши собственные базовые запросы, так и сайты конкурентов — тут кому как удобно. Вне зависимости от выбранного метода каждый новый ключ сопровождается рядом SEO-характеристик, включая:
- частотность запроса
- уровень конкуренции
- сложность ключевого слова
- стоимость клика
- предполагаемый трафик
Это помогает точнее оценить эффективность ключевого слова и его потенциал для вашего сайта. Рабочую область приложения можно настроить как угодно и под любые нужды, добавляя или удаляя те или иные метрики.
Шаг 3: Как расширить семантическое ядро сайта
Теперь, когда у вас есть главные ключевые слова, можно приступать к расширению списка из новых ключевиков. Разбираемся, как это делать с помощью Rank Tracker.
Ключи конкурентов
Пересечение слов (Keyword Gap) — отличный метод, позволяющий определить, в каких областях конкуренты обходят ваш сайт. Добавьте домен конкурента (а лучше несколько), выберите параметр, по которому сравнить ваши позиции, и программа покажет, по каким ключевым словам ваши конкуренты показывают лучший результат.
Поиск недостающих ключевых слов через анализ конкурентов
Если сайт сравнительно новый, и вы пока не знаете, кто же ваши конкуренты в поисковой выдаче, используйте специальный модуль Анализ Конкурентов (Competitor Research). С его помощью вы сможете найти конкурентов как по домену, так и по интересующим вас ключам. Обратите внимание на степень пересечения ключей — чем она выше, тем более релевантными для вас будут уникальные ключевые слова этого конкурента.
Rank Tracker находит конкурентов по домену либо по ключевому слову и строит график пересечения
Автозаполнение запросов
Инструмент Autocomplete подскажет, как именно Google, Amazon, YouTube и еще много кто автоматически заполняют запросы, в которых упоминаются ваши ключи. Добавьте свои основные ключи в модуль Анализ Слов > Автозаполнение, и программа сгенерирует вам новые фразы с учетом того, как люди формулируют свои запросы. В дополнение к Autocomplete можно использовать функцию Похожие Запросы (Related Search) — посмотрите, что еще ищут вместе с вашими ключами, и попробуйте применить это в контенте вашего сайта.
Сопутствующие вопросы
Этот инструмент выводит относящиеся к вашим ключам вопросы из секции вопросов в Google. Особенность этих вопросов состоит в том, что они тесно связаны с голосовым поиском. Ключевики, сгенерированные таким образом, представляют собой длинные разговорные фразы, которые хорошо подходят для страниц типа FAQ и разных пошаговых инструкций, а также для оптимизации страниц под голосовой поиск.
TF-IDF
TF-IDF (от англ. TF — term frequency, IDF — inverse document frequency) — статистический метод, позволяющий определить, в какой степени то или иное слово важно для документа. Важность увеличивается пропорционально количеству упоминаний слова. Инструмент анализирует 10 ваших основных конкурентов и собирает их общие ключевые слова. Эта функция поможет найти дополнительный контент и оптимизировать вашу страницу с использованием синонимов и взаимосвязанных терминов.
Комбинации слов
Функция комбинаций слов (Word Combinations) по сути представляет собой генератор случайных ключевиков. Введите несколько слов, и программа выдаст все возможные комбинации. Смысл в том, что вы, возможно, формируете запросы не совсем так, как это делают ваши посетители сайта. С помощью этого инструмента вы можете найти комбинации ключевых фраз, которые улучшат шансы на ранжирование в поисковой выдаче.
Шаг 4: Отфильтруйте данные
В итоге, тысячи потенциальных ключевых слов окажутся у вас в Черновике (Keyword Sandbox) — это место, где автоматически сохраняются все результаты вашего поиска. Не все из них вам подойдут, так что следующая задача — сократить список ключевых слов для более удобной и продуктивной работы дальше.
Анализ стоимости трафика по ключевым словам и темам в Rank Tracker
Определите параметры фильтрации
Существует множество разных способов сократить список ключевых слов до приемлемого размера, и выбор во многом зависит от ваших настроек:
Длина ключевых слов
Чем короче ключевая фраза и чем шире термин, тем больше трафика оно принесет, однако этот трафик будет давать мало конверсий. И наоборот, чем длиннее ключевое слово, тем меньше трафика оно принесет, и тем выше будет коэффициент конверсии. В нашем недавнем иследовании по низкочастотным запросам мы проанализировали 24 миллиона ключевых слов из нашей базы и увидели, что наибольшее количество запросов состоит из 2 — 6 слов, однако объем поиска значительно снижается для ключей из 3 и более слов.
Частотность ключевого слова
Этот параметр определяет спрос на ключевое слово в поисковых системах. Ключевые слова с очень маленьким объемом поиска не привлекают существенного трафика, и вы можете спокойно удалить их из вашего списка. Ключевые слова с большим объемом поиска, вероятно, привлекут больше трафика, но и конкуренция, в связи с этим, будет выше.
Общепринятый совет для новых сайтов: используйте низкочастотные ключи (3 и более слов), чтобы подняться в поисковой выдаче по основным ключам, а затем, по мере роста позиций сайта, используйте как низкочастотные, так и высокочастотные ключевики.
Сложность ключевых слов
Эта метрика показывает, насколько сильными являются уже существующие топовые страницы по определенному ключу, и насколько сложно вам будет обойти конкурентов. Rank Tracker рассчитывает уровень сложности для каждой из первых 10 страниц по ключевому слову, а затем вычисляет среднее значение сложности для 10 конкурентов — это и есть значение параметра Keyword Difficulty. Чем оно выше, тем больше усилий вам придется приложить при оптимизации под соответствующий ключ.
Нерелевантные слова
Из названия понятно, что от таких слов надо избавляться — они не принесут вам никакой пользы. Исключите из списка нерелевантные географические регионы, бренды, а также любые другие слова, которые указывают на низкое качество контента. Кстати, Rank Tracker позволяет исключить ненужные ключи перед началом анализа, на случай, если вы уже знаете, какие точно слова не хотите использовать в вашем семантическом ядре.
Примените выбранные фильтры
Теперь закрепим на практике наши знания о фильтрации ключевиков в Rank Tracker:
1. В модуле Анализ Слов (Keyword Research) нажмите на иконку воронки в правом верхнем углу рабочей области. На экране появится окно с вариантами фильтрации.
2. Нажмите Добавить фильтр (Add filter) и выберите Кол-во запросов (# of Searches) > more than (более чем) > например, 100 (количество запросов в месяц по ключевой фразе).
3. Нажмите AND и добавьте еще один фильтр Сложность ключевого слова (Keyword Difficulty) > less than > 40 (можно произвольно увеличивать или уменьшать это значение для более «сильных» или «слабых» сайтов).
4. Добавьте ещё один фильтр по длине слова, выберите Длина (Length) > more than 2 (ключевики из одного-двух слов считаются бесполезными).
5. Таким образом добавьте любое количество нужных вам фильтров.
6. Исключите нерелевантные ключи: нажмите AND и выберите Ключевое слово (Keyword) > Does not contain (Не содержит) > любая фраза или слово, которые хотите исключить из списка.
7. Затем нажмите OK. Ваша рабочая область обновится, и в ней будут отображаться только фразы длиной более двух слов, с объемом поиска более 100 операций, сложностью менее 70 и не содержащие нерелевантных слов.
8. Нажмите Ctrl + A для выбора всех отфильтрованных ключевых слов. Щелкните по выборке правой кнопкой мыши, нажмите Добавить метки к выделенным записям (Add tags to selected records) и присвойте им соответствующий тег для удобной работы с ними дальше (например, «Большой объем поиска»).
Как видите, создание списка важных и эффективных ключей заняла всего пару минут. Выберите ключевики, которые станут семантическим ядром вашего сайта, и нажмите команду Перенести выбранные слова в модуль “Целевые слова” (Move to Target Keywords Module) для дальнейшей работы с ними.
Шаг 5: Приоритезируйте ваши ключевые слова
Хороший способ привести хаос в порядок — сегментация. Разбейте ваш список ключевых слов на сегменты и определите их важность — так будет проще использовать их в вашей стратегии по оптимизации сайта. Универсальными критериями для SEO-сегментирования являются семантика, цель поиска, объем поиска и конкуренция.
Семантическое сегментирование
Rank Tracker автоматически группирует ваши ключевики по смысловым группам (тематическим папкам). Для большего удобства вы можете переименовывать их, создавать новые, объединять или перегруппировать по необходимости, а также перемещать группы в модуль целевых слов.
В примере выше Rank Tracker поместил ключевые фразы, связанные с запросом “мини деревья”, в одну тематическую папку. В верхней части мы видим общее количество поисковых запросов, уровень конкуренции и ожидаемое количество посещений для всей группы. Так, если вы добавите на сайт страницу по данной теме, и эта страница поднимется в поисковой выдаче на первую позицию, то она будет приносить на сайт 30 дополнительных посещений в месяц.
А если у вас уже есть страница на такую тему, то можно закрепить всю эту группу ключевиков за данной страницей, оптимизировать и наблюдать за ее позициями и трафиком. Такая группировка значительно экономит время и упрощает работу с посадочными страницами и ключевыми словами.
Сегментирование по цели поиска
Эффективный сайт не просто виден поисковикам. Эффективный сайт — это такой сайт, контент которого совпадает с поисковой целью посетителя. Зачем кто-то пришел на сайт? Что он хочет там найти? В этом смысле можно выделить три основных группы пользовательских целей:
- Информационные (узнать о каком-то явлении)
- Исследовательские (найти больше деталей, инструкции)
- Транзакционные (купить какой-то товар).
Например, пользователь может загуглить “ветровка”, “водонепроницаемая ветровка” или “детская ветровка купить онлайн”. Все эти фразы связаны с общим термином “ветровка”, однако в каждом случае поисковые намерения пользователя очевидно разные. Поэтому использовать все вышеупомянутые ключевики на одной странице нецелесообразно.
Помимо этого, некоторые специалисты выделяют также навигационные запросы (когда пользователь хочет перейти на конкретную страницу, например “логин” или “корзина”) и брендовые поисковые запросы (включающие в себя название бренда).
Информационные, исследовательские и транзакционные ключевые слова можно различать по используемым языковым приемам, поскольку при составлении запросов люди пользуются устойчивыми языковыми шаблонами. Все, что вам нужно — научиться видеть эти шаблоны в ваших данных.
В таблице ниже приведены лексические индикаторы, типичные для каждого вида запросов. Конечно, определять такие индикаторы нужно по ситуации, поскольку в каждой теме может быть специфический жаргон, выражения и формулировки.
Информационные | Исследовательские | Транзакционные |
---|---|---|
что такое как зачем когда почему | сравнить сколько надо лучшие топ-10 для влюбленных варианты обзор | купить онлайн распродажа купоны кафе [город] где взять отзывы |
Типы запросов по цели
Вернемся в Rank Tracker и обновим список ключевых слов в модуле Семантическое Ядро (Keyword Map).
1. Щелкните по иконке воронки в правом верхнем углу. На экране появится диалоговое окно для настройки дополнительной фильтрации.
2. Выберите Добавить фильтр > Ключевое слово > contains any of (содержит любое из).
3. Списком через Enter добавьте слова, которые должны содержаться в ключевой фразе.
Настройка фильтра по семантике в Rank Tracker
4. Программа отобразит список фраз, которые содержат любые из указанных вами слов-маркеров. Выберите все ключи с помощью Ctrl + A и щелкните по ним правой кнопкой мыши, чтобы присвоить им удобный текстовый и/или цветовой тег.
5. Повторите аналогичные действия для идентификации информационных и исследовательских ключей.
SEO-анализ и маркировка слов в Rank Tracker
Описанный выше процесс подходит для буквально всех областей, но критерии могут отличаться. Например, вы можете сегментировать ваши ключевые слова как:
- Брендовые и небрендовые слова
- «Легкие мишени» (быстрые результаты)
- Ключевики, обеспечивающие максимальную конверсию
- Геолокационные ключевики.
Шаг 7. Распределите ключевые слова по целевым страницам
Создание семантического ядра включает в себя соотнесение найденных ключевых фраз с конкретными страницами вашего сайта. Этот процесс полезен не только для планирования.
Возможно, вы слышали о каннибализации ключевых слов. Проще говоря, это когда несколько страниц вашего сайта таргетированы на один и тот же поисковый запрос. В итоге, эти страницы конкурируют друг с другом в поисковой выдаче, и вероятность того, что одна из них окажется на первых позициях, существенно падает.
Составление семантического ядра поможет вам избежать каннибализации ключевых слов и обеспечит равномерное и обоснованное использование всех ключевиков на подходящих страницах. Также составление ядра поможет обнаружить уже существующие проблемы на конкретных страницах.
Определите сложность ключевых слов
Важным параметром для составления семантического ядра является сложность ключевых фраз, поскольку именно она определяет, насколько высоко каждая из ваших страниц будет находится в выдаче. Хитрость здесь заключается в том, чтобы научиться использовать индикатор сложности в сочетании с SEO-авторитетом страницы — так вы сможете работать с более сложными ключами с помощью более авторитетных страниц.
Как проверить сложность ключевого слова
В модуле Семантическое Ядро (Keyword Map) выберите ключевое слово и перейдите на вкладку сложности. В верхней панели рабочего поля, нажмите кнопку Обновить сложность ключевого слова. Вы увидите страницу вашего сайта, рейтинг которой формируется по выбранному ключевику в определенном поисковике, а ниже — список ваших 10 главных конкурентов.
Слова с баллом сложности ниже 33 с большей вероятности окажутся полезными для поиска. Те ключи, у которых этот показатель равен 34-66, тоже заслуживают места в вашем списке, но и работать с ними будет чуть сложнее. А вот ключевики со значением сложности выше 66 можно смело вычеркивать — польза от них стремится к нулю, а ресурсов они отберут непозволительно много.
Закрепите ключевые слова за целевыми страницами
Теперь давайте рассмотрим, как привязать ключевые слова к страницам и, собственно, финализировать составление семантического ядра для вашего сайта.
1. В модуле Семантическое Ядро (Keyword Map) выберите ключевые слова или тематические папки, на которые вы будете ориентироваться в рамках одной страницы.
2. Щелкните правой кнопкой мыши по выбранному варианту. В контекстном меню выберите пункт Закрепить выделенные ключевые слова за целевой страницей (Assign Selected Keywords to Landing Page).
Правым кликом мыши, вызовите команду Закрепить ключевые слова за целевой страницей
3. В появившемся окне введите URL страницы. Вы можете автоматически назначить ранжирующуюся страницу из нужного вам поисковика. Если вариантов несколько, выберите страницу с более активным трафиком и большим авторитетом.
Чтобы закрепить целевую страницу, введите ее адрес или выберите уже ранжирующуюся страницу из поисковика
4. Повторите описанные шаги для каждой целевой страницы.
После завершения нажмите вкладку Целевые страницы (Landing Pages) в верхней части списка ваших тематических корзин. Здесь вы найдете семантическое ядро вашего сайта — список страниц соотнесенный с ключевыми терминами, которые вы будете использовать при оптимизации на этих страницах.
Вкладка Целевые страницы со всеми ключевыми словами, за которыми она закреплена
Транзакционные ключевые фразы будут полезны на страницах, на которых пользователи могут выполнить какое-либо значимое действие (купить, подписаться и т.д.). И не забывайте, что добавлять на любую страницу надо только те ключи, которые подходят туда по смыслу.
Зачем составлять семантическое ядро сайта
Подбор ключевых слов — увлекательное и интересное занятие, которое может стать не просто частью стратегии по оптимизации, но и источником вдохновения для вашего бизнеса. С хорошим списком ключевых слов, вы сможете поднять сайт в топ выдачи и найти целевую аудиторию, и в конечном итоге, сделать ваш сайт авторитетным и эффективным инструментом для маркетинга.
Скачать Rank Tracker
Какие бывают виды и типы поисковых запросов
Разбираемся с ключевыми словами
Что такое поисковой запрос понятно и без описание, но каких он бывает видов? Вопрос обширней чем вам может показаться. Существует более десятка типов поисковых запросов в интернете и одна и та же фраза может принадлежать к нескольким группам. Условно поисковые запросы можно поделить на виды и типы, среди которых будет несколько групп. Одни виды запросов хорошо подойдут для продвижения коммерческих сайтов, но совсем не подойдут для продвижения информационных, и наоборот..
Давайте разберем все существующие группы поисковых запросов.
Время на чтение 9 минут
324
0
Содержание
Деление поисковых запросов на группыРазделение запросов по конкуренцииРазделение запросов по географииРазделение запросов по частотностиРаспределение запросов по сезонностиРазделение поисковых запросов по типамЗаключение
Деление поисковых запросов на группы
Условно все запросы маркетологи делят на 20 групп. Вот они.
Разделение запросов по конкуренции:
- Низкоконкурентные
- Среднеконкурентные
- Высококонкурентные
Разделение запросов по географии:
- Геонезависимые
- Геозависимые
Разделение запросов по частотности:
- Нулевые запросы
- Низкочастотные запросы
- Среднечастотные запросы
- Высокочастотные запросы
- Сверхчастотные запросы
Разделение запросов по сезонности:
- Не сезонные
- Сезонные
Типы поисковых запросов:
- Витальные запросы
- Информационные запросы
- Транзакционные запросы
- Навигационные запросы
- Мультимедийные запросы
- Спектральные запросы
- Общие запросы
Вот все группы на которые можно поделить все существующие ключевые фразы. Теперь давайте каждую группу ключей разберем подробно.
Разделение запросов по конкуренции
Делить запросы по конкуренции начали еще тогда, когда в интернете появился первый миллион сайтов. Если в медицинской нише сайтов много, а трафика мало, следовательно медицинские запросы конкурентнее, чем те, где трафика много, а сайтов мало. Это конечно общее описание.
Низкоконкурентные запросы
Низкоконкурентные (НК) запросы — ключевые фразы, по которым проще всего продвигаться. Хорошо подходят для продвижения молодых и корпоративных сайтов.
Обычно такой запрос состоит из 3-4 слов с уточнениями запроса.
Пример: Остекление балкона с внутренней отделкой в Москве
Как видите, пользователь точно знает что ему нужно и ищет это. Преимущество запроса — именно под него конкуренты редко делают страницы, так как с него выйдет мало трафика.
Искать такие запросы не сложно. Достаточно лишь хорошо знать свою нишу либо воспользоваться софтом типа KeyCollector или сервисами наподобие Serpstat.
Низкоконкурентные запросыВ выдаче по таким запросам обычно находятся форумы, небольшие нишевые сайты со старым контентом или агрегаторы.
Среднеконкурентные запросы
Более сложный для продвижения вид ключевых фраз. Состоит обычно из 2-3 слов без уточнений. В выдаче по таким запросам можно встретить блоги, информационные и корпоративные сайты. Продвигаться по таким запросам значительно сложнее, чем по НЧ, но и трафика можно получить в разы больше.
Обычно, если смотреть все запросы, по которым пользователи приходят на сайте — таких запросов будет большинство.
Пример: Остекление балкона в Москве недорого
Конкуренции будет явно меньше, чем без уточнения “недорого”, ибо многие не хотят писать подобный запрос в теге title, хоть и спрос есть.
Среднеконкурентные запросыДля начала продвижения по этому типу запросов вам уже нужно анализировать выдачу и контент сайтов-конкурентов. Просто как с НЧ не выйдет. Посмотрите на размер их текста, количество изображений, наличие видео на странице. В общем, нужен полноценный анализ выдачи и контента перед созданием контента под этот запрос.
Высококонкурентные запросы
Обычно, они же самые сверхчастотные или просто высокочастотные запросы. В поиске по таким ключам в основном попадаются сайты крупных брендов или просто очень трастовые и старые проекты. Продвигаться под такие ключевые фразы новому сайту нереально, даже не стоит пытаться.
Состоять такой запрос может как всего из одного, так и более слов.
Пример: Купить телевизор
Высококонкурентные запросыПредставляете да, сколько сайтов борется за то, чтобы попасть в топ выдачи по такому запросу. Вот тут-то и разыгрывается самая настоящая война за позиции. Теперь вам будет мало просто проанализировать контент конкурентов. Анализировать надо не просто сайт, а даже бизнес стоящий за ним. Все настолько серьезно. Очень много метрик играют свою роль при ранжировании по таким запросам, включая оффлайн факторы ранжирования.
Разделение запросов по географии
Все запросы можно также поделить еще на две категории: геонезависимые и геозависимые. Как понятно из названия групп, ключевые фразы привязаны к местоположению пользователя или к конкретному региону, если он его указал.
Геозависимые запросы
В эту группу попадают ключевые фразы, выдача по которым строится особенным образом. Если вы ищите что-то, что находится рядом с вами — запрос геозависимый.
Пример: Парикмахерская в Кемерово
Геозависимый запросВ выдаче вы увидите только сайты компаний находящихся в городе Кемерово. Сами вы при этом можете находиться в Москве или Санкт-Петербурге.
Такой же эффект можно достичь загуглив “парикмахерские” находясь в том самом городе.
Продвигаться под этот зип запросов не сложно. Достаточно лишь зарегистрировать сайт в Яндекс.Справочнике, указать регион сайта в вебмастере Яндекса, на странице контакты сайта нужно указать полный адрес организации, а в мета-тегах прописать город.
Запрос без уточнения регионаПример мета-тега Title: Мужская парикмахерская в Кемерово — мужские стрижки
Геонезависимые запросы
Сюда попадают все запросы, не относящиеся к предыдущей группе. Выдача по таким ключам одинакова независимо от того, с какого города вы делаете запрос. Для продвижения по этой группе в вебмастере Яндекса достаточно указать регион “Россия”. Дополнительно никаких работ проводить не нужно.
Разделение запросов по частотности
Группы запросов по частотности — это самые популярные группы среди маркетологов. Всего существует пять групп запросов в зависимости от уровня спроса:
- Нулевые запросы
- Низкочастотные запросы (НЧ)
- Среднечастотные запросы (СЧ)
- Высокочастотные запросы (ВЧ)
- Сверхчастотные запросы
Каждая из этих групп важна для продвижения. Новым сайтам рекомендуется начинать с НЧ запросов, а потом уже подключать СЧ и ВЧ. Но обо всем по порядку.
Нулевые запросы
Как можно понять из названия, сюда попадают все запросы имеющие нулевую частотность. На самом деле, нулевым считается запрос имеющий частотность до 10 запросов в месяц.
Нулевые запросыЭто число можно считать погрешностью и для продвижения такие ключевые фразы лучше не использовать.
Низкочастотные запросы
Низкочастотные или НЧ запросы считаются одной из самых легких групп для продвижения сайта и большинству молодых сайтов рекомендуется продвигаться именно по ней. В эту группу попадают все ключевые слова с частотностью до 500 запросов в месяц. Группа обычно состоит из нескольких слов, основной запросы + несколько уточнений. НЧ запрос зачастую является и низкоконкурентным за счет сниженного интереса от крупных сайтов и постоянного появления новых НЧ запросов.
Низкочастотные запросыДля продвижения по этой группе запросов иногда даже не нужно создавать отдельных страниц. Зачастую достаточно создать страницу под более частотные ключи, а большинство НЧ запросов учтутся в тексте, заголовках, активных элементов, подписях к картинкам.
Среднечастотные запросы
В эту группу попадают запросы с частотностью от 500 до 2000 запросов в месяц. Запрос обычно состоит из основной фразы + одно уточнение. Продвигаться по этой группе рекомендуют сайтам уже имеющим ссылочную массу и траст в глазах поисковых систем.
Среднечастотные запросыДля того, чтобы выйти в топ по подобным запросам нужно уже не только иметь ключевые слова в элементах описанных выше, но и работать над перелинковкой и ссылочным профилем.
Высокочастотные запросы
Быть в топе по ВЧ запросам мечта каждого интернет-маркетолога. Выйти по ним в первую десятку выдачи на самом деле не так уж и сложно, значительно труднее удержаться в ней. Для продвижения вам однозначно понадобится много внешний ссылок, постоянный анализ конкурентов и улучшение сайта. Поведенческие факторы прямо влияют на нахождение в топе по таким ключам. Точнее сказать, что тут влияют вообще все факторы ранжирования.
Высокочастотные запросыВ группу попадают ключи с частотностью от 2000 до 10000 запросов.
Сверхчастотные запросы
Сверхчастотные запросыСамая сложная группа для продвижения. Все запросы в этой группе также относятся к высококонкурентным. К группе относятся ключевые слова с частотностью от 10 000 запросов. В выдаче по этим ключевым словам находятся сайты известных брендов или просто очень старые и трастовые (хотя и они уже могут считаться брендом, за выслугу лет-то). Продвигаться по таким ключам лучше сайтам имеющим большой маркетинговый бюджет и возможности проводить оффлайн-мероприятия по улучшению позиций сайта (да-да, есть и такие).
Распределение запросов по сезонности
По сезонности в основном запросы делять в коммерческих нишах, хотя стоит отметить, что сезон есть абсолютно у всех ключевых слов. Даже фразу “Купить матрас” больше ищут летом, хотя для этого вроде как нет особых предпосылок.
Сезонные запросы делят на две группы:
- Не сезонные
- Сезонные
Самый распространенный вопрос, касаемой этой группы: когда начинать продвигаться в сезон или нет. Ответить можно пословицей “Готовь сани летом”.
Готовить контент и посадочные страницы имеющие сезонную частотность конечно лучше заранее. К началу сезона вы точно должны быть готовы.
Сезонные запросы
Не смотря на логичность группы, считаем что есть смысл разобрать её. Итак, сезонный запрос — это запрос, который становится значительно популярнее только в определенное время года. Очень распространена группа в нише товаров и услуг, ведь практически все они имеют свою сезонность. Продвигаться лучше начинать заранее, если сезон подходит к концу не стоит стараться запрыгнуть в поезд на ходу, он и так скоро остановится. Не успеваете — лучше дополнительно подготовьтесь и к следующему сезону точно будете готовы.
Узнать сезонный ли запрос можно с помощью Вордстата Яндекса в разделе “История запросов”. Будьте готовы к тому, что Яндекс заставит вас ввести дико бесячую капчу. Также сезонность можно проверить с помощью сервисов анализа ключевых слов, но они в основном платные.
Сезонный запросТакже вам нужно быть готовым к просадке трафика при смене сезона. И не факт, что в следующий сезон вы также займете топовые позиции. Или же наоборот, можете вполне выйти в топ. Тут не угадаешь.
Не сезонные запросы
Как ни странно, к этой группе относятся все ключевые слова, не попадающие в группу выше. Продвигать сайт по ним можно в любое время.
Разделение поисковых запросов по типам
Последний способ, по которому можно разделить запросы — это типы. Каждый запрос всегда относят к одному из следующих типов:
- Витальные или брендовые запросы
- Транзакционные запросы
- Информационные запросы
- Навигационные запросы
- Мультимедийные запросы
- Спектральные запросы
- Общие запросы
Каждая из этих групп важна для продвижения и играет свою роль. Разберем подробнее.
Витальные (брендовые) поисковые запросы
Самые простые запросы для продвижения. В таком запросе всегда присутствует название бренда или слово определяющее его однозначно. Банальный пример “Купить телевизор DNS”. В выдаче по такому запросу вы увидите ссылки только на брендовый сайт и его социальные сети. Редко, если сайт не очень хороший, могут быть ссылки на агрегаторы, справочники и сайты конкурентов.
Витальные поисковые запросыОбычно при продвижении корпоративных сайтов такие запросы не учитываются в отчетах, типа “какой смысл, запрос брендовый”. В этом конечно есть логика, но хороший интернет-маркетолог всегда работает и над брендом в том числе.
Для продвижения под витальные запросы не нужно проводить никаких особенных работ. Достаточно просто иметь бренд на главной странице, и можно в тайтлах других страниц, если название не слишком длинное. Также поможет регистрация сайта в Яндекс.Справочнике и Google My Business.
Информационные запросы
Самая обширная группа запросов. Сюда попадаю все ключи, используемые пользователями для поиска информации. По этим же запросам идет основной трафик почти на все виды сайтов. Даже в интернет-магазинах, есть статьи, новости, обзоры и инструкции.
Информационные запросыПродвигаться по таким запросам может быть сложно, конкуренция растет в зависимости от частотности.
Информационные запросы плохо подходят для продвижения если нужны именно конверсии. Однако нет запросов лучше для наращивания трафика.
Транзакционные запросы
Самая интересная группа запросов для всех предпринимателей и владельцев интернет-магазинов. В эту группу попадают запросы подразумевающие покупку или заказ услуг.
Эти же запросы можно считать самой сложной группой для продвижения. Конкуренция зависит от частотности и региона. Практически все транзакционные запросы региональные, кроме услуг, не привязанных к физическому адресу.
Транзакционные запросыПример запросов: “Купить футболку”, “укладка ламината в Москве” и им подобные.
При продвижении по транзакционным запросам особую роль играют коммерческие факторы ранжирования. Также на сайте нужно обязательно иметь микроразметку организации, фразы “купить” или “заказать” в мета-тегах и на странице.
Навигационные запросы
Навигационный запрос — это ключевая фраза с уточнением. Вводя её пользователь точно знает что он хочет и где это находится.
Простой пример: “Фильм Изгой отзывы кинопоиск”.
Навигационные запросыКлючевая фраза точно говорит о том, что пользователь хочет почитать отзывы о фильме именно на кинопоиске. Тут без вариантов и в топе выдачи будет именно этот сайт.
Для продвижения по таким запросам не нужно проводить никаких дополнительных работ, кроме общей оптимизации сайта.
Мультимедийные запросы
Это запросы с целью получить картинку или посмотреть видео. Если на вашей странице присутствует видео, а тайтл звучит как “поклеить обои своими руками — видео”, то вы уже собственно и оптимизировали страницу под мультимедийный запрос. Тоже самое касается и изображений.
Мультимедийные запросыБольше никаких особенных работ проделывать не нужно.
Спектральные запросы
Крайне интересная группа ключевых слов. Допустим пользователь ищет в Яндексе “Поклейка обоев”, что именно он имеет ввиду? Ему нужны услуги или информация о том, как самостоятельно клеить обои? Точного ответа нет, ведь пользователь никак не уточнил свой запрос. Таких запросов великое множество и поисковым машинам постоянно приходится отвечать на них.
Спектральные запросыОбычно в выдачу просто подмешиваются все виды сайтов, как коммерческие так и информационные.
Общие запросы
Очень похожи на спектральные, но более общие. Например запрос “Ножницы” — что пользователя интересует? Под этим запросом можно подразумевать не два, а с десяток различных намерений. К общей группе можно отнести в основном однословные запросы по которым совсем не понятно, какой именно сайт нужен пользователю.
Общие запросыПоисковые системы также выводят в выдаче все возможные варианты сайтов.
Заключение
На данный момент это все виды запросов, которые существуют. Выбирайте подходящую для вас группу и начинайте продвигаться по ней. Также важно учитывать эти запросы при создании семантического ядра и его кластеризации.
Запрос транзакционных данных | Stripe Documentation
Используйте данные в таблицах в схеме для создания отчетов об активности баланса вашей учетной записи. Таблицы в разделах Таблицы платежей представляют средства, которые проходят между вашими клиентами и вашей учетной записью Stripe, такие как сборы или возвраты. Раздел Transfer Tables содержит информацию о переводах баланса вашего счета Stripe на ваш банковский счет (выплатах).
Использовать balance_transactions
в качестве отправной точки для целей учета. В отличие от использования отдельных таблиц (таких как начислений
или возвратов
), он обеспечивает запись в стиле бухгалтерской книги для каждого типа транзакций, которые входят или выходят из баланса вашей учетной записи Stripe. Используйте проводки баланса для создания часто используемых отчетов и упрощения составления отчетов о финансовой деятельности. Некоторые распространенные типы балансовых транзакций включают:
-
сборы
-
возвраты
-
Трансферы
-
Выплаты
-
Корректировки
-
Application_fees
Каждая строка транзакции баланса представляет индивидуальный объект Balance_transaction, который не меняется после создания его. Например, создание начисления также создает соответствующую транзакцию сальдо типа начисление
. Возврат этого сбора создает отдельную транзакцию баланса типа возврат
, но не изменяет исходную транзакцию баланса. Точно так же получение выплаты на ваш банковский счет (представленное как перевод) создает балансовую транзакцию.
Следующий пример запроса использует эту таблицу для получения некоторой информации о пяти последних транзакциях баланса.
выбрать date_format(созданный, '%m-%d-%Y') как день, я бы, количество, валюта, исходный_идентификатор, тип из balance_transactions заказ по убыванию дня Предел 5
День | ID | Сумма | Валюта | Source_id | Тип | |||||
---|---|---|---|---|---|---|---|---|---|---|
txn_O0CVE0E1RQrBLEV | -1,000 | usd | re_APk6jbqXjFZKrDH | refund | ||||||
txn_wRwwWIF6rumoWkb | 1,000 | usd | ch_xQxmuDlnjyoAn7g | charge | ||||||
489-00:00″> 22.09.2022 | TXN_FN2QXZPYJ6BSW4N | 1000 | USD | CH_OZSJ4IQD8NDMNTC | 66999966 CH_OZSJ4IQD8NDC | 6666679 | CH_OZSJ4IQD8NDC | 66666669699999966999999999999999999999999999999999 | . | |
txn_TjCKpwfy82ps2vs | 1,000 | eur | ch_OBDy3qQtTybMh3O | charge | ||||||
txn_gT1qp5672kwXzxd | -1,000 | usd | re_qxxXwIjcISeldfB | возмещение |
Наиболее распространенные финансовые сводки можно рассчитать, объединив таблицу balance_transactions
с другими таблицами, содержащими соответствующую информацию. Некоторые из наших шаблонов запросов (например, ежедневный баланс и ежемесячная сводка и баланс) работают путем присоединения этой таблицы к другим.
Сведения о комиссии за транзакцию баланса
Таблица balance_transaction_fee_details
содержит информацию о комиссии за каждую отдельную транзакцию баланса. Присоединение этой таблицы к balance_transactions
способом, описанным ниже, позволяет вам возвращать информацию о комиссии для каждой балансовой транзакции.
Следующий запрос объединяет таблицы balance_transactions
и balance_transaction_fee_details
. Каждая возвращаемая позиция транзакции баланса включает сумму, комиссию, тип применяемой комиссии и описание комиссии.
выбрать date_format(date_trunc('день', balance_transactions.created), '%m-%d-%Y') как день, balance_transactions.id, баланс_транзакций.сумма, balance_transactions.fee, balance_transaction_fee_details.type из balance_transactions внутреннее соединение balance_transaction_fee_details на balance_transaction_fee_details.balance_transaction_id=balance_transactions. id заказ по убыванию дня лимит 5
день | id | amount | fee | type |
---|---|---|---|---|
txn_3yLRRbfpY817p4i | 1,000 | 59 | stripe_fee | |
txn_OvT9tPLFBJnZwrx | 1,000 | 59 | stripe_fee | |
txn_qJ031cxlXYrWxwb | 1,000 | 59 | stripe_fee | |
txn_vdhBxKxMTNxrRiQ | 1,000 | 59 | stripe_fee | |
txn_yboM11Po5yVS6pF | 1,000 | 59 | stripe_fee |
Начисления
Таблица начислений
содержит данные об объектах начислений. Используйте эту таблицу для запросов, в которых основное внимание уделяется информации о платежах, а не в целях учета или согласования. Он также дополняет бухгалтерские отчеты дополнительными данными о клиентах. Например, запрос шаблона разбивки платежной карты использует заряжает таблицу
, чтобы сообщить о различных типах карт, которые использовали ваши клиенты.
Вы можете объединить таблицу начислений
с рядом других, чтобы получить дополнительную информацию по вашим запросам.
В следующем примере таблица начислений
используется для создания отчета о неудачных списаниях с возвратом марки карты, кода сбоя и сообщения.
выбрать date_format(date_trunc('день', создано), '%m-%d-%Y') как день, я бы, карта_бренд, код_ошибки, сообщение_о_отказе от обвинений где статус = 'не удалось' заказ по убыванию дня предел 5
day | id | card_brand | failure_code | failure_message |
---|---|---|---|---|
489-00:00″> 9/22/2022 | ch_3i23MsVSpbeyhMb | Visa | card_declined | Your card was declined. |
ch_lNgubtzbye4ITS9 | MasterCard | card_declined | Ваша карта не поддерживает этот тип покупки. | |
ch_VuHzG2jBxbuOKQf | Visa | card_declined | На вашей карте недостаточно средств. | |
ch_XCWQjzsSkAdRpsV | Visa | card_declined | Ваша карта отклонена. | |
ch_6oZPjVnVO5zZ1Sq | MasterCard | card_declined | Ваша карта отклонена. |
Customers
Таблица customers
содержит данные об объектах Customer (данная таблица не входит в группу Payment Tables ). Используйте его, если вы создаете платежи с помощью клиентов (например, с сохраненной платежной информацией). Это также полезно, если вы используете подписки.
В следующем примере извлекается список неудачных списаний с идентификатором и адресом электронной почты для каждого клиента.
выбрать date_format(date_trunc('день', charge.created), '%m-%d-%Y') как день, клиенты.идентификатор, клиенты.электронная почта, обвинения.id от обвинений внутренние клиенты на customers.id=charges.customer_id где charge.status = 'сбой' заказ по убыванию дня предел 5
Возвраты
Платежи и возвраты являются отдельными объектами в рамках API. Возврат платежа создает возврат. Эти данные доступны в таблице возвратов
и предоставляют подробную информацию о завершенных возвратах. Как и в случае с отчетами о расходах, рекомендуется начинать с информации об операциях баланса. При необходимости вы можете затем собрать дополнительные сведения, используя таблицу возвратов
.
Вы можете присоединиться к возвратам
в таблицу balance_transactions
и заряжает таблицы
для дальнейшего изучения данных о возмещении.
В следующем примере таблицы balance_transactions
и возмещений
объединяются вместе с помощью столбцов returns.balance_transaction_id
и balance_transactions.id
. Каждая возвращаемая позиция транзакции баланса представляет собой возмещение, отображая идентификатор и сумму платежа. Возвращаются только балансовые транзакции, созданные после определенной даты.
выбрать date_format(date_trunc('день', balance_transactions.created), '%m-%d-%Y') как день, balance_transactions.source_id, возвраты.charge_id, баланс_транзакций.сумма, из balance_transactions возврат средств по внутреннему соединению при возмещении.balance_transaction_id=balance_transactions.id где balance_transactions.type = 'возврат' заказ по убыванию дня лимит 5
день | source_id | charge_id | сумма |
---|---|---|---|
489-00:00″> 9/22/2022 | re_EobZSAJl5p5z8sV | ch_pWUB73udSR9Ls6a | -1,000 |
re_8szbxjJuNPTkuyU | ch_hpL4NEHub0gCmyM | -1,000 | |
RE_UBDEWBSF26FNKLO | CH_D8NVZXPC5GBZPJ1 | -1000 | |
966. | .0079 | ch_KMYyNN2KOYXVLmF | -1,000 |
re_VDXFhLtYLk42cTJ | ch_bN7mWRXEC3jf0go | -1,000 |
Partial capture refunds
Using auth and capture and capturing only some of the authorized сумма создает как начисление, так и возмещение. Санкционированное списание создает списание
и связанную балансовую транзакцию на всю сумму. После завершения частичного захвата незахваченное количество высвобождается, и 9Возврат 0009 создается с полем Reason
partial_capture
вместе с соответствующей транзакцией баланса.
Например, авторизация списания в размере 10 долларов США, но получение только 7 долларов США создает списание
за 10 долларов США. Это также создает возврат
с причиной partial_capture
для оставшихся 3 долларов США.
Примите это во внимание, если ваша компания взимает плату за аутентификацию и сбор данных, поскольку вы создаете отчеты для просмотра ставок возврата средств клиентами. Без рассмотрения авторизация и захват могут исказить количество возмещений в вашей учетной записи. Воспользуйтесь функцией возврата поле Reason
для фильтрации частичных возвратов при получении платежной информации.
выбрать balance_transactions.id, balance_transactions. amount из balance_transactions возврат средств по внутреннему соединению на возвратах.id=balance_transactions.source_id где причина != 'partial_capture' limit 5
Споры
Таблица диспутов
содержит данные обо всех диспутах по вашему аккаунту. Каждая строка представляет объект Dispute, который создается при оспаривании платежа. Каждый спор также включает любые доступные данные о доказательствах спора, которые были отправлены.
В следующем примере представлена предварительная информация о пяти последних проигранных диспутах. Он объединяет таблицы споров
и сборов
вместе, используя столбцы споров. Наряду с идентификатором спора каждая строка содержит связанный идентификатор платежа, сумму и результат проверки ZIP и CVC.
выбрать date_format(date_trunc('день', споры.создано), '%m-%d-%Y') как день, споры.id, споры.charge_id, сумма споров, charge. card_address_zip_check как почтовый индекс, charge.card_cvc_check как cvc от споров плата за внутреннее соединение на charge.id=disputes.charge_id где споры.статус = 'потерянный' и споры.причина = 'мошеннические' заказ по убыванию дня предел 5
day | id | charge_id | amount | zip | cvc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dp_u3GyYt5tidxkqnZ | ch_WfStTFh5UZyjnUQ | 1,000 | pass | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dp_arWeWFQXYMzbPJC | ch_OUTYRT9XJ0VeASi | 1,000 | pass | fail | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dp_fw305SCG07vrd5d | ch_GZcYOD89hf56JKm | 1,000 | fail | fail | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
489-00:00"> 9/22/2022 | dp_y0vD8XhHAaLZBjY | ch_jwJFMeWDqTxXgtZ | 1,000 | pass | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DP_O4L1PJB0BTOTXCN | CH_1HVM7EMPMBHDDDE | 1000 | Пасс | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0156 |
day | source_id | type | net_amount | transfer_id | transfer_date |
---|---|---|---|---|---|
05-22-2017 | ch_nlvxEKdYCx1fJO6 | charge | 941 | po_kMMBHgwkbssONeJ | 05 -24-2017 |
22.05.2017 | ch_mv0wdThIbfWruth | заряд | 941 | po_zuGbJurPLntoyeg 9 6 7-7-7 9000eg 9000eg0079 | |
05-21-2017 | ch_yhGhKM1DWlF6Glu | charge | 941 | po_U42AwR4Zdcrsvs0 | 05-23-2017 |
05-21-2017 | ch_ZWgA9K1YkCdEDD2 | charge | 941 | po_4NbBguIJzCQ2958 | 05-23-2017 |
05-21-2017 | ch_ydRAMXKm23Emvot | charge | 941 | po_SLDfjdEKb3M0vzn | 05-23-2017 |
Отмена перевода
Вы можете отменить созданную вручную выплату (или перевести на подключенную учетную запись Stripe), если она еще не была выплачена, используя средства, возвращенные на доступный баланс в вашей учетной записи. Они представлены как объекты Transfer_reversal и находятся в таблице transfer_reversals
.
Отмена перевода применяется только к выплатам и переводам, созданным вручную — вы не можете отменить автоматические выплаты.
транзакций в SQL Server для начинающих
В этой статье мы поговорим об основных деталях транзакций в SQL Server.
Введение
Транзакция — это логическая рабочая единица, которая выполняет одно или несколько действий в базе данных. Транзакции могут состоять из одной операции чтения, записи, удаления или обновления или их комбинации. Предполагать что, когда мы хотим снять деньги в банкомате, приложение банкомата выполнит эту операцию в три этапа. В качестве первого шага приложение проверит баланс счета, а затем спишет деньги с учетная запись источника. Наряду с этими двумя процессами он будет вести журнал операций по снятию денег. Следующее изображение в основном иллюстрирует принцип работы транзакций в системах реляционных баз данных.
Основная идея транзакций заключается в том, что когда каждый из операторов возвращает ошибку, все модификации откат для обеспечения целостности данных. С другой стороны, если все операторы выполнены успешно, данные изменения станут постоянными в базе данных. В результате, если у нас возникнут какие-либо отключения электроэнергии или другие проблемы при снятии денег в банкомате, транзакции гарантируют стабильность нашего баланса. Это было бы лучший способ выполнить все эти шаги через транзакцию, потому что четыре основных свойства транзакций сделать все операции более точными и последовательными. Все эти свойства известны как КИСЛОТА (атомарность, непротиворечивость, изоляция, устойчивость) в системах реляционных баз данных с первой буквой их имена.
- A tomicity: Все операции, включенные в выполненную транзакцию успешно. В противном случае все операции отменяются в момент сбоя и все предыдущие операции откатываются
- С onsistency: Это свойство гарантирует, что все данные будут согласованными после транзакция завершается в соответствии с определенными правилами, ограничениями, каскадами и триггерами
- Изоляция: Все транзакции изолированы от других транзакций
- Durable : модификация совершенных транзакций сохраняется в базе данных.
Предварительные требования
В этой статье мы создадим образец таблицы с помощью следующего запроса и заполним некоторые образцы данных.
1 2 3 4 5 6 7 8 10 110007 12 13 14 160007 160007 16000718 19 20 | Создать таблицу человека ( Personid int Первичный ключ идентификация (1,1), Lastname varchar (255), FirstName varchar (255), Адрес Varchar (255), City Varchar (255), AGE INT ) GO Вставка в значения лица («Hayes», «Кори», «123 Wern Ddu Lane», «Lustleigh», 23) Вставка в значения лица ('' ' Macdonald", "Charlie", "23 Peachfield Road", "CEFN EINION", 45) ВСТАВИТЬ В Person VALUES('Frost','Emma','85 Kingsway North','HOLTON',26) ВСТАВИТЬ В Person VALUES('Thomas', 'Tom','59 Dover Road', 'WESTER GRUINARDS',51) ВСТАВИТЬ В Person VALUES('Baxter','Cameron','106 Newmarket Road','HAWTHORPE',46) ВСТАВИТЬ В Person VALUES('Townsend','Imogen ','100 Shannon Way','CHIPPENHAM',20) ВСТАВИТЬ В Person VALUES('Preston','Taylor','14 Pendwyallt Road','BURTON',19) INSERT INTO Person VALUES('Townsend','Imogen' ,'100 Шеннон Уэй','ЧИППЕНХЭМ',18) ВСТАВИТЬ В Person VALUES('Хан','Джейкоб','72 Ballifeary Road','BANCFFOSFELEN',11) |
Режимы транзакций в SQL Server
SQL Server может работать в трех различных режимах транзакций, а именно:
- Транзакция Autocommit Режим — это транзакция по умолчанию для SQL Server. В этом режиме каждый Оператор T-SQL оценивается как транзакция, и они фиксируются или откатываются в соответствии с их результатами. Успешные операторы фиксируются, а неудачные операторы немедленно откатываются.
- Режим неявной транзакции позволяет SQL Server запускать неявную транзакция для каждого оператора DML, но нам нужно явно использовать команды фиксации или отката в конце заявлений
- Явная транзакция Режим позволяет точно определить транзакцию с началом и окончанием точки сделки
Как определить неявную транзакцию в SQL Server
Чтобы определить неявную транзакцию, нам нужно включить опцию IMPLICIT_TRANSACTIONS . Следующий запрос иллюстрирует пример неявной транзакции.
- Совет: Функция @@TRANCOUNT возвращает количество операторов BEGIN TRANSACTION в текущем сеансе, и мы можем использовать эту функцию для подсчета количества открытых локальных транзакций в примерах .
1 2 3 4 5 6 7 8 10 110007 12 13 14 160007 160007 16000718 | Установите ITICAIT_TRANSACTIONS на Обновление человек SET LASTNAME = 'SAWYER', FirstName = 'Tom' , где Personid = 2 Выбрать IIF (@@ Options & 2 = 2, 'режим неявной транзакции в', 'режим неявной транзакции' ) в качестве «режим транзакции» Select @@ Trancount As OpentRansactions COMMIT TRAN SELECT @@TRANCOUNT AS OpenTransactions |
Оператор COMMIT TRANSACTION применяет изменения данных к базе данных, и измененные данные становятся постоянными.
Как определить явную транзакцию в SQL Server
Чтобы определить явную транзакцию, мы начинаем использовать команду BEGIN TRANSACTION , потому что этот оператор определяет начальную точку явной транзакции. Он имеет следующий синтаксис:
НАЧАТЬ ТРАНЗАКЦИЮ [ {имя_транзакции | @tran_name_variable } [С ПОМЕТКОЙ ['описание']]] |
- transaction_name Опция используется для присвоения транзакциям определенного имени
- @trans_var option — определяемая пользователем переменная, которая используется для хранения имени транзакции.
- Параметр WITH MARK позволяет отметить конкретную транзакцию в файле журнала
После определения явной транзакции через Команда BEGIN TRANSACTION , соответствующие ресурсы получил блокировку в зависимости от уровня изоляции транзакции. По этой причине можно использовать кратчайший транзакция поможет уменьшить проблемы с блокировкой. Следующий оператор запускает транзакцию, а затем она изменится имя конкретной строки в таблице Person.
1 2 3 4 5 6 7 8 | Begin Tran Обновление человека SET LASTNAME = 'Lucky', FirstName = 'Luke' , где Personid = 1 SELECT @@ Trancount As OpentRansactions |
Как мы заявили в предыдущем разделе, оператор COMMIT TRAN применяет данные изменения в базе данных, и измененные данные станут постоянными. Теперь давайте завершим открытую транзакцию с Оператор COMMIT TRAN.
1 2 3 4 5 6 7 8 | Begin Tran Обновление человека Set Lastname = 'Lucky', FirstName = 'Luke' , где PersonId = 1 Select @@ Trancount As Opentransaction |
С другой стороны, оператор ROLLBACK TRANSACTION помогает отменить все модификации данных, которые применяются транзакцией. В следующем примере мы изменим конкретную строку, но эта модификация данных не будет сохраняться.
1 2 3 4 5 6 7 8 10 11 | Begin Tran Обновление человека Set Lastname = 'Donald', FirstName = 'Duck', где Personid = 2 Select * из человека, где Personid = 2 Rollback Tran SELECT * FROM Person WHERE PersonID=2 |
В следующей таблице показана структура явных транзакций в SQL Server.
НАЧАТЬ СДЕЛКУ | Начальная точка сделки |
SQL-команды | Операторы DML и SELECT |
СОВЕРШИТЬ ТРАНЗАКЦИЮ или ОТМЕНИТЬ ТРАНЗАКЦИЮ | Применить изменение данных к базе данных или Удалить изменение данных в базе данных |
Сохранить баллы в транзакциях
Точки сохранения можно использовать для отката любой конкретной части транзакции, а не всей транзакции. Так что мы можем откатить любую часть транзакции только между точкой сохранения и до отката. команда. Чтобы определить точку сохранения в транзакции, мы используем СОХРАНИТЬ ТРАНЗАКЦИЮ синтаксис, а затем мы добавляем имя точки сохранения. Теперь давайте проиллюстрируем пример использования точки сохранения. Когда мы выполним следующий запрос, только оператор вставки будет зафиксирован, а оператор удаления будет отменен.
1 2 3 4 5 6 7 8 9 | НАЧАТЬ ТРАНЗАКЦИЮ INSERT INTO Person VALUES('Mouse', 'Micky','500 South Buena Vista Street, Burbank','California',43) СОХРАНИТЬ ТРАНЗАКЦИЮ InsertStatement УДАЛИТЬ Person WHERE PersonID=3 SELECT FROM Person ROLLBACK TRANSACTION InsertStatement COMMIT SELECT * FROM Person |
Автоматический откат транзакций в SQL Server
Как правило, транзакции включают более одного запроса. Таким образом, если один из операторов SQL возвращает error все модификации стираются, а остальные операторы не выполняются. Этот процесс называется Автоматический откат Транзакция в SQL. Теперь давайте объясним этот принцип очень простой пример.
1 2 3 4 5 6 7 8 | BEGIN TRAN INSERT INTO Person VALUES('Bunny', 'Bugs','742 Evergreen Terrace','Springfield',54)
UPDATE Person SET Age='MiddleAge0007 SELECT * FROM Person
COMMIT TRAN |
Как видно из приведенного выше изображения, в операторе обновления произошла ошибка из-за типа данных. вопрос конверсии. В этом случае вставленные данные стираются, а оператор select не выполняется.
Отмеченные транзакции в SQL Server
SQL Server позволяет нам помечать и добавлять описание к конкретной транзакции в файлах журнала. Таким образом, мы можем создать точку восстановления, которая не зависит от времени. Например, когда происходит случайное изменение данных в базе данных, и мы не знаем точное время модификации данных, усилия по восстановлению данных могут быть предприняты много времени. По этой причине помеченные транзакции могут быть полезным решением для определения точного времени данных. модификации. Чтобы создать отмеченную транзакцию, нам нужно дать имя транзакции, а также нам нужно добавить С ОТМЕТКОЙ синтаксис. В следующем запросе мы удалим некоторые строки, а также отметим изменения в файле журнала.
BEGIN TRAN DeletePerson WITH MARK 'MarkedTransactionDescription' DELETE Person WHERE PersonID МЕЖДУ 3 И 4
COMMIT TRAN DeletePerson |
В таблице logmarkhistory хранятся сведения о каждой отмеченной транзакции, которая была зафиксирована и он находится в база данных msdb .
ВЫБЕРИТЕ * ИЗ msdb.dbo.logmarkhistory |
Как мы видим на изображении выше, logmarkhistory дает все подробности о помеченной транзакции. Следующие два параметра помогают использовать помеченные транзакции в качестве точки восстановления.
- STOPATMARK выполняет накат до отметки и включает отмеченную транзакцию в накат
- STOPBEFOREMARK выполняет накат до отметки и исключает отмеченную транзакцию из наката
Вы можете прочитать следующие статьи, чтобы узнать больше о восстановлении базы данных из резервных копий журнала транзакций:
- Восстановление данных из журнала транзакций SQL Server
- Восстановление связанных баз данных, содержащих отмеченную транзакцию
Вывод
В этой статье мы говорили о транзакции в операторах SQL Server. Транзакции являются важной частью системы реляционных баз данных, поскольку они обеспечивают целостность баз данных.
- Автор
- Последние сообщения
Esat Erkec
Esat Erkec — специалист по SQL Server, который начал свою карьеру более 8 лет назад в качестве разработчика программного обеспечения. Он является сертифицированным экспертом по решениям Microsoft для SQL Server.
Большая часть его карьеры была посвящена администрированию и разработке баз данных SQL Server. Его текущие интересы связаны с администрированием баз данных и бизнес-аналитикой. Вы можете найти его на LinkedIn.
Просмотреть все сообщения от Esat Erkec
Последние сообщения от Esat Erkec (посмотреть все)
sql - Имея транзакцию во всех запросах
Asked
Изменено 3 года, 6 месяцев назад
Просмотрено 2k раз
Считаете ли вы, что всегда иметь транзакцию вокруг операторов SQL в хранимой процедуре — это хорошая практика? Я как раз собираюсь оптимизировать это унаследованное приложение в своей компании и обнаружил, что каждая хранимая процедура имеет НАЧАТЬ ТРАНЗАКЦИЮ
. Даже процедура с одним оператором выбора или обновления имеет его. Я подумал, что было бы неплохо иметь BEGIN TRANSACTION
при выполнении нескольких действий, а не только одного действия. Я могу ошибаться, поэтому мне нужен кто-то еще, чтобы посоветовать мне. Спасибо за ваше время, ребята.
- sql
- sql-server-2005
- транзакции
0
Это совершенно не нужно, так как каждый оператор SQL выполняется атомарно, т.е. как если бы он уже работал в своей собственной транзакции. На самом деле открытие ненужных транзакций может привести к усилению блокировок, вплоть до взаимоблокировок. Если вы забудете сопоставить COMMIT с BEGIN, транзакция может остаться открытой до тех пор, пока открыто соединение с базой данных, и помешать другим транзакциям в том же соединении.
Такое кодирование почти наверняка означает, что тот, кто написал этот код, не имел большого опыта в программировании баз данных, и он уверен, что могут быть и другие проблемы.
Единственная возможная причина, которую я вижу для этого, - это возможность отката транзакции по другой причине, чем сбой SQL.
Однако, если код буквально
начать транзакцию утверждение совершить
Тогда я не вижу абсолютно никакой причины использовать явную транзакцию, и это, вероятно, делается потому, что так всегда делалось.
Я не знаю никакой пользы от использования транзакций автоматической фиксации для этих операторов.
Возможные недостатки повсеместного использования явных транзакций могут заключаться в том, что это только добавляет беспорядка в код и, таким образом, затрудняет обнаружение того, когда явная транзакция используется для обеспечения правильности нескольких операторов.
Кроме того, увеличивается риск того, что транзакция останется открытой, удерживая блокировки, если не принять меры предосторожности (например, с SET XACT_ABORT ON).
Также - это незначительное влияние на производительность, как показано в ответе @ 8kb. Это иллюстрирует это другим способом, используя профилировщик визуальной студии.
Настройка
(Проверка пустой таблицы)
CREATE TABLE T (X INT)
Явный
УСТАНОВИТЬ NOCOUNT ON ОБЪЯВИТЬ @X INT ПОКА (1 = 1) НАЧИНАТЬ НАЧАТЬ ТРАН ВЫБЕРИТЕ @X = X ОТ Т СОВЕРШИТЬ КОНЕЦ
Автоматическая фиксация
УСТАНОВИТЬ NOCOUNT ON ОБЪЯВИТЬ @X INT ПОКА (1 = 1) НАЧИНАТЬ ВЫБЕРИТЕ @X = X ОТ Т КОНЕЦ
Оба они в конечном итоге тратят время на CMsqlXactImp::Begin
и CMsqlXactImp::Commit
, но для случая явных транзакций он тратит значительно большую часть времени выполнения на эти методы и, следовательно, меньше времени на полезные действия. Работа.
+--------------------------------+-----------+--- -------+ | | Авто | Явный | +-----------------+-----------+----- -----+ | CXStmtQuery::ErsqExecuteQuery | 35,16% | 25,06% | | CXStmtQuery::XretSchemaChanged | 20,71% | 14,89% | | CMsqlXactImp::Начало | 5,06% | 13% | | CMsqlXactImp::Commit | 12,41% | 24,03% | +-----------------+-----------+----- -----+
0
При выполнении нескольких операций вставки/обновления/удаления лучше иметь транзакцию для обеспечения атомарности операции и выполнения всех задач операции или ни одной.
Для одного оператора вставки/обновления/удаления это зависит от того, какую операцию (с точки зрения бизнес-уровня) вы выполняете и насколько она важна. Если вы выполняете некоторые вычисления перед одиночной вставкой/обновлением/удалением, то лучше используйте транзакцию, возможно, некоторые данные изменились после того, как вы извлекаете данные для вставки/обновления/удаления.
Один плюс в том, что вы можете добавить еще один INSERT (например), и это уже безопасно.
Опять же, у вас также возникает проблема вложенных транзакций, если хранимая процедура вызывает другую. Внутренний откат вызовет ошибку 266.
Если каждый вызов является простым CRUD без вложенности, то это бессмысленно: но если вы вкладываете или имеете несколько записей до TXN, тогда хорошо иметь согласованный шаблон.
Вы упомянули, что будете оптимизировать это устаревшее приложение.
Одним из первых и самых простых способов повышения производительности является удаление всех BEGIN TRAN и COMMIT TRAN для хранимых процедур, которые выполняют только операции SELECT.
Вот простой тест для демонстрации:
/* Сравните базовое время SELECT с транзакцией и без нее */ DECLARE @date DATETIME2 ОБЪЯВИТЬ @noTran INT ОБЪЯВИТЬ @withTran INT УСТАНОВИТЬ @noTran = 0 УСТАНОВИТЬ @withTran = 0 DECLARE @t TABLE (ColA INT) ВСТАВЬТЕ @t ЗНАЧЕНИЯ (1) ЗАЯВИТЬ @count ИНТ, @значение INT УСТАНОВИТЬ @количество = 1 ПОКА @count < 1000000 НАЧИНАТЬ УСТАНОВИТЬ @дата = ПОЛУЧИТЬДАТА() ВЫБЕРИТЕ @значение = ColA FROM @t, ГДЕ ColA = 1 SET @noTran = @noTran + DATEDIFF(МИКРОСЕКУНДЫ, @date, GETDATE()) УСТАНОВИТЬ @дата = ПОЛУЧИТЬДАТА() НАЧАТЬ ТРАН ВЫБЕРИТЕ @значение = ColA FROM @t, ГДЕ ColA = 1 СОВЕРШИТЬ ТРАНЗАКЦИЮ SET @withTran = @withTran + DATEDIFF(MICROSECOND, @date, GETDATE()) УСТАНОВИТЬ @count = @count + 1 КОНЕЦ ВЫБРАТЬ @noTran / 1000000. AS Seconds_NoTransaction, @withTran / 1000000. AS Seconds_WithTransaction /** Полученные результаты **/ Seconds_NoTransaction Seconds_WithTransaction -------------------------------------- ----------- ---------------------------- 14. 23600000 18.08300000
Вы видите, что с транзакциями связаны определенные накладные расходы.
Примечание. Предполагается, что эти хранимые процедуры не используют никаких специальных уровней изоляции или подсказок блокировки (для чего-то вроде обработки пессимистического параллелизма). В этом случае, очевидно, вы хотели бы сохранить их.
Итак, чтобы ответить на вопрос, я бы оставил только те транзакции, в которых вы действительно пытаетесь сохранить целостность данных модификаций в случае ошибки в коде, SQL Server или оборудовании.
3
Я могу только сказать, что размещение такого блока транзакций в каждой хранимой процедуре может оказаться задачей новичка.
Транзакция должна быть размещена только в блоке, который имеет более одного оператора вставки/обновления, кроме этого нет необходимости помещать блок транзакции в хранимую процедуру.
Синтаксис BEGIN TRANSACTION/COMMIT не должен использоваться в каждой хранимой процедуре по умолчанию, если только вы не пытаетесь охватить следующие сценарии:
Вы включили опцию WITH MARK, потому что хотите поддерживать восстановление базы данных из резервной копии на определенный момент времени.
Вы собираетесь перенести код с SQL Server на другую платформу базы данных, например Oracle. Oracle не фиксирует транзакции по умолчанию.
Твой ответ
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
В чем разница между запросом и транзакцией в SQL?
Спросил
Изменено 11 месяцев назад
Просмотрено 5k раз
Впервые изучаю SQL, и мой учитель говорит, что запрос всегда будет возвращать какую-то информацию, в то время как транзакция заставит данные считываться или помещаться в базу данных. Я в замешательстве, потому что почему люди говорят, что INSERT — это запрос в SQL? Может ли кто-нибудь объяснить новичку?
1
Запрос обычно относится к оператору SELECT
, но может также относиться и к модификации данных — UPDATE
, INSERT
, DELETE
и MERGE
являются общими DML («язык модификации данных») заявления. Лично я назвал бы эти четыре операции операторами DML и зарезервировал запросов для операторов SELECT
; Я считаю это полезным различием.
Базы данных реализуют набор свойств, называемых свойствами ACID. В основном они говорят, что любой оператор SQL видит согласованные данные, независимо от того, что еще происходит в базе данных. Простой способ думать об этом состоит в том, что все операции сериализованы — одна инструкция завершается до начала другой, даже в многопользовательской среде. Сериализация гарантирует, что операции изолированы друг от друга. На практике сериализация очень дорогая, а базы данных имеют другие механизмы для обеспечения целостности, но это полезная абстракция при изучении концепций.
Что такое транзакции? Транзакции — это механизм, который базы данных используют для обеспечения целостности данных при изменении данных. Транзакции часто состоят из одного оператора, который изменяет данные. Но это не обязательно. На самом деле вы можете иметь сложный набор преобразований данных в рамках одной транзакции.
Три ключевые операции над транзакциями:
- НАЧАТЬ ТРАНЗАКЦИЮ: сообщить базе данных, что транзакция начинается. Все изменения внутри транзакции невидимы для других пользователей, пока транзакция «активна».
- COMMIT TRANSACTION: Сделайте все изменения видимыми в базе данных. Концептуально это происходит мгновенно. База данных гарантирует, что другие пользователи не увидят частичных изменений данных (т. е. обеспечивает целостность данных).
- ROLLBACK TRANSACTION: отменить всю работу. Другие пользователи никогда не увидят изменений.
Примечание. Во многих базах данных есть параметры для ослабления целостности данных. Это может быть полезно для повышения производительности для пользователей, которые знают, что делают .
Должен отметить, что если все операции над базой данных являются SELECT
операторами, то транзакции не нужны. Данные не меняются, поэтому представление данных является согласованным. Таким образом, транзакции обычно связаны с операторами DML.
Работая с базами данных SQL, вы получаете как транзакции, так и запросы. Вот простое объяснение:
- Запросы — это операции для CRUD (создание ( вставка ), обновление ( установка ), чтение ( выбор ), удалить ( удалить )) данные внутри таблицы.
- Транзакция — это более или менее процесс выполнения одного или нескольких операторов/запросов/операций.
Таким образом, это означает, что транзакция содержит некоторые взаимодействия, а запрос является примером взаимодействия 1 типа. Важно знать, что транзакции похожи на покупку вещей в Интернете. Вы работаете и отмечаете вещи, которые хотите купить, но только если вы нажмете «купить», вы, наконец, получите и заплатите за вещи. Для транзакций это означает, что они должны быть зафиксированы впоследствии, иначе они будут снова отменены (откат). В основном ваши фреймворки будут автоматически фиксировать изменения после каждого взаимодействия и завершать транзакцию с ним.
Комментарий, если у вас есть вопросы.
1
Простое объяснение будет таким: Запрос — это одна инструкция, такая как SELECT, UPDATE, DELETE и т. д.
и транзакция — это группа запросов для выполнения конкретной задачи
- необходимо выполнить как
выберите счет
,проверьте баланс
,дебетовый баланс
икредитовый баланс
, так что эти 4 запроса могут быть объединены в форму txn.
Твой ответ
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Транзакции и пакетные запросы (Справочник)
Транзакция базы данных относится к последовательности операций чтения/записи, гарантированно успешных или неудачных в целом. В этом разделе описываются способы поддержки транзакций клиентским API Prisma.
- Более подробные примеры и варианты использования см. в руководстве по 📖 транзакциям.
- Для получения информации о транзакциях в целом и обосновании текущих решений Prisma см. ✍ Блог: Как Prisma поддерживает транзакции.
О транзакциях в Prisma
Prisma предоставляет следующие варианты использования транзакций:
- Вложенные записи: используйте клиентский API Prisma для обработки нескольких операций с одной или несколькими связанными записями внутри одной транзакции.
- Пакетные/массовые транзакции: массовая обработка одной или нескольких операций с помощью
updateMany
,deleteMany
иcreateMany
. - Клиент Prisma
$transaction
API:- Последовательные операции: передать массив запросов клиента Prisma для последовательного выполнения внутри транзакции, используя
$transaction
.(запросы: PrismaPromise []): Promise - Интерактивные транзакции (в предварительной версии): передайте функцию, которая может содержать пользовательский код, включая запросы Prisma Client, код, отличный от Prisma, и другой поток управления, который будет выполняться в транзакции, используя
$transaction
(fn: (prisma: PrismaClient) => R, options?: object): R
- Последовательные операции: передать массив запросов клиента Prisma для последовательного выполнения внутри транзакции, используя
Вложенная запись
Вложенная запись позволяет выполнять один вызов Prisma Client API с несколькими операции , которые касаются нескольких связанных записей. Например, создание пользователя вместе с публикацией или обновление заказа вместе со счетом . Prisma Client гарантирует, что все операции будут успешными или неудачными в целом.
В следующем примере демонстрируется вложенная запись с create
:
// Создание нового пользователя с двумя сообщениями в одной транзакции
//
const newUser: User = await prisma. user.create({
данные: {
электронная почта: '[email protected]',
сообщения: {
создать: [
{ title: 'Присоединяйтесь к Prisma Slack на https://slack.prisma.io' },
{ title: 'Подпишитесь на @prisma в Twitter' },
],
},
},
})
В следующем примере демонстрируется вложенная запись с обновлением
:
// Изменение автора сообщения
// Изменить автора сообщения 9000 в одной транзакции = await prisma.post.update({
где: {id: 42},
данные: {
автор: {
подключение: {электронная почта: '[email protected]'},
},
},
})
Дополнительные примеры см. в руководстве по транзакциям 📖.
Пакетная/объемная операции
Следующие объемные операции выполняются в качестве транзакций:
-
Deletemany
-
Updatemany
-
.
API $transaction
API
$transaction
можно использовать двумя способами:Последовательные операции: передать массив запросов Prisma Client для последовательного выполнения внутри транзакции.
$transaction
(запросы: PrismaPromise []): Promise Интерактивные транзакции (предварительная версия): передать функцию, которая может содержать пользовательский код, включая запросы Prisma Client, не - Код Prisma и другой поток управления, который будет выполняться в транзакции.
$transaction
(fn: (prisma: PrismaClient) => R): R
Примечание : для использования интерактивных транзакций вам необходимо включить их в качестве функции предварительного просмотра.
Последовательные операции клиента Prisma
Следующий запрос возвращает все сообщения, соответствующие заданному фильтру, а также количество всех сообщений:
const [posts, totalPosts] = await prisma. .post.findMany({где: {название: {содержит: 'prisma' } } }),
prisma.post.count(),
])
Вы также можете использовать необработанные запросы внутри
$ Transaction
:SQL Databases
Mongodb
Const [UserList, UpdateUser] = Await Prisma. .$queryRaw`SELECT 'title' FROM User`,
prisma.$executeRaw`UPDATE User SET name = 'Hello' WHERE id = 2;`,
])
Вместо немедленного ожидания результата каждого операция, когда она выполняется, сама операция сначала сохраняется в переменной, которая позже отправляется в базу данных с помощью метода, называемого
$транзакция
. Клиент Prisma гарантирует, что либо все три операцииcreate
успешны, либо ни одна из них не будет успешной.Примечание : Операции выполняются в соответствии с порядком их размещения в транзакции. Использование запроса в транзакции не влияет на порядок операций в самом запросе.
Дополнительные примеры см. в руководстве по транзакциям 📖.
Интерактивные транзакции (в предварительной версии)
Иногда требуется больший контроль над тем, какие запросы выполняются в рамках транзакции. Интерактивные транзакции предназначены для того, чтобы предоставить вам лазейку.
Примечание : Если вы используете интерактивные транзакции, вы не можете одновременно использовать Data Proxy.
Чтобы включить интерактивные транзакции, добавьте
InteractiveTransactions
в генератор схемы Prisma:генератор клиент {
provider = "prisma-client-js"
previewFeatures = ["7 99007"]
0
Затем вы можете передать асинхронную функцию в
$transaction
.Первый аргумент, переданный в эту асинхронную функцию, — это экземпляр Prisma Client. Ниже мы будем называть этот экземпляр
tx
. Любой вызов Prisma, инициированный на этом экземпляреtx
, инкапсулируется в транзакцию.Давайте рассмотрим пример:
Представьте, что вы создаете систему онлайн-банкинга. Одно из действий, которое необходимо выполнить, — отправить деньги от одного человека другому.
Как опытные разработчики, мы хотим убедиться, что во время передачи
- сумма не исчезает
- сумма не удваивается
Это отличный пример использования интерактивных транзакций, потому что нам нужно выполнять логику между операциями записи для проверки баланса.
В приведенном ниже примере Алиса и Боб имеют по 100 долларов на своем счету. Если они попытаются отправить больше денег, чем у них есть, перевод будет отклонен.
Ожидается, что Алиса сможет сделать 1 перевод на 100 долларов, в то время как другой перевод будет отклонен. В результате у Алисы будет 0 долларов, а у Боба 200 долларов.
импорт { PrismaClient } из '@prisma/client'
const prisma = new PrismaClient()
асинхронная передача функции (из: строки в: строку, количество: число) {
return await prisma. $ transaction(async (tx) => {
// 1. Уменьшение суммы от отправителя.
const sender = await tx.account.update({
data: {
balance: {
decrement: sum,
},
},
где: {
email: from,
},
})
// 2. Убедитесь, что баланс отправителя не опустился ниже нуля.
if (sender.balance < 0) {
throw new Error(`${from} недостаточно для отправки ${amount}`)
}
// 3. Увеличить баланс получателя на сумму
постоянный получатель = ожидание tx.account.update({
данные: {
баланс: {
приращение: сумма,
},
},
где: {
электронная почта: кому,
},
})
получатель возврата
})
}
асинхронная передача функция main() { 9007 9 успешного перевода '[email protected]', '[email protected]', 100)
// Этот перевод невозможен, потому что у Алисы недостаточно средств на счету
await transfer('alice@prisma. io', ' [email protected]', 100)
}
main()
.then(async() => {
ожидание призмы.
})
В приведенном выше примере оба запроса
update
выполняются в транзакции базы данных. Когда приложение достигает конца функции, транзакция фиксируется в базе данных.Если ваше приложение столкнется с ошибкой, асинхронная функция выдаст исключение и автоматически откат транзакции.
Чтобы перехватить исключение, вы можете обернуть
$transaction
в блок try-catch:try {
transaction...
})
} catch (err) {
// Обработка отката...
}
API интерактивных транзакций имеет второй параметр со следующими необязательными параметрами конфигурации:
-
maxWait
: Максимальное время, в течение которого клиент Prisma будет ожидать получения транзакции из базы данных. Значение по умолчанию — 2 секунды. -
timeout
: максимальное количество времени, в течение которого интерактивная транзакция может выполняться до отмены и отката. Значение по умолчанию — 5 секунд. -
isolationLevel
: Устанавливает уровень изоляции транзакций. По умолчанию установлено значение, настроенное в настоящее время в вашей базе данных.
Например:
ожидание призмы. / по умолчанию: 2000
тайм-аут: 10000, // по умолчанию: 5000
уровень изоляции: Prisma.TransactionIsolationLevel.Serializable, // необязательный, по умолчанию определяется конфигурацией базы данных . Ведение транзакций open в течение длительного времени ухудшает производительность базы данных и даже может привести к взаимоблокировкам. Старайтесь избегать выполнения сетевых запросов и выполнения медленных запросов внутри вашего транзакционные функции. Мы рекомендуем вам войти и выйти как можно быстрее!
Уровень изоляции транзакций
Эта функция недоступна в MongoDB, поскольку MongoDB не поддерживает уровни изоляции.
Начиная с версии 4.2.0 можно установить уровень изоляции транзакций.
До версии 4.2.0
В версии 4.1.0 и более ранних нельзя настроить уровень изоляции транзакций на уровне Prisma. Уровень изоляции не устанавливается Prisma явно, поэтому используется уровень изоляции, настроенный в вашей базе данных. Информацию об уровнях изоляции для конкретной базы данных, включая значения по умолчанию для базы данных, см. в следующих ресурсах:
- Уровень изоляции транзакций по умолчанию в PostgreSQL
- Уровень изоляции транзакций по умолчанию в Microsoft SQL Server
- Уровень изоляции транзакций по умолчанию в MySQL
CockroachDB и SQLite всегда используют уровень изоляции Serializable.
Чтобы установить уровень изоляции транзакций, используйте параметр
isolationLevel
во втором параметре API. Например:await prisma.$transaction(
async (prisma) => {
// Код, выполняющийся в транзакции. ..
},
{
isolationLevel: Prisma.Transaction , // необязательный, по умолчанию определяется конфигурацией базы данных
maxWait: 5000, // по умолчанию: 2000
timeout: 10000, // по умолчанию: 5000
}
)
Prisma Client поддерживает следующие уровни изоляции, если они доступны в базовой10 6 7 базовой базе данных: 90
ReadUncommitted
Readcommitted
RepeatableDead
Снимок
Сериализуемый
Уровни ISOLATION по DATABASE
.2156
The isolation levels available for each database connector are as follows:
Database | ReadCommitted | ReadUncommitted | RepeatableRead | Serializable | Snapshot |
---|---|---|---|---|---|
PostgreSQL | ✔️ | ✔️ | ✔️ | ✔️ | Нет |
MySQL | ✔️ | ✔️ | ✔️ | ✔️ | No |
SQL Server | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
CockroachDB | No | No | No | ✔️ | No |
SQLite | No | No | No | ✔️ | No |
By default Prisma Client will set the isolation level to the value currently configured in your database.
The isolation levels configured by default in each database are:
Database | Default |
---|---|
PostgreSQL | ReadCommitted |
MySQL | RepeatableRead |
SQL Server | ReadCommitted |
CockroachDB | Сериализуемый |
SQLite | Serializable |
Дополнительные сведения об уровнях изоляции для конкретных баз данных см. в следующих ресурсах:
- Уровни изоляции транзакций в PostgreSQL
- Уровни изоляции транзакций в Microsoft SQL Server2 0
CockroachDB и SQLite поддерживают только уровень изоляции Serializable
.
Было ли это полезно?
Редактировать эту страницу на GitHub
Что такое транзакция SQL с примерами
Транзакция SQL Server полезна для выполнения еще одного оператора в виде набора. В случае успеха все изменения, сделанные в этой транзакции, будут применены к таблице. Если какой-либо отдельный оператор внутри транзакции обнаруживает ошибку, то изменения, внесенные в эту транзакцию, будут стерты или отменены.
Позвольте мне показать вам список различных примеров, которые могут объяснить Транзакции. Это BEGIN TRANSACTION, COMMIT, ROLLBACK, named, Trans внутри IF ELSE и транзакции SQL Server внутри блока TRY CATCH. Список того, что нужно помнить при работе с транзакциями.
- Каждая транзакция должна начинаться с BEGIN TRANSACTION, BEGIN TRAN или BEGIN TRANSACTION Transaction_Name
- Каждая транзакция в SQL Server должна заканчиваться операторами COMMIT или ROLLBACK.
- COMMIT TRANSACTION: Этот оператор указывает серверу сохранить изменения, сделанные между BEGIN и COMMIT. Есть несколько способов написать это заявление. Либо вы можете написать COMMIT, COMMIT TRAN, COMMIT TRANSACTION или COMMIT TRANSACTION Имя_транзакции
- ROLLBACK TRANSACTION: Эта инструкция указывает Серверу стереть все изменения, сделанные между BEGIN и ROLLBACK. Есть несколько способов написать это заявление. Либо вы можете написать ROLLBACK, ROLLBACK TRAN, ROLLBACK TRANSACTION или ROLLBACK TRANSACTION Transaction_Name
Пример транзакции SQL Server
В этом примере мы поместим оператор INSERT INTO SELECT внутри транзакции BEGIN и COMMIT. Как видите, он выберет четыре верхние записи из таблицы «Сотрудники» и сохранит их в таблице «Записи сотрудников».
НАЧАТЬ ТРАНС ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ВЫБЕРИТЕ ТОП-4 [EmpID], [Имя], [Фамилия], [Образование], [Профессия], [Годовой доход], [Продажи] ОТ [dbo].[Сотрудник] СОВЕРШИТЬ ТРАНЗАКЦИЮ
Запустите вышеуказанный запрос
Сообщения -------- (затронуты 4 строки)
Давайте посмотрим на вставленные строки в таблице «Записи сотрудников».
Транзакция на сервере SQL не ограничивается одним оператором. Мы можем разместить несколько операторов внутри одного транса. В этом примере SQL Server мы поместим один оператор вставки и оператор обновления.
НАЧАТЬ ТРАНЗАКЦИЮ ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЗНАЧЕНИЯ (5, 'SQL', 'Сервер', 'Образование', 'Обучение', 10000, 200) ОБНОВЛЕНИЕ [dbo].[EmployeeRecords] SET [Образование] = "Учебники", [Годовой доход] = 98000 ГДЕ [EmpID] = 5 COMMIT TRANSACTION
Запуск операторов Insert и Update в одном запросе
Сообщения -------- (затронуты 1 ряд) (затронута 1 строка)
После этого записи находятся в таблице сотрудников.
Автоматический откат в транзакции SQL Server
Операторы внутри транзакции выполняются как набор, и если один оператор терпит неудачу, то остальные операторы не выполняются. Этот процесс также называется транзакциями автоматического отката.
На этот раз мы намеренно откажемся от одной инструкции внутри транзакции. Как видите, оператор обновления вернет ошибку, потому что мы вводим строковую информацию (VARCHAR) в тип данных float.
НАЧАТЬ ТРАНЗАКЦИЮ ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЗНАЧЕНИЯ (6, «Обучение», «Шлюз», «Образование», «Обучение», 65000, 1400) ОБНОВЛЕНИЕ [dbo].[EmployeeRecords] SET [Образование] = «Магистр», [Годовой доход] = «Неверные данные» ГДЕ [EmpID] = 6 СОВЕРШИТЬ ТРАНЗАКЦИЮ
Однако в операторе обновления есть ошибка. Мы не можем видеть вставленную запись, потому что транзакция откатывается.
Позвольте мне удалить BEGIN и COMMIT из приведенного выше фрагмента кода и выполнить операторы.
ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЗНАЧЕНИЯ (6, «Обучение», «Шлюз», «Образование», «Обучение», 65000, 1400) ОБНОВЛЕНИЕ [dbo].[EmployeeRecords] SET [Образование] = «Магистр», [Годовой доход] = «Неверные данные» ГДЕ [EmpID] = 6
Я вставил новую запись Emp Id 6, но не смог ее обновить.
Откат транзакции в SQL Server
Откат полезен для отката либо к началу транзакции, либо к точке сохранения. Этот откат SQL можно использовать для удаления незавершенных строк или для обработки ошибок.
Например, если ваша транзакция вставляет новую запись и выдает ошибку, вы можете использовать этот откат, чтобы вернуть таблицу в исходное положение.
В этом примере мы вставим новую запись в таблицу Employee и применим транзакцию отката после вставки. Чтобы продемонстрировать это, мы используем оператор Select внутри и вне транзакции. Первый оператор select покажет вам записи таблицы перед завершением транзакции.
НАЧАТЬ ТРАНЗАКЦИЮ ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЗНАЧЕНИЯ (7, «SQL Server», «Учебник», «Мастера», «Обучение», 55000, 1250) SELECT * FROM [dbo].[EmployeeRecords] ОТМЕНА ТРАНЗАКЦИИ SELECT * FROM [dbo].[EmployeeRecords]
Хотя в приведенном выше выражении нет ошибки, запись не вставлена.
Именованные транзакции в SQL Server
Это позволяет вам назвать вашу транзакцию. Когда вы работаете с несколькими транзакциями в одном запросе, всегда рекомендуется использовать именованную транзакцию.
-- AddEmployee — это имя транзакции НАЧАТЬ ТРАНЗАКЦИЮ ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЗНАЧЕНИЯ (7, «SQL Server», «Учебник», «Мастера», «Обучение», 55000, 1250) СОВЕРШИТЬ ТРАНЗАКЦИЮ SELECT * FROM [dbo].[EmployeeRecords]
Транзакции будут намного полезнее, если мы поместим их внутрь любых условных операторов, таких как IF ELSE. Например, проверьте наличие существующих записей в таблице сотрудников перед вставкой, и если они есть, выполните откат, в противном случае зафиксируйте и т. д. пользователь введет значение). Затем мы использовали оператор вставки, следующий в пределах If, мы проверяем, меньше ли @sales 1000 или нет. Если это правда, откатите транзакцию, в противном случае зафиксируйте ее в операторе Select.
DECLARE @Sales FLOAT = 250,0 НАЧАТЬ ТРАНЗАКЦИЮ ВСТАВИТЬ В [dbo]. [EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЗНАЧЕНИЯ (8, 'Дэйв', 'Роб', 'Средняя школа', 'Профессионал', 85000, @Sales) ЕСЛИ @Продажи < 1000 НАЧИНАТЬ ОТМЕНА ТРАНЗАКЦИИ AddEmployee ПЕЧАТЬ 'Извините! Сумма продажи должна быть больше 1000 ' КОНЕЦ ЕЩЕ НАЧИНАТЬ СОВЕРШИТЬ ТРАНЗАКЦИЮ PRINT «Запись вставлена успешно» КОНЕЦ SELECT * FROM [dbo].[EmployeeRecords]
Позвольте мне показать вам записи
На этот раз мы изменили значение переменной @Sales на 1450,02
DECLARE @Sales FLOAT = 1450,02 НАЧАТЬ ТРАНЗАКЦИЮ ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЗНАЧЕНИЯ (8, 'Дэйв', 'Роб', 'Средняя школа', 'Профессионал', 85000, @Sales) ЕСЛИ @Продажи < 1000 НАЧИНАТЬ ОТМЕНА ТРАНЗАКЦИИ AddEmployee ПЕЧАТЬ 'Извините! Сумма продажи должна быть больше 1000 ' КОНЕЦ ЕЩЕ НАЧИНАТЬ СОВЕРШИТЬ ТРАНЗАКЦИЮ PRINT «Запись вставлена успешно» КОНЕЦ SELECT * FROM [dbo]. [EmployeeRecords]
Данные результата находятся в таблице сотрудников.
Транзакция SQL в TRY CATCH
Транзакции очень полезны, если мы поместим их внутрь блока TRY CATCH. Например, если внутри него есть ошибка, вы можете использовать блок catch, чтобы откатить транзакцию в исходное положение.
Это простой пример Transactions, в котором мы разместили один оператор select и один оператор update внутри блока Try Catch. Если вы внимательно посмотрите, наш оператор обновления выдаст ошибку из-за конфликта типов данных.
НАЧАТЬ ПОПЫТКУ НАЧАТЬ ТРАНЗАКЦИЮ ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЦЕННОСТИ (9, «Чонг», «Ли», «Учебники», «Разработчик», 66500, 1950) ОБНОВЛЕНИЕ [dbo].[EmployeeRecords] SET [Образование] = «Бакалавриат», [YearlyIncome] = 'Эй, ты меня неправильно понял!' ГДЕ [EmpID] = 9 СОВЕРШИТЬ ТРАНЗАКЦИЮ PRINT «Запись вставлена успешно» КОНЕЦ ПОПЫТКИ НАЧАТЬ ЛОВИТЬ ОТМЕНА ТРАНЗАКЦИИ AddEmployee ПЕЧАТЬ 'Извините! Существует несоответствие типа данных для годового дохода. КОНЦЕВОЙ ЗАХВАТ SELECT * FROM [dbo].[EmployeeRecords]
и данные внутри таблицы:
Позвольте мне изменить значение годового дохода на
и запустить его
НАЧАТЬ ПОПРОБУЙТЕ НАЧАТЬ ТРАНЗАКЦИЮ ВСТАВИТЬ В [dbo].[EmployeeRecords] ( [EmpID], [Имя], [Фамилия], [Образование], [Занятие], [Годовой доход], [Продажи]) ЦЕННОСТИ (9, «Чонг», «Ли», «Учебники», «Разработчик», 66500, 1950) ОБНОВЛЕНИЕ [dbo].[EmployeeRecords] SET [Образование] = «Бакалавриат», [Годовой доход] =-- Мы изменили его ГДЕ [EmpID] = 9 СОВЕРШИТЬ ТРАНЗАКЦИЮ PRINT «Запись вставлена успешно» КОНЕЦ ПОПЫТКИ НАЧАТЬ ЛОВИТЬ ОТМЕНА ТРАНЗАКЦИИ AddEmployee ПЕЧАТЬ 'Извините! Существует несоответствие типа данных для годового дохода. КОНЦЕВОЙ ЗАХВАТ SELECT * FROM [dbo].[EmployeeRecords]
, а данные в таблице Employee:
Распространенные ошибки
Одна из распространенных ошибок, возникающих при их использовании в запросе. Как видите, мы используем простую инструкцию Update после SQL BEGIN TRANSACTION, но забыли упомянуть COMMIT или ROLLBACK.