|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
4 x) x/ c$ t2 k" Q* n! w6 p2 k( w' P# i% f3 l# M; _) z: c4 i
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
3 N* P+ w# y9 c3 m. l& o6 K但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。* N7 ]8 H/ X) S1 Q+ A8 s* F
8 B3 A( ~, H! s0 r' x" `; D( L
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
4 Q9 q8 d7 u$ y# T6 n i0 U! {* u3 r8 W6 F: Y# J: l h8 r
具体做法是:5 r( [+ t: M! ^* b5 e3 q* P2 W
$ @+ E) u* e6 ?, Z) c
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
% ~3 Y. A0 z% k4 g假设前置页面的访问路径为 http://www.xxx.com/7 |' O! e+ Q2 I. E
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
4 T( P; `) ?9 F/ phttp://www.xxx.com/iphone/02/index.html
. v; }' v7 ^; D7 s% P" {% \那么我们在追踪器中设置的LP访问路径为1 M1 F+ A) @7 o; k; X- u/ Z
http://www.xxx.com/?offerUrl=iphone&landUrl=010 `6 Q- N y% i, q$ S
http://www.xxx.com/?offerUrl=iphone&landUrl=02/ }4 ]6 K0 h( Q4 d. \& R; |
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理* b, n9 G W( z0 p7 s# `, g% c
. g; K. l, e g5 {5 q6 Y/ Q这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
" M9 b" j$ v, e# T, \- \: K( X' D6 D4 W
8 B" C+ F3 i* g* }* D1 |/ G2.前置页面内容如下* R" Y$ g: E8 N# ?! J
- <!DOCTYPE html>' V$ U+ t& Q: C! l9 s/ J
- <html lang="en">
9 e& K W( u# F! f8 _ - <head>
/ }+ o# G1 u& r8 o- Z - <meta charset="UTF-8">5 V! O* m+ j+ [. n+ o; K
- <title>Loading</title>
3 K# W) `+ A4 ]" f( u y+ ~ - </head>" r! f+ S: w% ^' f
- <body>
T; B1 A7 F3 n2 g+ f - Loading...) n; h6 }8 ~- L. \0 E+ E8 {% Z9 f
- </body>% r$ H7 {, t0 X0 o
- * C, S6 X9 |6 `
- <script>
. o; t, }/ P$ G% H - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成$ V+ D( m6 A# v( B6 _# Q# X( F
- //iphone$ k' s1 e. u7 C i% d5 P" E/ ^
- //01 http://xxx/iphone/01/index.html
# V+ e% h& _6 F - //02 http://xxx/iphone/02/index.html" ^. i6 k$ [8 C5 A1 p' n: b
- //以此类推
( R# q7 U! n: H _ -
# |/ l+ h8 i1 R6 F- S) W -
2 a( ^* O! V5 [; k7 f) s5 Z8 d - : b$ G0 C' `9 c$ X$ A( E, u
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
( H7 Y) s( U- I8 ^( X - //那么我们的offerUrl = iphone,landUrl = 01/ ~7 L1 F6 L( e: t3 b& X$ C2 K
- 6 `1 @; b. I; P% y' S
- //从url参数中获取设置好的访问参数4 q0 y0 \% r- @. c( y8 n
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");7 k* y' n" Z$ E- H$ B
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");& Z; u$ D7 z: Q) b, n2 _
-
; n! u$ N: ^) z0 z1 C - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
( I7 r2 I% {# N; _/ U0 a - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);* D7 m# a' @4 M- E
- if(b){/ e8 @ `! L7 C% Y4 w
- setTimeout(function() {- j$ |* U0 ~$ e6 f+ w% F- ~) w7 c
- var params = funcUrlDel(['offerUrl','landUrl']);9 v1 k+ c. x# {/ N( t$ I3 _
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
. s& U6 x+ i$ G7 d: m+ R - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);3 R* p1 p1 Q. d
- }, 300);# L) H# [' g" v& e$ h1 o" j
- }else{
复制代码
2 p2 Z r0 R$ w: I8 ~, c& }! }, `8 x k' { G7 w( O( E" \# X
( x% P3 U0 _- S6 [0 E) h
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
3 e+ j& i0 Q6 r5 r9 e4 E9 w) S5 B' G: P* N
* @, _/ q" L( ~- ?5 x0 o0 d9 k7 ]1 _* F2 Z; m
4 K+ S5 n; G# L+ o. Q! a) E
2 S z: p9 C6 @ v4 g. ?9 B; {( \4 m5 y
|
|