Триггерится что это в программировании
Триггеры
Определение триггеров
Триггеры представляют специальный тип хранимой процедуры, которая вызывается автоматически при выполнении определенного действия над таблицей или представлением, в частности, при добавлении, изменении или удалении данных, то есть при выполнении команд INSERT, UPDATE, DELETE.
Формальное определение триггера:
Затем устанавливается тип триггера. Мы можем использовать один из двух типов:
AFTER : выполняется после выполнения действия. Определяется только для таблиц.
Для триггера AFTER можно применять сразу для нескольких действий, например, UPDATE и INSERT. В этом случае операции указываются через запятую. Для триггера INSTEAD OF можно определить только одно действие.
И затем после слова AS идет набор выражений SQL, которые собственно и составляют тело триггера.
Создадим триггер. Допустим, у нас есть база данных productsdb со следующим определением:
Определим триггер, который будет срабатывать при добавлении и обновлении данных:
Допустим, в таблице Products хранятся данные о товарах. Но цена товара нередко содержит различные надбавки типа налога на добавленную стоимость, налога на добавленную коррупцию и так далее. Человек, добавляющий данные, может не знать все эти тонкости с налоговой базой, и он определяет чистую цену. С помощью триггера мы можем поправить цену товара на некоторую величину.
Таким образом, триггер будет срабатывать при любой операции INSERT или UPDATE над таблицей Products. Сам триггер будет изменять цену товара, а для получения того товара, который был добавлен или изменен, находим этот товар по Id. Но какое значение должен иметь Id такой товар? Дело в том, что при добавлении или изменении данные сохраняются в промежуточную таблицу inserted. Она создается автоматически. И из нее мы можем получить данные о добавленных/измененных товарах.
И после добавления товара в таблицу Products в реальности товар будет иметь несколько большую цену, чем та, которая была определена при добавлении:
Удаление триггера
Для удаления триггера необходимо применить команду DROP TRIGGER :
Отключение триггера
Бывает, что мы хотим приостановить действие триггера, но удалять его полностью не хотим. В этом случае его можно временно отключить с помощью команды DISABLE TRIGGER :
А когда триггер понадобится, его можно включить с помощью команды ENABLE TRIGGER :
Система управления базами данных SQLite. Изучаем язык запросов SQL и реляционные базы данных на примере библиотекой SQLite3. Курс для начинающих.
Тема 13: Триггеры в SQL на примере базы данных SQLite
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Тем в рубрике SQLite осталось не так уж и много. Вернее про SQLite можно писать очень много, долго и упорно, и всё равно часть вопросов останется не освещенной и освещенной не в полной мере. Под словосочетанием «тем осталось немного» я понимаю следующее: мы практически закончили изучать реализацию SQL в библиотеки SQLite. Задачу, которую я сам перед собой поставил, можно озвучить следующим образом: дать начинающему разработчику максимально понятное и подробное представление о языке SQL, а в качестве примера используется библиотека SQLite. В данной теме мы поговорим о том, что собой представляют триггеры в SQL на примере базы данных под управлением SQLite. Тему триггеров я не стал делить на части, поэтому запись получилось довольно объемной(более 4300 слов, поэтому пользуйтесь постраничной навигацией).
Триггеры в SQL на примере базы данных SQLite
Отсутствие деления темы SQL триггеров на части не вызвано желанием написать огромный текст, просто все разделы данной записи очень тесно связаны между собой и я не захотел разбивать эту связь, делая деление на части. Итак, поехали! По традиции небольшая аннотация к записи:
Что такое триггер в контексте SQL? Использование триггеров в базах данных SQLite
Триггер – это особая разновидность хранимых процедур в базе данных. Особенность триггеров заключается в том, что SQL код, написанные в теле триггера, будет исполнен после того, как в базе данных произойдет какое-либо событие. События в базах данных происходят в результате выполнения DML команд или команд манипуляции данными. Если вы помните, то к командам манипуляции данными относятся: UPDATE, INSERT, DELETE и SELECT.
Команду SELECT мы не берем в расчет из-за того, что она никак не изменяет данные в базе данных, а лишь делает выборку данных. Основное назначение триггеров заключается в обеспечение целостности данных в базе данных, еще при помощи триггеров в SQL можно реализовать довольно-таки сложную бизнес-логику.
SQL код, написанный в теле триггера, будет выполнен автоматически, как только в базе данных произойдет одно из трех, указанных выше событий. Также мы можем задать самостоятельно события, по которым триггер будет срабатывать, а также SQL таблицу, для которой триггер будет срабатывать.
Для любой СУБД триггер – это в первую очередь объект базы данных, поэтому имя триггера должно быть уникальным во всей базе данных, SQLite в этом плане не исключение. У триггеров в SQL есть момент запуска. Момент запуска триггера можно разделить на два вида: BEFORE и AFTER. Момент запуска триггера AFTER говорит о том, что триггер будет запущен после выполнения какого-либо события в базе данных. Соответственно, момент запуска триггера BEFORE говорит о том, что триггер будет запущен до выполнения события в базе данных.
Мы еще поговорим про представления или VIEW в SQL, и вы узнаете, что SQLite позволяет только читать данные из VIEW, в отличии, скажем, от MySQL или Oracle. Триггеры могут быть назначены для представлений с целью расширить набор операций манипуляции данными того или иного представления. Такой вид триггеров получил название INSTEAD OF триггер.
Итак, триггеры можно разделить на три вида по их применению:
Так же мы можем разделить триггеры по типам SQL команд:
В некоторых СУБД триггер – это довольно мощное и полезное явление. Будьте аккуратны, используя триггеры, не используйте триггеры в рабочих базах данных. Перед тем, как реализовать триггер, создайте тестовую базу данных и посмотрите, что в итоге получится. Неправильный составленный триггер может навредить вашему проекту, повредив часть данных или удалив данные из базы данных.
Давайте перечислим самые распространенные функции триггеров:
Давайте приступим к рассмотрению триггеров на примере библиотеки SQLite.
SQL синтаксис триггеров в базах данных SQLite
Здесь мы коротко рассмотрим SQL синтаксис триггеров, реализованный в реляционных базах данных под управлением библиотеки SQLite3. Ранее мы уже говорили о том, как создать триггер, когда разбирались с командой CREATE в SQLite (у нас был раздел CREATE TRIGGER) и мы рассматривали, как удалить триггер, когда разбирались с особенностями команды DROP в SQLite3 (раздел DROP TRIGGER). Давайте повторим и дополним уже имеющуюся информацию о триггерах. Общий SQL синтаксис создания триггеров в SQLite вы можете увидеть на рисунке ниже.
Общий синтаксис создания триггера в базе данных под управлением SQLite3
Мы видим, что операция по созданию триггера начинается с команды CREATE, как и операция создания таблицы в базе данных, это обусловлено тем, что триггер, как и таблица, является объектом базы данных.
Далее идет модификатор TEMP или TEMPORARY, этот модификатор необязательный и его можно опускать. Временный триггер будет доступен только для того пользователя, который его создали, а существовать временный триггер будет до тех пор, пока пользователь не разорвет соединение или же пока не удалит его.
Далее мы указываем, что хотим создать триггер при помощи ключевого слова TRIGGER. Мы можем воспользоваться оператором EXISTS, чтобы проверить существует ли триггер в базе данных, перед тем как его создать. Данная проверка не является обязательно, но если вы попытаетесь создать триггер, который уже существует в базе данных, то произойдет ошибка, а программный код, отправлявший такой запрос, может быть остановлен.
После ключевого слова TRIGGER мы указываем его имя, имя триггера должно быть уникальным во всей базе данных. Так же мы можем использовать квалификатор, чтобы указать полное имя триггера, состоящее из имени базы данных, в которой будет создан триггер и непосредственно имени триггера.
Далее мы указываем как мы хотим, чтобы триггер работал: для VIEW – INSTEAD OF, перед выполнением SQL команды – BEFORE, после выполнения SQL операции – AFTER. После чего мы связываем триггер с той или иной командой. Обратите внимание: для всех трех команд манипуляции данными обязательным является указание таблицы или представления, для которых триггер создается, а вот для команды UPDATE можно указать еще и столбец, который будет отслеживать триггер.
Обратите внимание: мы можем создавать строковые триггеры при помощи конструкции FOR EACH ROW. Обычно триггеры создаются для какой-нибудь команды и, соответственно, выполняются по событию DELETE, UPDATE или INSERT, но мы можем сделать так, чтобы код триггера вызывался после изменения каждой строки таблицы при помощи конструкции FOR EACH ROW.
Так же стоит отметить, что выше мы говорили не совсем правду в контексте SQLite3. Многие СУБД поддерживают две разновидности триггеров: табличные и строчные. Строчные триггеры создаются при помощи конструкции FOR EACH ROW, но в SQLite нет табличных триггеров, поэтому даже если вы не укажите FOR EACH ROW явно, SQLite будет считать триггер строчным.
Также вы можете использовать уточняющую фразу WHEN, с которой мы разберемся на примере ниже. После того, как вы описали триггер, вы можете задать SQL команды, которые будут выполняться по тому или иному событию, другими словами – создать тело триггера. В теле триггера, создаваемого в базе данных SQLite, можно использовать четыре команды манипуляции данными: INSERT, UPDATE, SELECT, DELETE. Команды определения данных, команды определения доступа к данным и команды управления транзакциями в теле триггера SQLite не предусмотрены. Но нам стоит заметить,что триггеры, выполняя команды и отлавливая события сами работают так, как будто это транзакция.
Обратим внимание на то, что перечисленные команды в теле триггера поддерживают свой практически полный синтаксис. Например, вы можете составить сколь угодно сложный SQL запрос SELECT, в котором будете объединять таблицы или объединять результаты запросов. Чтобы сообщить SQLite, что тело триггера закончилось, используйте ключевое слово END.
Итак, мы разобрались с SQL синтаксисом создания триггеров, давайте посмотрим на SQL синтаксис удаления триггеров. SQL синтаксис удаления триггеров, реализованный в SQLite3, представлен на рисунке ниже.
Синтаксис удаления триггеров из базы данных SQLite
Для удаления триггера, как и для удаления таблицы из базы данных, используйте команду DROP. Далее идет ключевая фраза TRIGGER, которая сообщает SQLite о том, что вы хотите удалить триггер из базы данных, после чего вы можете сделать проверку IF EXISTS, о которой мы не раз уже говорили. И в конце указываете имя триггера или квалификатор. Как видите, удалить триггер намного проще, чем его создать.
Давайте перейдем к примерам использования триггеров в базах данных под управлением SQLite.
SQL событие BEFORE: выполнение триггера перед запросом
Итак, не забываем, что триггер создается для какой-либо конкретной таблицы и отслеживает события, происходящие с таблицей, для которой он создан. В SQLite нет табличных триггеров, а есть только триггеры строчные, то есть FOR EACH ROW триггеры, которые срабатывают при изменении каждой строки в таблице.
Давайте напишем триггер, который будет срабатывать при вставке данных в базу данных, до того, как будет выполнена операция вставки. Но сначала создадим две таблицы, в первой мы будем хранить информацию о покупателе, во второй дату его посещения:
Триггер (базы данных)
Более простое определение триггера звучит так следующим образом.
Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).
Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции.
Момент запуска триггера определяется с помощью ключевых слов BEFORE (триггер запускается до выполнения связанного с ним события; например, до добавления записи) или AFTER (после события). В случае, если триггер вызывается до события, он может внести изменения в модифицируемую событием запись (конечно, при условии, что событие — не удаление записи). Некоторые СУБД накладывают ограничения на операторы, которые могут быть использованы в триггере (например, может быть запрещено вносить изменения в таблицу, на которой «висит» триггер, и т. п.)
Кроме того, триггеры могут быть привязаны не к таблице, а к представлению (VIEW). В этом случае с их помощью реализуется механизм «обновляемого представления». В этом случае ключевые слова BEFORE и AFTER влияют лишь на последовательность вызова триггеров, так как собственно событие (удаление, вставка или обновление) не происходит.
В некоторых серверах триггеры могут вызываться не для каждой модифицируемой записи, а один раз на изменение таблицы. Такие триггеры называются табличными.
Содержание
SQL синтаксис определения триггеров
Полный синтаксис выглядит так:
Естественно, в языке имеется и конструкция, отменяющая определение триггера:
DROP TRIGGER trigger_name. (Конструкция ALTER TRIGGER в языке SQL не поддерживается.)
Синтаксические правила допускают несколько разновидностей определения триггера. Кратко обсудим эти разновидности.
Триггеры BEFORE и AFTER
Триггеры INSERT, UPDATE и DELETE
Заметим, что в стандарте SQL:1999 отсутствует возможность определения триггеров, для которых событием было бы выполнение операции выборки из предметной таблицы. Разработчики стандарта сочли, что область применения триггеров такого рода чересчур узка (трудно придумать какое-либо применение, кроме как для журнализации и аудита).
Триггеры ROW и STATEMENT
Раздел WHEN
Тело триггера
Простой синтаксис создания триггера
Примеры
В этом случае для отличия табличных триггеров от строчных вводится дополнительные ключевые слова при описании строчных триггеров. В Oracle это словосочетание FOR EACH ROW.
Подробнее о триггерах
История появления триггеров
Термин триггер в контексте реляционных баз данных был введен в обиход участниками проекта System R. В терминологии этого проекта триггером называлась хранимая в базе данных процедура, автоматически вызываемая СУБД при возникновении соответствующих условий. При определении триггера указывались два условия его применимости – общее условие (имя отношения и тип операции манипулирования данными) и конкретное условие (логическое выражение, построенное по правилам, близким к правилам ограничений целостности), а также действие, которое должно быть выполнено над БД при наличии условий применимости.
Конечно, термин триггер в данном контексте является жаргонным. Но, с другой стороны, он достаточно точно соответствует ситуации: для применения процедуры должны быть произведены «возбуждающие» ее действия. Как отмечалось в лекции 15, после завершения проекта System R на протяжении более десяти лет триггеры не поддерживались ни в одной коммерческой SQL-ориентированной СУБД. Но затем практически во всех ведущих СУБД механизм триггеров в том или ином виде был реализован.
В стандарте же языка SQL спецификации триггеров отсутствовали до принятия стандарта SQL:1999. По словам главного редактора стандартов SQL/92 и SQL:1999 Джима Мелтона, эта спецификация была уже полностью готова к моменту принятия SQL/92 и не вошла в текст стандарта только по причине ограниченности его объема. Однако, как мне кажется, этому препятствовали и расхождения в подходах, существовавшие между основными компаниями-производителями СУБД.
Заметим, что альтернативным термином по отношению к базам данных, содержащим триггерные процедуры, является термин активная база данных. Наверное, этот термин более точен, поскольку действительно речь идет о базах данных, содержащих процедуры, которые автоматически вызываются при срабатывании связанных с ними правил. Однако в обиходе пользователей SQL-ориентированных СУБД по-прежнему более распространен термин триггер.
Понятие триггера в SQL:1999
Триггерымогут срабатывать после и до реального выполнения инициирующего оператора SQL. В теле триггера допускается доступ к значениям вставляемых, модифицируемых и удаляемых строк. В случае операции модификации возможен доступ к значениям строк до модификации и к значениям после модификации. В соответствии со стандартом SQL:1999 любой триггер ассоциируется только с одной базовой таблицей. Не допускается определение триггеров над представлениями.
Можно придумать различные способы полезного применения механизма триггеров, но принято считать, что основными областями использования этого механизма являются следующие.
На практике при определении триггеров в качестве SQL_procedure_statement чаще всего используются операторы SQL обновления базы данных. Иногда (и мы покажем это на примере) для корректного определения функциональности триггера одного оператора не хватает, а в SQL отсутствует возможность определения составных операторов. Поэтому допускается использование средств определения составных операторов, присутствующих в SQL/PSM ( BEGIN ATOMIC и END ).
Триггеры: что это и как их используют в психологии и маркетинге
Почему триггер называют спусковым крючком
Слово «триггер» (англ. trigger) дословно переводится как «спусковой крючок». Оно появилось как производное от голландского trekken (тянуть) и с 1650-х годов звучало как «трикер», а уже позже перешло в разговорную форму «триггер».
Представьте, что мужчина идет по улице и спешит в офис. Вдруг он видит толпу. Ему становится любопытно, из-за чего собрались эти люди. Это подталкивает его сменить курс: остановиться и узнать, в чем дело. В данном случае толпа — триггер.
Сегодня понятие «триггер» используют в разных областях. В психологии так называют стимулы, которые вызывают яркие, чаще негативные эмоции и реакции. В маркетинге — приемы, которые заставляют покупать. В медицине триггеры — это факторы, которые провоцируют приступ или приводят к заболеванию. Например, изменение погоды может стать триггером головной боли. В соцсетях встречается выражение triggered или «триггерит», что обычно означает «вызывает гнев».
Как работают триггеры
Триггеры часто формируются именно в стрессовых условиях. Если человек находится в угрожающей жизни или здоровью ситуации, его мозг запускает механизм, который включает одну из трех реакций: бежать, нападать или замереть. Но когда опасность миновала и жизни ничего не угрожает, нервная система все равно может оставаться в режиме повышенной боеготовности.
Елена Барабанова, клинический психолог, преподаватель психологии, специалист платформы «Ясно»:
Допустим, человека укусила собака. Событие прошло, но психологическая травма осталась. Каждый раз, проходя злополучное место, он сжимается и не чувствует тело, ему становится нечем дышать. Психика делает это только с одной целью — уберечь человека. Ведь если собака снова нападет, он сможет быстро среагировать в стрессовой ситуации и спастись. Как мы видим, происходят серьезные биохимические изменения, часто приводящие к хроническому стрессу и вторичным реакциям — бессоннице, паническим атакам, повышенной тревожности».
Триггеры также часто запускают воспоминания, которые, в свою очередь, приводят к эмоциям и действиям. Но механизмы работы человеческого мозга, в том числе процесс формирования памяти, еще не до конца изучены. Нейробиологи считают, что запоминание — это кодирование информации в нейронах. Мозг получает информацию из внешнего мира с помощью пяти чувств — зрения, обоняния, осязания, вкуса и слуха, — а затем обрабатывает ее, сортирует и записывает, словно компьютер на жесткий диск.
Когда мы впервые встречаем человека, зрительная система регистрирует цвет его глаз, волос и другие физические особенности. Органы слуха улавливают тембр его голоса. Органы дыхания воспринимают запах его парфюма. Взаимодействуя с этим человеком, мы испытываем определенные эмоции. Каждое из ощущений и переживаний поступает в гиппокамп — отдел головного мозга, который участвует в формировании памяти. Мозг связывает биты новой информации между собой и закрепляет ее в разных группах нейронов. А когда возникает внешний стимул, мозг ассоциирует его с записанными данными и воспроизводит воспоминания. Так, через несколько лет, вдохнув запах знакомого парфюма, мы вспоминаем конкретного человека, связанные с ним переживания и эмоции. Возможно, у нас появляется желание ему позвонить. В данном случае запах выступает триггером.
Елена Барабанова:
«Триггер запускается определенным стимулом извне: запахом, звуком, вкусом, образом. Органы посылают мозгу сигнал, который запускает автоматическую реакцию. Но сперва состоится работа анализаторов головного мозга: зрительного, двигательного и т. д. После того как сигналы из головного мозга поступают обратно к органам и системам организма, мы видим реакцию: человек пугается, убегает, вступает в драку, плачет и т. д.
Опираясь на учения Ивана Павлова, мы знаем, что в коре головного мозга сосредоточено большое количество анализаторов и каждый из них автономен, но при этом также взаимозависим. Это [анализаторы] связанное между собой функциональное объединение. Функциональная система коры головного мозга — сложная иерархическая структура. Говоря простым языком, одновременно и поочередно все анализаторы коры головного мозга задействованы в формировании реакции на триггер».
Триггером может стать что угодно: звуки, образы или ситуации, которые в прошлом спровоцировали яркую реакцию. Но именно запахи способны вызвать больше эмоциональных воспоминаний по сравнению с вербальными или визуальными стимулами. Эту особенность назвали феноменом Пруста в честь французского писателя, который описал подобные переживания в своем романе «По направлению к Свану»: запах печенья «Мадлен» мгновенно перенес его в яркий насыщенный эпизод воспоминания из детства.
Триггеры в психологии
В психологии понятие «триггер» чаще используется в негативном ключе. Так называют любой внешний фактор, который заставляет человека вспомнить, как правило, травматичный опыт из прошлого.
Елена Барабанова:
«Сам по себе триггер запускает определенную, как правило, эмоциональную реакцию боли, страха, вины, стыда и т. д. Вот вы пришли в регистратуру поликлиники, на вас неодобрительным взглядом посмотрел регистратор и задал несколько вопросов громким и жестким голосом. И вы чувствуете, как голос дрожит, ноги становятся ватными, вам сложно вздохнуть и дать адекватный ответ. Что произошло? Да ничего особенного. Но вот эти — взгляд, тон голоса, уровень громкости голоса — триггеры, которые запустили эмоциональный ответ. Эмоциональная реакция была закреплена много лет назад: все пять лет в детском саду у вас была строгая воспитательница, которая общалась с вами именно в таком тоне».
Негативные триггеры
Негативные триггеры вызывают у людей бессознательную, часто даже деструктивную реакцию. Контролировать эмоции и действия в подобной ситуации становится практически невозможно.
Елена Барабанова:
«Триггеры есть у каждого из нас, но у всех разные. Один может прийти в ужас от замечания со стороны начальника, а другой впадет в панику при виде соседской крупной собаки.
Триггеры могут мешать. Представим, что вы мечтаете реализовать себя в социальной или политической деятельности. Вам предстоит вести переговоры, доказывать свою точку зрения, проявлять требовательность и настойчивость, выдвигать собственные инициативы. Но как только вы попадаете в кабинет руководящего лица, начинает «крутить» живот, подступает тошнота, и вы сразу прекращаете диалог. Вряд ли подобные реакции будут способствовать продвижению по службе».
Определенные запахи, фразы, звуки или ситуации могут стать триггерами для тех, кто пережил:
Например, человек попал в аварию, на некоторое время застрял в замкнутом пространстве салона и испытал сильный стресс. Пару лет спустя он уже не вспоминает тот несчастный случай и не боится поездок в авто. Но однажды на выходе из кабинки уборной в торговом центре он не может открыть заевшую щеколду. Это напоминает ему ситуацию во время аварии и вызывает приступ паники и страх.
Елена Барабанова:
«В психике закрепляются все события. Часть из них выходит в так называемую зону осознавания, а часть так и остается в бессознательном. Нам известно, что закрепиться в памяти могут события, оказавшие на нас сильное эмоциональное воздействие. Это могут быть как приятные, так и трагические события. А может быть наоборот. Неприятные воспоминания вытесняются в бессознательное, и человек их «забывает».
Память «рандомно» выдает нам воспоминания. Например, человек, проходя по улицам своего детства, предается приятным воспоминаниям. Картинки прошлого всплывают в сознании, появляется чувство радости и спокойствия. Что повлияло на это? Определенная обстановка, которая уже была знакомой и родной. А еще — его собственная нужда в этих воспоминаниях. Нелегким был этот год для человека, вот он и решил поехать на родину. То есть воспоминания всегда есть и будут, но «пользоваться» ими человек сможет только при определенных обстоятельствах. Если бы мы помнили все, то мы давно бы запутались в жизни».
Просмотр сцен, напоминающих о травме или несчастном случае, тоже может вызвать негативную реакцию. Поэтому в фильмах и роликах в интернете часто встречается предупреждение о потенциально неприятном контенте. Правда, последние исследования показали, что такое информирование не помогает избежать болезненных воспоминаний и люди с психологическими травмами все равно испытывают стресс во время просмотра.
Позитивные триггеры
Триггеры могут быть позитивными и даже полезными для человека. Существует ряд внешних стимулов, которые могут вызвать автономную сенсорную меридиональную реакцию (АСМР). Это явление, при котором человек испытывает приятное покалывание по всей коже головы, задней части шеи и в других областях в ответ на звуковые и визуальные триггеры. Ощущение сопровождается чувством расслабления и хорошего самочувствия. Британские психологи-исследователи определили несколько подобных триггеров.
Популярные триггеры в маркетинге
В маркетинге продающий триггер — это прием, который мотивирует человека совершить определенное действие: перейти на сайт, подписаться на рассылку, оставить комментарий или номер телефона, купить продукт. Обычно триггеры становятся катализатором, который вызывает эмоции: страх, радость, гнев, жадность, зависть, вожделение и так далее.
Мы собрали несколько популярных триггеров, которые часто используют маркетологи.
Дефицит
Люди склонны больше ценить то, что менее доступно. Поэтому маркетологи часто создают искусственный дефицит, используя ограничение по времени или по количеству товара. Фразы вроде «осталось всего пять штук», «акция действует для первых 20 покупателей» и прочие триггеры встречаются практически везде — от супермаркетов с продуктами до сайтов с образовательными курсами.
Юлия Сяглова, доцент кафедры маркетинга и рекламы факультета рыночных отношений ИОМ РАНХиГС:
«Сейчас мы живем в цифровом мире, где получить информацию — дело нескольких минут. Многие покупатели (в некоторых сегментах до 50% от общего числа) этим пользуются и действуют по определенной модели ответственного поведения. Например, человек бежит в торговом центре мимо магазина, видит какой-то товар с супервыгодным предложением, но он не покупает его сразу. Сперва он дома в спокойной обстановке изучает товар, сравнивает цены, читает характеристики. Оценивает, нужно ему делать покупку или нет. И только потом принимает решение».
Жадность
Чаще всего этот триггер встречается во время распродаж, например «черной пятницы». Онлайн- и офлайн-магазины пестрят баннерами и вывесками, которые обещают выгоду: «Скидки до 90%», «Три товара по цене двух», «Купи продукт и получи подарок» и так далее. Желание заплатить меньше и получить больше движет человеком. Он совершает необдуманные покупки и приобретает вещи, которые, возможно, никогда не использует.
Юлия Сяглова:
«На самом деле сейчас покупатели склонны четко планировать покупки, особенно онлайн. Прежде чем оплатить корзину, человек смотрит на сумму и думает, точно ли ему это нужно. Импульсных продаж сейчас меньше, чем в доковидную эпоху. Поэтому в онлайн-сегменте объемы розничного товарооборота, конечно, растут, но восстанавливаются достаточно проблемно.
В офлайне история немного другая. Мы ходим по магазину, набираем себе в тележку какие-то товары и уже потом на кассе начинаем смотреть на увеличивающуюся сумму. И тут нас начинает тревожить, сколько мы заплатим. Многим покупателям сложно и неудобно отказаться, сказать: «Я вот это не хочу покупать». В итоге человек оплачивает эту покупку, но выходит при этом полностью расстроенный, потому что деньги потрачены».
Страх
Безопасность — одна из базовых потребностей человека, чем умело манипулируют маркетологи. Например, в рекламных роликах Volkswagen автомобиль попадает в аварию. Так создатели демонстрируют надежность авто, ведь никто из пассажиров не пострадал и не получил травм. Рекламный ход помог увеличить продажи марки автомобиля на 17%.
Еще один пример триггера страха — использование темы коронавируса в рекламе противовирусных препаратов. Ролики и баннеры прямо рекомендуют определенные препараты как средства для профилактики и лечения вируса. По мнению пресс-секретаря комиссии РАН по противодействию фальсификации научных исследований Петра Талантова, такая реклама — дезинформация с целью наживы на панике населения.
Радость и любовь
Крупные бренды детского питания часто используют подобные триггеры. Например, рисуют иллюстрацию медведицы и медвежонка на упаковке. Картинка вызывает нежные чувства и ассоциируется с материнской любовью. Так бренд реализовывает потребность мамы проявлять нежность и заботу даже через упаковку.
Взаимный обмен
В процессе социальной эволюции между людьми возникло негласное правило взаимного обмена. Оно предполагает, что, получив услугу или подарок, человек отдает что-то взамен из чувства признательности. Поэтому в сфере продаж так часто встречаются бесплатные пробники или неожиданные подарки.
Контраст
Суть триггера заключается в том, чтобы продемонстрировать человеку ощутимую разницу между двумя вещами. Если мы сначала поднимем легкую сумку, а затем тяжелую, вторая покажется тяжелее, чем есть на самом деле, из-за контраста ощущений. Этот принцип используют, к примеру, автомобильные дилеры. Сначала они дожидаются согласия покупателя на покупку машины за несколько сотен тысяч рублей. И только потом начинают предлагать аксессуары, которые обойдутся в десятки тысяч. При заключении сделки на покупку авто стоимость чехлов, ковриков и прочих атрибутов кажется незначительной. Поэтому покупатель с легкостью на них соглашается, чем значительно увеличивает итоговый чек.
Визуальные триггеры
В природе существует большое количество сенсорных триггеров, которые сообщают нам информацию. Один из таких — яркий цвет. Сотрудники маркетинговой компании Elmwood использовали подобный визуальный триггер при создании упаковки чая. Они окрасили ее в предупреждающие цвета природы, которые ассоциируются с пчелами и осами, — черный и желтый. Таким образом они пытались привлечь внимание покупателей к конкретной марке чая на полке. Результаты говорят сами за себя: за первый год было продано 20 млн упаковок без какой-либо дополнительной маркетинговой поддержки.
Юлия Сяглова:
«Визуальные триггеры постоянно используются в офлайн-мерчандайзинге. Например, можно придать товару сильный визуальный отклик, положив его в определенное место на полке: на уровень рук покупателя или на уровень глаз. А дешевый товар размещают, как правило, на уровне колен. Так покупатель психологически понимает — раз товара много, он дешевый, за ним нужно нагнуться, значит, ничего особенного в нем нет.
Если говорить про онлайн-маркетинг, то речь идет про формирование визуальных страниц. Это может быть сам каталог товаров и определенные карточки внутри него: кликабельные баннеры или дополнительные маячки, которые привлекают внимание человека и заставляют посмотреть, что там под ними кроется».
Как отследить и контролировать триггеры
Некоторые триггеры можно предвидеть, но многие из них часто застают человека врасплох. Психологи, психотерапевты и психиатры помогают установить связь между сильными эмоциональными реакциями и триггерами. В процессе работы с пациентом они разрабатывают стратегии преодоления, которые помогут управлять эмоциями, когда человек столкнется с триггерами.
Елена Барабанова:
«Говорить о наличии негативных триггеров можно, когда вы замечаете за собой сложную эмоциональную реакцию при вполне благоприятных обстоятельствах. Например, ваша мама пригласила вас на семейный ужин, вы приезжаете к ней в гости и физически чувствуете, как «скукоживаетесь». Вам сложно рассказывать о себе, вы тревожитесь, что на ваш рассказ ответит мама. Или вы получаете СМС от начальника с просьбой в начале рабочего дня зайти к нему в кабинет. Эту ночь вы плохо спите, часто встаете, прокручиваете ваш диалог в голове. И главное в этих ситуациях — неспособность прекратить происходящее.
Для того чтобы отследить триггер, нужно взять за привычку задавать себе вопросы. «Что я чувствую?», «Что происходит с моим телом, как оно реагирует?», «Что я делаю в ответ на ситуацию (боюсь, убегаю, стыжусь, теряю веру в себя, кричу и т. д.)?», «Что именно вызвало во мне такую реакцию (голос начальника, тон маминого разговора)?» Эти вопросы помогут определить, как запускается триггер.
Если триггер повлек за собой эмоциональную реакцию, важно вернуть себе опору. Первая наша опора — наше собственное тело. Почувствуйте свое тело — ноги, руки, спину, — почувствуйте свое дыхание — оно должно быть диафрагмальным, т. е. брюшным, — найдите в пространстве предметы, привлекающие ваше внимание. Например, при панических атаках можно найти десять красных предметов, десять предметов интерьера и т. д. Ну, а освободиться от влияния триггеров можно, обратившись к психологу».