|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 . Y6 O* X- `; r1 Y4 |+ w
3 C& c$ ?! |6 J0 S
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
0 }% _' C+ A5 @/ Z) M8 C6 ?1 k( `但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。. y+ k: p; R( C1 M" Z2 D# f$ x
& f0 }, u9 N& x$ q, U6 q
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。8 q3 F6 e! l- p2 p
) S2 [* Z" k" F
具体做法是:- Q9 w7 r; Q5 G: F9 j! _1 d! P) Y0 T
. K7 B+ T9 g& a& l1 K( g
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。4 `0 i; m* g, H# M3 u* d
假设前置页面的访问路径为 http://www.xxx.com/8 O- c, v" y6 {! l1 D1 p# U5 i6 V; D
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html ( \7 I( Q9 O8 p" K F5 ~% H
http://www.xxx.com/iphone/02/index.html. y4 o2 e) A& \
那么我们在追踪器中设置的LP访问路径为6 `4 Z2 x& G! |* l" S3 F: Z
http://www.xxx.com/?offerUrl=iphone&landUrl=01( I j/ \3 V! [) S6 d
http://www.xxx.com/?offerUrl=iphone&landUrl=02
/ J! h; X6 T( Z8 E这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
9 v- H4 T) m4 i( ?' c. n8 G1 P+ i( q2 s5 G( \; y
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
! j5 L* A* w1 S1 V& r5 J! v, m( A
0 d; ?1 c( o j
+ i' r. `; v# w- _: O$ ?2.前置页面内容如下
( G8 d: M9 I t& o' @2 [. S7 }: X( |- <!DOCTYPE html>* j, q2 q6 N; @% R0 a3 p
- <html lang="en">6 i, k7 J; r# M" @) z6 T3 A% e/ p
- <head>
6 R0 r) ^4 m6 x/ i - <meta charset="UTF-8">) T! m1 a! A, d) x$ ^3 W; ]
- <title>Loading</title>' H( }0 ^5 f3 l" |
- </head>
8 h! V0 z3 p" P: l: U% u* x - <body>
' j8 ?/ t% _& i) ~ - Loading...0 F& B9 ?, x* W" l. m* ^$ H9 _
- </body>: {. b3 e5 m6 O- v/ P- w
" ^( X/ Y* S! \ y" x& T- <script>
" r: I2 W F0 {, g( H - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
8 N& p" {# T) a. J) a - //iphone
& k) Q1 g- g; v* n0 n# v - //01 http://xxx/iphone/01/index.html
1 v; N- a6 {% Y0 u5 T - //02 http://xxx/iphone/02/index.html/ J: r& Q. N9 w7 r9 I* H
- //以此类推
3 k8 z* ]" [/ |! x -
1 M# Y: b( B( V -
2 j/ v8 l( e3 B( R2 u -
- [5 a1 t0 r- n U* w - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html% U2 E" L' Y% A" P3 o8 a
- //那么我们的offerUrl = iphone,landUrl = 01
. K* I8 z1 h5 ]4 t8 b/ r$ P -
7 Q ?1 \, |* \/ W, r8 j - //从url参数中获取设置好的访问参数! m3 `) x% u/ S6 Q5 o- q
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");1 K K* y- f4 ~% r% R
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
9 Q$ n& V, p- t# m9 F5 g+ L4 @ - 0 Y' [, O- q) K4 _0 H8 ~% j5 V4 x
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径5 D4 M1 A. E E, R
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
* b: J7 M* _' N- T3 X( p - if(b){" C, e4 r h, {# y: J
- setTimeout(function() {; X- g; S: i5 ?
- var params = funcUrlDel(['offerUrl','landUrl']);
) l" i" s& t" d. v2 F0 E; v - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
+ G- o# K1 |4 j# A - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
9 `5 _8 g* I' Z# S - }, 300);
' R* q9 o+ o+ P7 X3 \ - }else{
复制代码
: F. M2 G9 p! J! Z w8 f$ {+ S# h
7 |4 _! T) B1 ^ s6 H" n: u' |; E$ W2 ^2 K! r
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。6 j! H# H6 E+ Y7 m) J2 w/ h. T0 r9 c2 ]
9 A2 n# W4 {3 C/ ~
2 |0 F+ z$ r" I# t+ l; S+ Q4 Z1 \( v0 h* ?! y! p
" B! r4 O+ q, R5 U0 H L
+ V5 ]( Y7 I; n3 n- c1 X/ |$ D7 I9 X- Q9 D
|
|