|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 " ~3 R; N2 g+ q* O! d) {) f, y( }) }
! F- ` r; c: S; h4 s3 g
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
7 u0 m) p0 ?6 @! b& R但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
8 X O, A6 d& X4 r9 J/ W0 P+ R5 L/ w. @2 d( L
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
' \/ x" {; N! D/ ^
% W) D& V* `: h具体做法是:
9 T7 M; V: G; O% M- ?5 o8 F4 H+ B2 D8 f0 ], h5 ~5 E% N2 N! T7 G) ?
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
4 H3 T$ H1 Q2 }假设前置页面的访问路径为 http://www.xxx.com/8 i: Q' R* }* O
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html ; Q7 q {5 X$ Z' U5 a
http://www.xxx.com/iphone/02/index.html
& R( F4 L, W8 z V那么我们在追踪器中设置的LP访问路径为' J4 M9 q) |* I) F, F% Y- p
http://www.xxx.com/?offerUrl=iphone&landUrl=01
4 _& V% l8 r4 i: o! Jhttp://www.xxx.com/?offerUrl=iphone&landUrl=02
/ Y& p2 k* P4 P& I7 X5 i ^; ?这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
. z! j, ^) C$ [- }! S& O( z
) y% {! U8 U: T! C+ g- i! k这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
8 _. o1 v9 H/ K: l8 P4 f$ p/ `% }4 e9 H' i; o- G# @, N
; g4 s/ \- Y3 c2.前置页面内容如下
/ \1 Z/ m4 _* Q- V E+ N- <!DOCTYPE html>
. V. S$ B# m: m1 H0 ^# P - <html lang="en">
7 ^/ r8 L4 E( R+ V4 @3 n( _ t - <head>0 q# X5 F4 K0 u
- <meta charset="UTF-8">' R1 i, ?2 V* @& @
- <title>Loading</title>2 M8 ~) o0 E8 y& H
- </head>
: m/ I6 n4 a* R% Q2 u) q3 ~' p5 s% K; { - <body>
# b& U8 g3 I& m6 K x8 r; Z - Loading...3 `9 u+ Q8 g" g9 u9 ~" l
- </body> h; ~2 C2 l" S6 W/ K
- ( P R: [9 [; Q4 C. `/ j7 B" r
- <script>, q! L; M) g" t/ e
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成$ b0 T9 O5 m8 r/ B; [
- //iphone. v. Y+ x* |8 P$ K; C
- //01 http://xxx/iphone/01/index.html5 n% g2 g, |# S$ H8 ?
- //02 http://xxx/iphone/02/index.html
! Z! K) ~9 l0 g* d - //以此类推
$ I4 _, V9 h9 h$ b! d( I0 f" n7 Q w. V - 4 ^6 L L) a9 u
- 8 h; G" z) b3 i0 p) O7 `. K( |+ j
- " H' o. \9 V' z p! `* F7 f& U$ S
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html4 ]3 u+ R% O7 V% [9 d2 y
- //那么我们的offerUrl = iphone,landUrl = 01" F4 h6 q0 G0 X
-
5 X4 w" ~. N2 J& c% A- N - //从url参数中获取设置好的访问参数
0 d4 {8 t. @4 O$ v - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
; }" L4 i9 i( u3 X& n( u0 z: I* D - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
8 H3 W7 }- i2 \6 ~ -
9 k! I+ b/ ?7 J0 L* T; `2 _ - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
; U' X5 p! Z, L - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);/ y. w5 f* F% P- h# M7 a' q
- if(b){
3 P1 E. I; Q! c5 i8 c - setTimeout(function() {2 }; {! b/ W- W3 d( I
- var params = funcUrlDel(['offerUrl','landUrl']);, k* ]0 \+ Z% Y- n5 \5 W+ S% M
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤3 E i: J8 c4 N
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);$ _( {0 H/ q; `- A( U
- }, 300);
3 f \& I, [6 P' H3 C* | q# C% Z" f - }else{
复制代码 + f( g7 o5 I. B3 }( ?" H" J
4 Q5 z' f6 F" ~& a: r: T" ?% }3 g! m. }
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。( R. p% p3 |. q/ T# y
5 U6 E) w# R" X. i# B8 G* ]
% P! H: M: j* _% p/ j
3 X) ?8 A9 S4 v9 A
' Q6 [+ g3 x8 D4 L! C2 ]6 d/ K3 s4 @ L0 a2 [8 F L
$ b; a3 [8 z) N7 J. E ]6 Y, q
|
|