DefaultTost

Время чтения: 15 минут

Генерация кодов для промо

Максим С.
Время чтения: 15 минут

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

Основная проблема таких промо – техническая возможность печати кодов на упаковке или внутри нее. Поэтому такой вид промо не самый распространённый, так как гораздо проще и дешевле запустить чековое промо.

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

Проблема, с которой можно столкнуться – это простота подбора (угадывания) промокода путем последовательного перебора.

Для этого в Сервисе РromoBuilding существует антифрод модуль, блокирующий пользователей, которые занимаются перебором. Сначала пользователи получают временный бан, если история повторяется то перманентный, но сейчас не об этом. Сегодня поговорим о методе расчета оптимальной длины промокода, позволяющий противостоять случайному угадыванию.

 

Как же генерировать коды для промо?

Первое, что надо всегда помнить, это что люди все разные, кто-то уверенно пользуется компьютером и интернетом, а кто-то не дружит с ними совсем, но все они – наши дорогие пользователи и промо делается как раз для них.

Количество символов в коде (длина) один из главных параметров при генерации, который напрямую зависит от количества реализуемой Акционной продукции (АП). Чем больше АП тем больше символов должно быть в секретном коде, данная мера позволяет снизить фрод и подбор кодов программными алгоритмами. Однако слишком длинный код также плох, т.к. заставляет Пользователя напрячься и потратить немного больше времени.

Длину нам придётся вычислять (подбирать), а для этого сначала надо сформировать пул символов, чтобы посчитать мощность и вычислить количество всех возможных комбинаций. Чтобы подобрать оптимальную длину.

 

Количество Акционной продукции

Если Вы уже собрались проводить промо, то скорее всего это уже известная переменная. Количество реализуемой АП + 20% обязательный запас. Настоятельно рекомендуем делать запас кодов, т.к. потом догенерировать проблематично, а если останутся невостребованными, совершенно не страшно. Для удобства и простоты расчётов в примерах ниже предлагается использовать две выборки:
1. 40 млн. Акционной продукции + 20% = 50 млн. кодов.
2. 24 млн. Акционной продукции + 20% = 30 млн. кодов.

Записали или запомнили, они нам пригодятся ниже.

 

Мощность алфавита

Мощность алфавита промокода – количество буквенно-цифровых символов алфавита, из которых может состоять промокод. Например, если промокод состоит только из заглавных букв латинского алфавита и цифр десятичной системы счисления, то мощность алфавита равна 36 (26 букв латинского алфавита + 10 цифр).

ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

Если добавить строчные буквы латинского алфавита, то мощность алфавита станет равна 62 (26 заглавных букв + 26 строчных букв латинского алфавита + 10 цифр).

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
 

Самозванцы, шрифт и исключения

Даже если будет подобран отличный шрифт, то всё равно есть вероятность, что краска плохо пропечатается или в процессе транспортировки товара, нанесение может быть повреждено. Наша с вами задача исключить двусмысленность при прочтении кода, ниже перечислим подборку символов и цифр которые похожи друг на друга:

  • B похожа на 8;
  • Z похожа на 2;
  • V похожа на U;
  • g (G в нижнем регистре) похожа на 9;
  • I (L в нижнем регистре) похожа на 1, I (i в верхнем регистре) или J;
  • O похожа на 0, Q и D.

Можете заметить, что L в нижнем регистре (l) и i в верхнем регистре (I) вовсе не отличить друг от друга, но это разные символы.

Исключения необходимы, чтобы при «игре» шрифтов отсечь двусмысленность читаемого символа при похожих начертаниях. Данный подход позволит пользователю легко читать код и вводить его с первого раза.

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

В результате отсечения таких «самозванцев» у нас формируется новая мощность.

Есть несколько распространённых вариантов (уже с исключениями):

1. Верхний регистр и цифры:

ACEFGHKLMNPRSTWXY345679 - Всего 23 символа.

2. Верхний и нижний регистр и цифры:

abcdefhkmnpqrstwxyACEFGHKLMNPRSTWXY34567 - Всего 40 символов.

3. В случае корректно подобранного шрифта, можно отказаться от цифр и использовать только алфавит (исключение только L в нижнем регистре (l) и i в верхнем регистре (I)):

abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ - Всего 50 символа.

 

Количество всех возможных комбинаций промокодов

С мощностью определились, далее чтобы подобрать оптимальную длину нам нужно идти от обратного и знать сколько всего вариантов всех возможных комбинаций, чтобы потом рассчитать вероятность подбора кода. Поэтому нам в прямом смысле предстоит подбирать, для этого сначала использовать формулу:

Например, если мощность алфавита = 36, а длина промокода = 6, то количество всех комбинаций = 36⁶ = 2,176,782,336.

Таким образом формируется понимание о том, сколько комбинаций для разной длины, если брать из проверенных примеров выше получается:

