|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 - O `, n! Y; L8 g2 X
s$ {2 Q' h+ L( k- Y0 U' _
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
; D% c" J# c, Y$ R. z2 y但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
6 A, W( S; l4 T
# @8 J D1 ^% N/ G' ^& ^另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
5 E! p) c0 y+ h4 k) S. N9 A2 c) _5 Z" @2 p
具体做法是:" x( S3 y$ d7 e9 R o1 C! u
0 h" H: e9 b* G
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
( L3 K& x; j# X- C& e* v假设前置页面的访问路径为 http://www.xxx.com/) |/ {; P: Z1 T
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html + G, m8 g i; H6 p
http://www.xxx.com/iphone/02/index.html7 q+ p2 m+ `% ]
那么我们在追踪器中设置的LP访问路径为) p9 M& P! y9 \. S3 c" I0 m7 p
http://www.xxx.com/?offerUrl=iphone&landUrl=01
1 W5 n3 I4 W4 K7 S* b( [ thttp://www.xxx.com/?offerUrl=iphone&landUrl=02
2 N( V6 n& v4 p+ B这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
% `/ ]/ y+ P+ U3 G6 B9 }
. P P8 w5 {. Q1 V1 U/ f7 s' r" O这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
6 ^$ r6 J" E8 S0 S/ f3 e
( r+ O" M2 x' D, W2 M6 d% D' {+ n% x" Q6 c& O
2.前置页面内容如下, d& n" y8 m {0 T- \' [
- <!DOCTYPE html>" l( O6 D4 L' w; {
- <html lang="en">
7 _* T7 m ]1 C' T/ L0 u - <head>
8 ~* p9 ^5 J) b& h - <meta charset="UTF-8">
\0 x6 _, _6 w" O4 n8 W8 f+ o - <title>Loading</title>
% r/ B6 e% j& g/ }* m% q9 u' U - </head>' d6 \; N, ^& B( h# O! M
- <body>
3 i7 v& k, S2 r$ L7 D/ W _ - Loading.../ V! ?4 J+ P; w: ~7 }, @7 p# F
- </body>
P1 J, @- P- w" J) d+ u, l+ C/ h - 1 `. P5 J4 O7 N% s6 H$ H. Q
- <script>' Q ]% H4 b6 {0 i1 h" ~
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成0 H1 |1 h, h' |9 [8 Q
- //iphone
% O' n! Y1 j9 x - //01 http://xxx/iphone/01/index.html
; z- U0 h1 K$ k) h$ w4 O5 H4 ^ F - //02 http://xxx/iphone/02/index.html( N7 Z0 ]/ f; a3 _% n) h
- //以此类推
: ?* Z+ D& x" y* K# r2 | -
% S4 w* v. y$ H% P( T/ B7 B -
7 g( Q" D9 A1 ?& S3 K4 m - ( j4 D+ \# X! O. Z$ r8 P z2 X) [
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html/ O: @# l+ e; t, o1 f! O
- //那么我们的offerUrl = iphone,landUrl = 01+ ]0 \/ F" T( q# i _( b
- ' M% N( ^( j/ i+ e
- //从url参数中获取设置好的访问参数. L% v; s' n0 Y4 p' C
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
5 r4 o2 O) A+ Z) v - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
/ Q0 O p7 s0 K -
+ M) X) z: s6 u$ l. h5 N - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径' @- {* i( O0 ?9 A5 r0 z( q
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
: J, Y8 Y) g2 t5 x$ }6 g1 O* z: \+ t - if(b){
) O& e$ k$ x% j7 `3 b1 X: P- Z - setTimeout(function() {* q2 t! f3 A! s3 f
- var params = funcUrlDel(['offerUrl','landUrl']);. q. k! p8 m3 Z: W1 H9 v5 Q
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
3 ?/ e" `7 q3 `+ Z( L0 F# U - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);9 E* r! P0 P* H- ], O9 l0 Z1 S, R$ q
- }, 300);
- E W/ x, G' x' h# Y7 j! p - }else{
复制代码
/ I0 `. G$ c; \ s0 n3 H- h9 M) C8 y9 M2 E0 ~/ C
! m8 y4 J! `0 ~+ z+ R7 r. I4 W只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
4 j" w% |, |! e4 p
. X5 ^' q7 F- a) X! W0 i8 y/ w+ H6 D, h
5 d1 x( k) i5 U
& b. g2 }1 p s' C$ p. }
/ C4 }1 D: H) ]$ Z7 F+ V6 l7 H2 A, W5 z# d" _
|
|