|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
0 e+ g8 X1 ]: A2 H7 x3 O) j2 `
" f. D, Q$ D }8 \$ O) Z' t在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。$ F6 m, J( h ]
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
. g& J/ I: c4 t1 j- ^! q& V: G
* s' W4 i0 J* ~. ?# Q V# T' s另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
) h$ r1 \4 ^8 b3 c( `9 S
, _& H$ e& i f! W8 M! u" h( @具体做法是:
+ B, B9 G! t/ ^0 a
( [2 }1 j' y$ o9 ]2 l1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。2 l9 z1 ~- L: f1 u2 D
假设前置页面的访问路径为 http://www.xxx.com/
0 d6 a& n+ U+ D( B2 a# Y5 o2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html 0 R9 ~% C1 y0 q# v; |. C
http://www.xxx.com/iphone/02/index.html
! {. j" E8 Q- B6 w. K1 [7 E那么我们在追踪器中设置的LP访问路径为# C8 A% o6 H, `* E/ X+ M7 q6 {
http://www.xxx.com/?offerUrl=iphone&landUrl=01
# G7 v6 ]% @/ m, j$ ~, chttp://www.xxx.com/?offerUrl=iphone&landUrl=02 `! |: o7 Z( b. S, s* D& e
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理6 v8 `# f" t3 F
9 Z" b' ~# B2 B+ }, J这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
: Y& Q+ H) K( T
% k, P5 v0 n" `; A5 K- W5 c6 a5 c+ [7 ^. b; o% K9 e
2.前置页面内容如下
6 r- @; i" u( T- <!DOCTYPE html>
. d+ s l) M! a! `+ p8 c, i6 S - <html lang="en">0 d! d$ D$ V3 r9 ?% V/ {
- <head>1 `) ^* C1 ?/ `9 E3 V7 m
- <meta charset="UTF-8">$ e q! L( s3 k) _' V
- <title>Loading</title>
# A3 q/ T9 f4 l# [ - </head>
0 x7 |/ o& S9 c9 N/ P - <body>( v. B4 n( j- v* p. L1 Z4 T) t
- Loading...# |; m/ M" V( y' u" n
- </body>
8 I9 N( w% u7 G5 P, N* z - 6 M! J% T+ P9 ~* o
- <script>
0 R% P# Z1 G- b( g! O; r1 J - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
' e; U/ `* g6 e: S - //iphone
/ o1 q2 n! I9 X& S% V& M/ i - //01 http://xxx/iphone/01/index.html- n6 P1 [+ J+ l8 i& S
- //02 http://xxx/iphone/02/index.html
8 }; [1 _; y% Z2 y4 z1 ^ - //以此类推
' }9 J. ~$ K$ E7 Q5 @- @% }6 j -
% b+ i' H! N7 n; E$ D# C# [0 J3 N -
/ K9 k7 a% X5 d9 v& _0 a. w! ? - , U8 h- y( g: F
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html% V6 @0 f5 Q( a: M
- //那么我们的offerUrl = iphone,landUrl = 01 D3 y+ }* X, i0 C+ k7 ^
- / e0 t& m! j% }; P) q
- //从url参数中获取设置好的访问参数
' Q0 {3 A$ K. v- e4 q2 c0 R - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");7 q1 E$ @. X* d
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");0 v$ l$ n; B# c$ X) v- b
- ' L6 d5 P+ X3 W0 f- S- S
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
, y( ]8 P$ P1 K" J9 D c$ U - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);8 E' Y+ d8 \4 ]
- if(b){
# w" |! b4 ~. h" D# {9 D* x8 x - setTimeout(function() {
9 J( u; J$ U" J' _* q* T: | - var params = funcUrlDel(['offerUrl','landUrl']);
1 z a1 y5 M( N$ X: s - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤2 v& J( U* J/ K5 w" i
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
6 ]& }( _- ~' K* w8 N3 A - }, 300);* @- } H6 W$ X0 o/ V9 F; a
- }else{
复制代码 - n: c5 _3 R% V' a) @4 k* s
1 e) y' X, H2 i. y
% v. e( t& V8 @0 x只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。' D5 }8 X6 @$ }' u% w7 F& Q
7 }* z- Y( g8 U
+ x& ?4 a- D4 h+ n/ X
8 ~( ^) A+ M( ~5 O
! T: i$ w( x% _ _' S3 [
4 L( O' o2 g8 ?4 P
2 ?" @( X* ~. V& y. w- q1 Q |
|