|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
+ u4 j. y+ l; o2 a- L
! o- y& n7 Z' A) p m在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
- e# D( L2 c1 ~但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。( C; E3 m8 u6 E: H+ E5 \5 V
' _& w; s4 K8 l另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
/ E8 }2 \8 a/ o- ^/ c% q
) D! [9 Z, f2 a- x, a2 q具体做法是:
% l1 X6 ^& o* H. u0 T+ w6 [3 H" q6 C1 y9 r, \/ n
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。! Q/ {" L1 N: T, M8 | ?
假设前置页面的访问路径为 http://www.xxx.com/
0 c+ Z4 R J5 v, z5 E C! E2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html 9 [0 V& u* b V
http://www.xxx.com/iphone/02/index.html; Q" I5 v. g3 V' {% p! S$ f8 J
那么我们在追踪器中设置的LP访问路径为
$ m5 C9 h" @8 i7 Uhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
O4 A5 H( g7 P8 Q' chttp://www.xxx.com/?offerUrl=iphone&landUrl=02, z( f6 @; d- F
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理4 j, }3 R- c! n2 Y$ f O
0 M# \8 o& ^$ }/ }7 K4 q% a) P
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
& ]7 z, ^; S. ]3 r; Z Y/ p. W( P& ~' T) L1 B1 M
# r- d- R L. [ s! d1 Z& q2.前置页面内容如下# t3 {4 V" _' O" N% j3 E! o
- <!DOCTYPE html>
4 m( t/ M4 d/ E# h4 {) M# s - <html lang="en">
2 z* e6 D" N2 Q" j& N2 e - <head>
. C: U1 [* r+ X3 _) \- K5 Y" _* P+ O - <meta charset="UTF-8">
|4 S Y: |$ N, o! B/ f - <title>Loading</title>- B! I3 i" b0 W* |- f# m
- </head>
+ r( Y4 s' V7 o7 V4 a; o) j - <body>
- c# z, ~. Q% u% ? - Loading...
( K2 x% ~5 P4 |- G2 u - </body>
8 V+ Q9 F0 H0 N5 I6 B2 F& o+ ~& _# w - ' [$ J# k! G$ O! i, {- \: F; w3 @
- <script>
' ~6 n' R/ D$ J6 B - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
) A/ q2 N' q) d6 d" n5 i7 }4 e0 J - //iphone/ p2 o7 { \3 e4 J& n5 H+ k
- //01 http://xxx/iphone/01/index.html
" `' K/ ~, D$ E! I/ @+ X, F! g - //02 http://xxx/iphone/02/index.html
1 F6 |. f* \# ?9 @ - //以此类推7 Y& s- y" W) g$ _+ Q
-
. _; t( I6 k! Q1 H# b -
- [+ l) V2 {, E2 {3 Y/ X - 1 R( Q7 w4 ?, R) Z8 M8 s8 s
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
& K1 u+ l( R/ t4 h2 u - //那么我们的offerUrl = iphone,landUrl = 01
! r! l) s6 s1 S5 p% U - 8 x4 r% H+ E' J( v
- //从url参数中获取设置好的访问参数
9 L1 V3 @4 U1 Z2 y9 t7 {: z - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
; q$ J% J N6 B; T - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");$ ^0 C8 `+ Y `1 r5 f
-
O: d) c/ g# G - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
& X$ G& l, O' o. M - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);- R' s0 p0 ?* K
- if(b){
! q6 x+ w& D V& v A1 D1 ^ - setTimeout(function() {- I0 u' C, a5 r7 y8 g0 i
- var params = funcUrlDel(['offerUrl','landUrl']);/ J; |1 P% W U2 M9 A
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤$ K9 l* d' G: y' Q/ u! z( M9 R
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
( _5 [" T) { I0 S! R% }2 u - }, 300);. X1 e+ y/ U. y' o! L
- }else{
复制代码 2 V5 T; O2 y. c7 C4 e( ^0 Z
& { O$ n7 O+ _+ z
' C9 j; w, g+ b f只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
M0 m" a8 u$ H- ?. H, d
2 m9 J1 H+ N) M, o& L- o8 B( Z/ W
( _) z' q1 u7 O4 G- n5 S6 a
- z- M" f# |& B3 I
$ _; D+ A* d3 k, g A$ m* u
3 r* A" ~& a% X" h$ P. J3 a
7 `( N( @1 p/ a R$ x+ O |
|