From b64777b94ae983fde729bdcb0a6f4fc4c05cc7e1 Mon Sep 17 00:00:00 2001 From: Wim Brand Date: Sun, 23 Feb 2020 12:27:35 +0100 Subject: [PATCH] ad goal tracking --- webcontroller/ad_click.go | 13 +++++++++++++ webcontroller/web_controller.go | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/webcontroller/ad_click.go b/webcontroller/ad_click.go index 27f3716..705a539 100644 --- a/webcontroller/ad_click.go +++ b/webcontroller/ad_click.go @@ -2,6 +2,7 @@ package webcontroller import ( "net/http" + "time" "fornaxian.com/pixeldrain-api/util" @@ -26,3 +27,15 @@ func (wc *WebController) serveAdClick(w http.ResponseWriter, r *http.Request, p log.Warn("Failed to log view") } } + +func (wc *WebController) serveCampaignPartner(w http.ResponseWriter, r *http.Request, p httprouter.Params) { + http.SetCookie(w, &http.Cookie{ + Name: "pd_campaign", + Value: p.ByName("id"), + Path: "/", + Expires: time.Now().Add(time.Hour * 24), + }) + + // Redirect the user to the home page + http.Redirect(w, r, "/", http.StatusTemporaryRedirect) +} diff --git a/webcontroller/web_controller.go b/webcontroller/web_controller.go index 9855e15..129b364 100644 --- a/webcontroller/web_controller.go +++ b/webcontroller/web_controller.go @@ -103,7 +103,6 @@ func New( r.GET(p+"/widgets" /* */, wc.serveTemplate("widgets", false)) r.GET(p+"/about" /* */, wc.serveTemplate("about", false)) r.GET(p+"/appearance" /* */, wc.serveTemplate("appearance", false)) - r.GET(p+"/click/:id" /* */, wc.serveAdClick) // User account pages r.GET(p+"/register" /* */, wc.serveForm(wc.registerForm, false)) @@ -131,6 +130,10 @@ func New( r.GET(p+"/admin/globals" /* */, wc.serveForm(wc.adminGlobalsForm, true)) r.POST(p+"/admin/globals" /**/, wc.serveForm(wc.adminGlobalsForm, true)) + // Advertising related + r.GET(p+"/click/:id" /* */, wc.serveAdClick) + r.GET(p+"/campaign/:id" /* */, wc.serveCampaignPartner) + r.NotFound = http.HandlerFunc(wc.serveNotFound) return wc