Как-то раз, в процессе создания новых лендов из существующих, я менял заголовки, правил тексты, пробовал разные надписи на кнопках и заметил, что изменения на лендах обычно не значительны, но при этом приходится создавать новые папки и файлы. Через месяц активной работы часто скапливается большие количество всевозможных вариаций лендов с именами типа: var2-iter1-2, white3-iter2-3, scanner4-button5-text1 и т. д. Кроме того, лендинги часто требуется переводить, и сделать это очень проблематично, когда они находятся в неупорядоченном виде. Тексты приходится копировать с каждого лендинга отдельно, искать его либо в коде, либо открывать каждый в браузере и копировать оттуда.

Я решил этот процесс оптимизировать: как создание лендингов, так хранение и перевод. Написал для себя небольшой скрипт index.php (написан для трекера imobitrax. В Voluume не нужен include lp_track.php, по другому передаются параметры устройства. Переделать под него несложно.) Некоторую версию предоставлю вам, друзья, для примера.

Что делает этот скрипт?

Это корневой, главный файл лендинга. PHP генерирует его код, как любая CMS генерирует код сайта. Это, по сути, и есть мини-CMS.
Скрипт собирает лендинг, исходя из переданных ему параметров.

Например:

http://domain.com/index.php?h=1&txt=5&btxt=1&tmp=2&lg=EN

Параметр h=1 — говорит скрипту, чтобы брал из базы заголовок 1.
txt=5 — взять текст 5
btxt=1 — взять текст кнопки 1
tmp=2 — использовать шаблон лендинга 2
lg=EN — тексты на английском

Откуда скрипт берет информацию?

Я не стал усложнять скрипт и лишний раз нагружать сервер, поэтому вся база данных представляет из себя один файл для каждого языка.
В папке data (исходники в конце статьи), есть несколько файлов en.php es.php … В каждом хранится информация на соответствующем языке.

К слову, сюда можно записывать абсолютно любые параметры, которые вы хотите использовать на лендинге: цвет фона, цвет текста и т. д, — но усложнять тоже не советую.

В папке templates содержатся шаблоны лендингов. Каждый шаблон в своей папке, с картинками.
В шаблонах используются следующие макросы:
{h1} — место для заголовка
{text} — место для текста
{btext} — место для текста кнопки

Скрипт берет нужный шаблон (по номеру в параметре запуска) и заменяет макросы на тексты со соответствующими номерами из базы данных нужного языка.

Применение

Мы собрали хорошую базу из текстов, сделали парочку шаблонов и решили сделать MVT-тестирование на какой-то оборотистой кампании. Наши действия.
Допустим, мы захотели протестировать 5 заголовков при одинаковых остальных параметрах.

В итоге у нас получаются такие ссылки на лендинги:
http://domain.com/index.php?h=1&txt=5&btxt=1&tmp=2&lg=EN
http://domain.com/index.php?h=2&txt=5&btxt=1&tmp=2&lg=EN
http://domain.com/index.php?h=3&txt=5&btxt=1&tmp=2&lg=EN
http://domain.com/index.php?h=4&txt=5&btxt=1&tmp=2&lg=EN
http://domain.com/index.php?h=5&txt=5&btxt=1&tmp=2&lg=EN

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

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

Всем спасибо за внимание

https://www.sendspace.com/file/f2cae4 — Исходники