Есть сайт, на который приходят люди с различных рекламных кампаний, что отражается в стандартных метках utm_medium, utm_campaign и так далее.
Люди приходят и скачивают программу. Собственно в этом и есть цель сайта - чтобы люди скачали себе программу.
После скачивания программы, люди в ней регистрируются, т.е. вводят свой email адрес и имя.
Задача состоит в том, чтобы можно было понять, по какой рекламной кампании зарегистрировался человек.
Есть такие варианты:
- стачить на сайте куку, и в десктопной программе после регистрации открывать окно браузера, передавать в адресной строке email человека и там же, на сайте, по куке определять все нужные параметры и сохранять их в БД
Этот метод плох тем, что необходимо открывать страничку. Не хочется этого делать.
- второй вариат - программой доставать куку из браузера и при регистрации передавать email + параметры из куки. Проблема в том, что за такую активность программу заблокируют антивирусы.
- остаётся третий вариант:
- при загрузке записываем в БД на сервере параметры, которые идентифицируют посетителя: разрешение экрана, ip адрес, версия ОС, другие полезные для этой цели параметны (ну и параметры для трэкинга (campaign, ...), получаем таким образом список параметров, которые достаточно уникально (судя по нашим логам) определяют посетителя (смотрите https://panopticlick.eff.org для вдохновения)
- делаем API, которое получает разрешение экрана, ip адрес, версию OС (это мин. набор, другие параметры приветствуются)
- из программы берем ip адрес, разрешение экрана, версию ОС, дергаем API и получаем параметры трэкинга, сохраненные в БД, и передаем их при регистрации и таким образом привязываем юзера к рекламной кампании, по которой он пришел
Результат работы:
- php скрипт, который записывает параметры посетителя + все параметры URL в базу, этот скрипт будет дергаться из всех страничек сайта, поэтому он должен ставить куку постетителю и не перетирать запись в БД при перемещении посетителя по страницам сайта
- php скрипт - API, в которое передаётся: версия ОС, разрешение экрана, IP адрес оно определяет само - и выдает сохраненные значения параметров UTM_Campaign и тп, либо выдает ошибки:
* ошибка 1 - такие параметры не найдены
* ошибка 2 - по таким параметрам находится более чем один пользователь