|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
5 h q. K6 i3 i; l) @
" P) o3 j& D3 a D: }1 l在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
8 Q5 n2 \. K% h( n1 {& Y- R但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
! j* K5 n1 }/ w! E. S" J" s R, T' |
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。2 s E8 j) Z, [4 H5 P
7 e7 \) Y9 D2 f% B; K具体做法是:
6 V/ u8 ]* K7 x! V: G6 S7 }, y# Q) M: h4 P
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。/ J2 w; o& A3 h2 C7 ?& O
假设前置页面的访问路径为 http://www.xxx.com/0 s; b `* l% Y2 c4 s2 N& m
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html ( z$ M, ]. ~4 H4 g# w$ K7 r
http://www.xxx.com/iphone/02/index.html6 ?5 C- }; `8 @* S8 q) `
那么我们在追踪器中设置的LP访问路径为$ ^+ Q5 o& U' B& W2 ?0 P' w0 J
http://www.xxx.com/?offerUrl=iphone&landUrl=01
# L* V3 n' h/ G& D$ fhttp://www.xxx.com/?offerUrl=iphone&landUrl=02, L- B; f6 v4 K3 T- V- T, E
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理4 t6 k* c8 Z# b2 W1 E3 F+ r
: n( W1 f# j# M) U( E& f* P这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。% Z! X1 P; ~2 e9 X7 E- [
+ i h; g+ \7 p& {6 R2 z
" p& C; j- p/ I+ b2.前置页面内容如下
% e1 y. r Y3 c1 c, |" S- <!DOCTYPE html>, V! k! v* `7 b* |& k
- <html lang="en">
. l& d/ y3 s2 E$ o. u& R) K+ V) S - <head>
8 @6 h3 B" W( y - <meta charset="UTF-8">
+ `0 O' y7 o6 T2 Z - <title>Loading</title>. s3 _( a2 D+ f& m
- </head>( U" \4 X, P* j3 i; R
- <body>
4 @* f9 M; }1 K - Loading...4 ?8 b8 P% Z* e' n6 C" |1 u
- </body> L+ ~* e! y" u7 I' r: e
- " z; A! w$ T- s; Z& t! m
- <script>4 ~) K- h% w* ?: h8 R3 M
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成6 S- a2 m9 L+ R. ^+ G4 h0 x
- //iphone% c9 y7 c7 _+ i$ F2 O, K, W6 K
- //01 http://xxx/iphone/01/index.html0 W! h! M5 b5 ^. m
- //02 http://xxx/iphone/02/index.html
" ?1 `0 K" g4 I6 o- a/ p9 y$ Y - //以此类推3 p+ O, B0 z0 ?. G* A m# s: I
-
8 |, Q# j5 E# m: }6 ?/ y. w -
% U& j* Z( p' ~7 E0 J; _" x -
* J$ ^! N M0 r: I: H2 r - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
8 b) D1 }5 ], ?: [" v - //那么我们的offerUrl = iphone,landUrl = 01
# K6 K. s" J7 v. y. @: T: z, _ - 0 @) F% j8 E3 M, x6 Y3 V$ x) A
- //从url参数中获取设置好的访问参数
( T; v9 F6 l2 v% V* V( [0 _) g - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");4 Z. m" A2 a0 z8 q. G
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");0 ~4 u! e2 a. ]* ]0 \
-
# Y6 d: h8 B/ k9 ]% \# }8 _ X - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
9 J. F- d3 b0 P+ L2 N* Z - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);' {2 j ^/ `1 {; q3 j7 q
- if(b){; v5 i7 o2 V8 g4 Y: V" A
- setTimeout(function() {
# T8 L6 [0 N {2 k$ i - var params = funcUrlDel(['offerUrl','landUrl']);
- S; a4 D% v$ x% k' H* E9 [ - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
8 i- C+ [8 T, H2 K2 s! | - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);8 N0 V' D0 d' m5 c, Y
- }, 300);6 Y! b( r+ Y/ v- q! w
- }else{
复制代码 3 t8 h- P/ b0 E# ?, D
4 z9 y/ `, J+ E
& Y: J6 l: E; e# o
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
: s- }( \* }3 b" h$ n# U# H, `8 J, P' K8 r7 O: I x, \) b8 ?
& w) |* J- u& N' i; i- M7 ]$ M
+ w# g1 g- ?* m4 u" ]
5 x" v0 O* L; b+ O
0 C- J0 i8 j! ^5 |& s4 r$ Y4 H7 N1 u& N
|
|