|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
% o, @7 F( o1 I2 N
o) c2 Z6 @" } c在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。$ e6 g) R2 S# C9 b, j
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。5 F+ P) u/ a! D. ?1 v0 ]& m
$ i! |) }" d0 B- G1 p
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
8 i% x! g3 r- A X6 _6 ?
$ @, H8 A, ~9 o- _3 |具体做法是:4 f4 D# S8 S q
7 l I2 E; u) l- m! g6 w
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。4 c7 G6 |7 u+ M5 d# G; S
假设前置页面的访问路径为 http://www.xxx.com/6 h% n7 d9 Y$ B* n
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html $ O0 X: q) ~! H6 I- X
http://www.xxx.com/iphone/02/index.html
/ m" `$ W5 D" N那么我们在追踪器中设置的LP访问路径为
* N" |! d C& xhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
! Y3 G: j8 k5 H& X; Ihttp://www.xxx.com/?offerUrl=iphone&landUrl=02( N$ W6 s; b3 q! W7 |
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
7 p. Q9 B+ M( K# ^, _8 b3 K/ i0 P& i
; m7 t: \% Z# [( k& @这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
0 H/ a% {: l: ^+ X9 ?
7 L X& |8 r5 G/ U4 f u
3 m& z8 J/ b1 ^5 s: N$ m2.前置页面内容如下
$ _4 ]" p8 A) c% Z- L6 a9 j' m2 Y- <!DOCTYPE html>7 e! w# B- r; @. Q/ k! X
- <html lang="en">
, p D! J0 O" @& f& u - <head>; x4 K$ j3 K$ c
- <meta charset="UTF-8">
9 W) r5 C6 l z - <title>Loading</title>
, x/ i# ?1 f/ h1 U6 W# K - </head>- Y6 z) r$ T( a
- <body>
1 p4 }' f/ o' q5 K - Loading...
0 ?6 }, v: [ H" o& @ - </body>
: q' c8 T- r7 y1 b; j - , a% Y2 n* c" m+ s; \: \ q0 @
- <script>
! w! S, Q+ `9 Y# ]$ ?) L - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成) |% A3 q$ q: p3 Y9 m
- //iphone
( |9 y3 j- p) o' @4 r- I8 l9 v - //01 http://xxx/iphone/01/index.html
3 P4 [5 B" Z8 k: U" m - //02 http://xxx/iphone/02/index.html
6 N" K: u/ z3 |' H4 J) q% H - //以此类推
0 q+ h# U U( ]8 |: R0 a o -
5 H* r5 V% X! {8 K4 ~2 u; x -
$ q" y. E( _4 _; g - , q4 F- n- _+ X
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
8 E" T6 V; D: f( { T - //那么我们的offerUrl = iphone,landUrl = 01& v( [! ~9 x: k8 \- D
-
% ]6 d- o" k; i; R& z - //从url参数中获取设置好的访问参数
8 F$ ]9 a' v7 \( U! | - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
' m# r* j4 H! k( g. z+ c- ^+ g - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
) J4 I" Z y0 @ - ' P; K3 X( ^( `2 X8 b
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
7 V, h1 a0 f% k# y0 B - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
% F0 T1 X9 h, j - if(b){
' C/ x1 c- {! ~ W - setTimeout(function() {
% ?' s2 e6 k$ X - var params = funcUrlDel(['offerUrl','landUrl']);
7 c$ E( w: P. ^ s* ^8 @" H/ G/ P - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
& y4 h4 ?! O7 Z5 {5 N - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);7 }7 {! F7 ~2 ~9 D$ ~/ G F c
- }, 300);
9 a/ g \8 Q8 G. [ - }else{
复制代码 , |5 ?8 W3 C! ]' K2 o9 \
/ h" X) D; |- W/ X' A
1 Q! P, V) D8 K. D4 E只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。5 ^( X" }- c/ X# f. ?
7 E9 B4 w3 l2 u; I) |
- e) o, m- `2 m- E6 v
& B2 T+ f& b4 E& m# ?
; m) T# E6 b$ K& q1 h' F
3 Y% b; Q: @, c/ S$ Z
. @/ Y+ {9 { b# c$ ^5 a |
|