|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 ) Q$ @- `5 G8 c& `7 q
( B+ |) b7 U/ }' T在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。5 K2 k2 Y( F: E" A' r
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。; m* N( o8 y+ Q
+ S% J; ]$ C& w7 R8 A
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。9 A$ l2 c. G9 y" [7 ?
. f3 C- s/ O2 D5 [具体做法是:$ p: [% @! ?" d2 F* h1 x/ H
6 }* D9 O* D/ G8 v* i
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。. e$ Y; X# p& n: ^; x0 T
假设前置页面的访问路径为 http://www.xxx.com/
. C* T- I8 [7 C' D$ D- ~ U2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
& ?6 w# j, d7 ]% {7 ohttp://www.xxx.com/iphone/02/index.html
, r. v1 b* f9 L+ i4 ^9 p那么我们在追踪器中设置的LP访问路径为, i7 V" N& T5 Z" F
http://www.xxx.com/?offerUrl=iphone&landUrl=01
: L" p9 {( _# ?; w3 ^. ehttp://www.xxx.com/?offerUrl=iphone&landUrl=02+ U5 U: ?; X _* b; s; Y1 ?
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
4 G" u( l* `7 k4 q
9 n; Y4 M7 S1 Z0 X; D这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。/ q6 ^8 i. f& a$ K
. t; U7 O( t, X9 C% [! s+ v Z
9 w. S( i2 D% k7 O( F2 k
2.前置页面内容如下
" ?6 M+ |0 ~/ k0 c7 c1 m- <!DOCTYPE html>
" {& e8 B/ [- q7 A5 O - <html lang="en">
5 y* x8 R$ Q3 a0 U - <head>
% ^5 g* b+ L0 N+ f, J - <meta charset="UTF-8">
6 j, f/ b# e- j( ?1 E8 U' T - <title>Loading</title> Y9 Z! u2 Z* h# e" f8 v
- </head>
; v" r2 A$ r, K8 y; y9 f; v" W( e- C% W - <body>
- |2 Q& H+ E2 p ? - Loading...
C# C/ l4 S a! U - </body>$ e9 I$ ~& Y( _& f' r6 x
- % i+ e1 h0 O4 k% v8 w
- <script>
5 Z3 U" D3 y/ K2 t: [( Y - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
% _' e* R! K3 \3 w) w b- J - //iphone
7 o* k* a' a* x& t - //01 http://xxx/iphone/01/index.html
, B @1 T- i* S" r6 S+ n - //02 http://xxx/iphone/02/index.html
; C# L7 `/ m0 ~! c4 g% t# B& m - //以此类推
3 s4 L! d! ]( S8 z7 t/ t, `, p -
8 Z' O- ?7 I& j% ?/ f - $ F! g9 Y4 ]8 ~! z; S/ { f" j
- 0 y h2 G$ M" U0 a: @4 O
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html1 M' @$ t& z# z& a
- //那么我们的offerUrl = iphone,landUrl = 01& `+ ~ b+ _1 ?5 f$ z) D5 {6 H
-
5 ^: T' ~: a9 V5 C9 F - //从url参数中获取设置好的访问参数
& }! x3 C& j+ P6 W - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
/ u8 V1 m9 O$ P- o1 p, x% F - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");# w" L4 m4 `0 \! I' x2 c
- % C$ s( t3 ]( {) h' n; F
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径& l" N* a1 w# b K3 k' H/ U3 P5 C
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
3 | ~& G) s" n0 l5 d! \ - if(b){+ {! T- J* {" j2 R+ ? v
- setTimeout(function() {6 i' u* `0 ?2 N4 L1 S( [+ ~2 A
- var params = funcUrlDel(['offerUrl','landUrl']);
, ~! @4 D4 t/ h# ?8 M: n - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
( E, e4 _% b5 Z: I8 R6 ^* A. b: z - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
% ] r6 \) k$ i) @$ r8 N - }, 300);; t+ E+ }2 \6 R) R) H% S4 a! Q
- }else{
复制代码
$ R; f) I7 x3 w3 I9 \% d6 D+ {: K! U& K# n3 H6 [7 q' R2 ]
# X/ \8 I4 V U: f只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。, Q2 ?* I' N7 E9 U& z; ~8 c
% u% K1 B4 Q- l- F" b! M9 f
! x+ N& G% ^4 S5 g& ?; |" ^% x
& T* Y/ `2 t* D& M# S- b7 y6 l) \
1 q! ?* V5 m& b% a$ i: p
" e5 F8 W4 u- Z: C) T L: d, l6 H
|
|