|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 ; J, h3 O5 R: d3 c7 c
; M) R4 A3 z% X, ~! [" K
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
4 C4 p9 N9 R3 I$ S0 Y但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
% f$ W' F: S0 x6 D5 g( U! f7 t. T, [# O) a( H# O* l; g
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。7 r1 f7 R6 K6 L. g
' b; L3 R# t4 |. E5 U8 A
具体做法是:7 G/ N2 p4 Q& ?. J2 V! y0 g
6 s( i' v/ D& F( a
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。" S# B% G" V$ i
假设前置页面的访问路径为 http://www.xxx.com/
- B0 B# Q. G, I4 D8 y) R7 R% d2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
6 a6 E# P+ g% @8 b4 Y y9 whttp://www.xxx.com/iphone/02/index.html
" q1 E9 l; E& Y! {那么我们在追踪器中设置的LP访问路径为
$ v( Q6 `- {2 _, r$ dhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
- [; |1 X' q. @: Dhttp://www.xxx.com/?offerUrl=iphone&landUrl=02% ^- s! W' V w$ ^8 e3 ^
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理" B1 Y7 Q2 x, I2 b
/ E6 |. Y5 ?5 O7 O C% U* M
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
# Q, P2 z+ F) Y- m, N/ g/ }% d3 j2 z6 g9 C8 w
0 p) X3 u* ^: T" S2.前置页面内容如下- D* O* o3 [% k
- <!DOCTYPE html>; N( A0 i, p2 M: y2 {3 y
- <html lang="en">) l2 R1 Y; O* |6 \- V- R) M7 H/ b$ j
- <head>1 s# v. e' M$ Y d
- <meta charset="UTF-8">) n% f4 X+ o/ |# |" X1 B
- <title>Loading</title>
5 o8 o- i6 H( g ?4 i - </head>
& ~3 a6 L4 T5 p, U+ i - <body>2 p3 f/ q2 x4 S) Q/ S1 m
- Loading...5 c9 Z( Q: _* w! {! ~
- </body>
. W: R; ]( A4 T i$ U: ?( h
- L2 Z& }- d* r3 {# S3 e- <script>8 x0 B. |* M2 d; y3 t
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
: X, [: o# ~) P - //iphone
i" t; p7 N6 m" X% m8 `4 g - //01 http://xxx/iphone/01/index.html7 N$ g, H5 q, B- g/ J0 ^$ z
- //02 http://xxx/iphone/02/index.html
/ |3 e7 X- @6 n" G7 q3 B1 s( H - //以此类推/ u" L6 a( \+ _8 D3 I- y8 ]6 G
- , `% M. T) ? {/ j9 c. u' y" \
-
1 i+ |; i8 U: i7 S* b! \6 e - 1 l- O/ B! u, A) y) d- @
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html: r; Q& J* A* V) d9 [" y
- //那么我们的offerUrl = iphone,landUrl = 016 b! y E B* M8 }4 q# S
-
+ F; J) s) p) C' p3 a: K( ` - //从url参数中获取设置好的访问参数
( [) `2 t; M6 j - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");# T' b0 F% }0 p2 ^5 k
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");8 U/ j7 A# j+ ^4 l( A' [ P- k
- ( ~8 a0 n. w4 @+ ?& v
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径2 T1 ?1 \8 G, O8 t3 u) y- e$ R' A! `
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
/ V' p/ b& i2 g- N3 N - if(b){
; o6 u! ?7 T1 L; M5 t6 ]& Z - setTimeout(function() {
8 u: y- B; F) ^: T8 u! r& N" \ - var params = funcUrlDel(['offerUrl','landUrl']);
& m9 m* w3 g8 [" W - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
5 [3 W, f% [2 f* }' e* i9 ^. J1 f% C0 ^ - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
g2 g7 X- Y8 h* D - }, 300);
! m/ P( j+ ^, @0 D - }else{
复制代码 7 F/ ? ~( s7 |, m/ c
; X$ h. o. N5 R* Z* Z. ^
' [& i% g& K$ m. ^3 I, i只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
: v' n+ r: j2 H$ L$ x6 K" s( K6 G* M( |! l9 H8 m
! x9 z$ p1 y7 K& O$ _ Y! S
6 _9 O! B$ d# j. C n d$ a% C% C# _% u2 ?& Q, d) G( U0 M7 x6 E; A
+ f+ k& @7 W' |" `, A
2 R" F. ^8 p2 n. ?+ S' _: E9 Q |
|