@Human1881

Как настроить трекинг данных пользователя в Django до логина?

Я недавно начал изучать веб программирование и Django, сейчас делаю реферальную программу, и для каждого пользователя который пришел на сайт, я хочу сохранять причину перовго визита mysite.my/?utm_source=affiliate&utm_medium=partner1 , дальше преобразовать ее в нормальный вид и таким образом в дальнейшем получать статистику по эффективности каждого из партнеров.

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

В теории как я понимаю:
Пользователь зашел на сайт -> ему в куки записали его utm_source=affiliate&utm_medium=partner1
При регистрации берем из куки информацию -> записываем в бд причину регистрации пользователя.

Но на практике я не понимаю как это все организовать, подскажите схожие статьи или с чего начать.
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hellpirat
Full stack developer (Python/Django, React.js)
Написал вам примерный код для регистрации юзера по реф системе. Возможно Вам поможет разобраться как работать с сессиями и get параметрами
def register(reqest):
  if request.method == 'POST':
      """
      Например у нас есть модель юзера и у нее есть уникальное поле с ref_hash 
      - регистрируем юзера   
      после того как юзера успешно зарегистрировали ищем по ref_hash юзера для вручения бонуса
      """
      try:
        ref = request.session.get('ref', None)
        user = User.objects.get(ref_hash = ref)
        # тут можно делать нужные вам бонусы для юзера
      except User.DoesNotExist:
        # тут можно обработать исключение
        pass
      # redirect/render/etc
  else: 
      """
      например у нас есть страница регистрации - пользователь заходит на нее по реф ссылке example.com/signup/?ref="hash-code"
      берем ref  и сохраняем в Django session
      """
      ref = request.GET.get('ref', None)
      request.session['ref'] = 'ref'
      # рендер страницы


В вашем случае скорей всего придеться писать middleware https://docs.djangoproject.com/en/1.11/topics/http... которая будет брать первый заход юзера и записывать в базу его статистику
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы