add banner ad view counting

This commit is contained in:
Wim Brand
2020-02-21 13:14:21 +01:00
parent f17e58df29
commit e4eb24d8d1
6 changed files with 56 additions and 2 deletions

22
webcontroller/ad_click.go Normal file
View File

@@ -0,0 +1,22 @@
package webcontroller
import (
"net/http"
"github.com/Fornaxian/log"
"github.com/julienschmidt/httprouter"
)
func (wc *WebController) serveAdClick(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
// Redirect the user to the target page
http.Redirect(w, r, r.URL.Query().Get("target"), http.StatusTemporaryRedirect)
// Get a view token
td := wc.newTemplateData(w, r)
vt := viewTokenOrBust(td.PixelAPI)
// Log a view on the file
if err := td.PixelAPI.PostFileView(p.ByName("id"), vt); err != nil {
log.Warn("Failed to log view")
}
}

View File

@@ -98,6 +98,7 @@ 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))