|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
6 Z. v3 t. c w% | {8 ?# H+ X! A' v6 j( |! H
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
5 q% u- t& j) [- Q但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
' c# Y% a3 F" N2 y# a9 b
9 D5 a+ A( w+ A* U$ P5 i8 o+ D2 m另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
' ~3 h. l; X- U) w( f
1 u k* ?0 L- C9 K具体做法是:/ \, z& x' v$ n
+ j! ]& A9 L6 Q) O! c9 V
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。5 Q8 q0 Z+ c% J5 C
假设前置页面的访问路径为 http://www.xxx.com/
9 F% z; A: i, ?3 y3 o- U2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
_2 F$ K8 ?* d8 }8 x( {) w( Fhttp://www.xxx.com/iphone/02/index.html5 m: H& I8 a6 w! z) x* o
那么我们在追踪器中设置的LP访问路径为
: v" t( o- z3 _5 w# |6 g8 rhttp://www.xxx.com/?offerUrl=iphone&landUrl=01, \$ m4 A/ `) P
http://www.xxx.com/?offerUrl=iphone&landUrl=024 F- \! X. q: u& v" x. b
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
* g9 U( s; Y: V; O+ i, w8 z) v+ o( N+ q0 o2 _; c3 i% Y9 [+ k& y
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。; O1 [" e- n- x2 g d
! g/ c/ D1 _( Q
3 T6 @6 }/ m8 X& w2.前置页面内容如下7 g" u& b; q9 L1 u7 p/ H
- <!DOCTYPE html> {' H p4 H$ p' e5 k* y$ s$ i
- <html lang="en">
8 w# z d" d; E) p: K - <head>
7 s9 F* U$ j- ~ - <meta charset="UTF-8">
% v0 ~0 h! X1 t* e# u% ^ - <title>Loading</title>
( i/ C* }: L6 h2 C/ ` - </head>
+ O( p/ J& X3 @) x Q V$ j - <body>. J% T1 a6 X" n/ y3 L
- Loading...
6 `# G" L6 T; \$ Y9 g - </body>
1 N" R& ^3 j" B% L) s6 ?5 u
( a. V/ E. a$ V! u& l0 J* Q- <script>) u$ {$ F: z( G6 v) w
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成% t: n! l: I$ m0 d
- //iphone
) g9 p$ q: r" v - //01 http://xxx/iphone/01/index.html
1 K, g# \( q( d; j; |; G - //02 http://xxx/iphone/02/index.html
9 O' s& o9 l& e - //以此类推
4 F/ c; S+ E* |4 W5 c - ) d' H. v! |% x
- C& o# a" t, J* K L$ N% C# K& Z K
-
; o" s0 C2 N5 A8 i! t+ D, M/ } - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
# B1 E% m9 |8 V* ` - //那么我们的offerUrl = iphone,landUrl = 01
, c& m& H U# A' j: H5 B L - 0 D+ Z, N8 X2 l4 v- P3 y5 e
- //从url参数中获取设置好的访问参数- Q1 ]& q; i z9 u9 q
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
1 u6 m8 j' }, W5 T$ r1 ^" N2 C- \% }& F - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");6 Q0 i/ B4 E1 K5 }2 b6 _4 \
- 8 e( r4 [1 R6 \" e9 n' Y4 ^
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径. \6 C0 m8 X4 n# Y f8 Q, I! i
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
' J3 P/ i; b! z& x. d; N - if(b){. p1 V( i; f( V
- setTimeout(function() {
$ U3 }2 L, Y7 m8 x - var params = funcUrlDel(['offerUrl','landUrl']);% D. P+ A$ O/ q. m9 ~$ t$ R
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤% e. @8 h( s2 p5 ?
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);- p" A- J5 `8 {- \8 I
- }, 300); O& {2 e! t: b2 j
- }else{
复制代码 1 C/ v$ c- y/ ~) b8 e* e5 I
) r, D6 {& h F! O
% n5 [% r- M5 U& d只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。1 b5 \$ x0 O1 }6 A/ L
) L7 H- B% @3 I6 W l/ \8 ~4 Y
2 p: D5 e3 Y; w! [. q8 Q+ }
+ J4 r+ g& C+ s( o j$ P# H, W6 n" }
7 j. y- s5 O1 n4 C$ X# y6 D$ b
" K3 w, B7 ~1 [' c0 b- y- s+ X |
|