1. Верхний регистр и цифры (Мощность 23):

  • При длине кода 6 символов получается 148,035,889 комбинаций.
  • При длине 7 символов 3,404,825,447 комбинаций. 
  • При 8 - 78,310,985,281 комбинаций;
  • А при 9 - уже 1,801,152,661,463.

2. Верхний и нижний регистр и цифры (Мощность 40):

  • 6 - 4,096,000,000;
  • 7 - 163,840,000,000;
  • 8 - 6,553,600,000,000;
  • 9 - 262,144,000,000,000.

3. В случае корректно подобранного шрифта (Мощность 50)

  • 6 - 19,770,609,664;
  • 7 - 1,028,071,702,528;
  • 8 - 53,459,728,531,456;
  • 9 - 2,779,905,883,635,712.

Пока не понятно, сохраняем всё и идём дальше.

 

Вероятность подбора промокода

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

Вероятность подбора промокода – процентное соотношение требуемого (запланированного) количества промокодов от количества всех возможных комбинаций промокодов. Вероятность подбора считается по формуле:

Например, требуется сгенерировать 50,000,000 промокодов длиной 6 символов для алфавита мощностью 36. Вероятность подбора будет составлять:

По нашему мнению, наиболее надёжным вариантом защиты будет любое условие, которое будет содержать менее 0,1% вхождения в состав возможных комбинаций.

Выше мы уже определились, что нам потребуется 50 млн. (первый пул) или 30 млн. кодов (второй пул), а также рассчитали количество комбинаций на предложенной мощности, продолжим с ними работать:

1. Верхний регистр и цифры (Мощность 23):

  • При длине кода 6 символов получается 148,035,889 комбинаций. Для первого пула 50 млн. процентное соотношение составит 33.78% для второго, который 30 млн. 20.27% 
  • При длине 7 символов 3,404,825,447 комбинаций.  Для первого пулла 1.47%, для второго 0.88%
  • При 8 - 78,310,985,281 комбинаций; Для первого 0.06, для второго 0.04
  • А при 9 - уже 1,801,152,661,463. В обоих вариантах менее сотой процента 

2. Верхний и нижний регистр и цифры (Мощность 40):

  • 6 - 4,096,000,000; - 1,22 и 0,73
  • 7 - 163,840,000,000; - 0.03 и 0,02
  • 8 - 6,553,600,000,000;  В обоих вариантах менее сотой процента 
  • 9 - 262,144,000,000,000.  В обоих вариантах менее сотой процента 

3. В случае корректно подобранного шрифта (Мощность 50)

  • 6 - 19,770,609,664; - 0,25 и 0,15
  • 7 - 1,028,071,702,528;  В обоих вариантах менее сотой процента 
  • 8 - 53,459,728,531,456;  В обоих вариантах менее сотой процента 
  • 9 - 2,779,905,883,635,712. В обоих вариантах менее сотой процента 

Как будто бы всё и стоило бы остановиться, всё же очевидно? Но нет, двигаемся дальше.

 

Расчет оптимальной длины промокода

Теперь, зная количество требуемых промокодов, мощность алфавита и вероятность подбора, можно рассчитать оптимальную длину промокода по формуле:

Предварительно нужно определить, какое значение вероятности подбора считать надежным. Это число вычисляется эмпирическим путём, но можно просто взять рекомендованное нами значение, не превышающее 0.1%. 

Например, необходимо рассчитать оптимальную длину промокода, если количество требуемых промокодов 50 млн., мощность алфавита 36, а вероятность подбора должна быть не более 0.1% Давайте подставим наши значения в формулу:

Для примера выше оптимальная длина промокода должна быть не менее 7 символов.

 

Альтернативный вариант

Да, есть и альтернативный вариант. Здесь снова всё упирается в техническую возможность печати таких кодов. Однако есть вариант напечатать не на упаковке, а положить внутрь АП стикер, на котором будет напечатан QR-код, в котором можно зашить хоть 20-30 символов. Данная мера позволит снизить фрод до нуля.

Казалось бы решение найдено? Нет этот вариант имеет 2 жирных минуса:

1. Для чтения QR кода потребуется QR считыватель, который обычно есть только в мобильных устройствах.

2. При возможном нарушении целостности упаковки или краски, вряд ли получится восстановить изображение.

 

Заключение и вывод

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

Любое дело требует внимания и погружения. Сгенерировать правильный код для промоакции не так сложно, как кажется, если иметь под рукой четкие руководство и формулы. Конечно, есть специальные сервисы, которые помогут разобраться с тонкостями кодового промо, но если предпочтительнее самостоятельная работа, то существуют практические инструкции и подсказки. Оптимальный метод расчета длины промокода изложен в этой статье. Он может быть полезен BTL и рекламным агентствам, а также интернет-магазинам.