|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 + q1 g i" ^1 N6 t" C, U
- D, @" [, R' T
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
: ~% W) w$ t" l' P; \1 X. L但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。- c# R$ B5 e$ |% V$ L2 w4 C
; q6 e5 \* i6 F! @& ^5 y$ J
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
( @7 i5 |& W5 {. T1 U5 c3 U% v
- t% q/ j- h3 ^4 i- k7 l. E$ i# ]具体做法是:* j3 _& R3 S4 {! ]* a# k
0 k- Y9 J: G8 M A
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。5 V9 F2 i0 S6 [- {
假设前置页面的访问路径为 http://www.xxx.com/ O9 d% q/ k, T* F
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
' T7 T( x7 S. w: x; I0 S9 W, lhttp://www.xxx.com/iphone/02/index.html
2 E( s, y/ f- I( R( m那么我们在追踪器中设置的LP访问路径为
; M8 [" P6 L1 }% K5 Xhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
/ P( o7 J7 g( whttp://www.xxx.com/?offerUrl=iphone&landUrl=02
( C& J2 s. w; J! I) V9 _8 o0 q这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
' E- [0 M3 x9 H/ \" v) F6 G% o, J m5 B, m8 P/ {
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
2 P, h& ^1 P8 Z9 z4 [( m9 L. @* }/ w, a1 P8 N& {+ c( I% C
2 k0 R9 j6 F4 x* I5 n& D
2.前置页面内容如下5 U* p" L5 K# |/ I+ I- ?
- <!DOCTYPE html>
: Q6 q3 L% l3 I, ^- s8 g3 A4 s - <html lang="en">3 ?! Q7 ]% u2 D4 O5 M
- <head>
% a# M# A3 \$ A2 {( t( \& c - <meta charset="UTF-8">6 E" O5 j; J7 F9 b' h, Z C0 q' B
- <title>Loading</title>/ Q, [. D, h7 g/ f X
- </head>7 X9 N5 H8 |: y9 D
- <body>6 c$ w3 ^( W+ |+ H
- Loading...6 y- z8 H. s1 v9 v ~6 T- Z" H+ J4 l
- </body>
/ ^5 _. I4 Y0 V9 V# E; h/ t2 Q - * t9 y8 }4 _ r$ D, e$ q
- <script>
/ I% |% |9 `( {7 M9 P7 ~: P - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
) N9 R: A9 M+ D% S. ~ - //iphone5 X" J0 O7 u; h# ^
- //01 http://xxx/iphone/01/index.html
$ B; E1 G9 l& D+ p - //02 http://xxx/iphone/02/index.html/ Z4 g+ l5 b/ H
- //以此类推
: E/ i; a+ N: [3 w0 m( v. ^ -
- ~6 x1 `# I/ I, s% b/ h6 a - 6 ]5 C- e3 |& I) s1 M+ e1 x
-
! N* y) J# |8 L$ K) P% L3 M$ [7 X: N - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
4 a* I' [+ p9 E7 W( X - //那么我们的offerUrl = iphone,landUrl = 01
0 ?9 {7 P1 Q* C3 V1 a -
( W& d3 G* ]+ H& D7 {8 p1 F - //从url参数中获取设置好的访问参数) ^( p( i1 j! l9 m
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");% @8 l- z/ p, ~1 L; @% v
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");9 o# Y: Q& V, X7 z/ Q, D. t/ E
-
8 k+ b; _$ i' g$ ?- z - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径4 a/ i% B% j; D% h" I9 N; b
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);+ N3 L4 f; Z4 e# c" S/ B
- if(b){3 B& k' p* T" Y& }5 R9 q
- setTimeout(function() {
1 S' F5 S# G) V - var params = funcUrlDel(['offerUrl','landUrl']);
: m+ |* h: S% w4 }! v* f* y - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
! r& ^2 ]. a* q4 W - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
; b6 b' z1 r) W' p1 Q( H+ w6 E& Q - }, 300);
* \) t1 {" [ ^) Z& ]: ` - }else{
复制代码
5 d w! _/ R6 b% u* r, A; Y$ o5 o# R- ~
& A5 H' c1 ~4 n [+ `
% g1 b9 m: z+ K只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。) s- f, @1 g& B1 b) ?
. X+ c3 m' x8 m M9 K" Z
, T$ l0 W" P8 z0 V) i' ?& |0 J; `9 U9 Z. v8 F
: y7 Y( N! g- K# h7 X& n2 V1 h7 H- F' J' p7 n; A) U- ^. M* \! Z
" m! w$ P. {7 ?! R7 p1 ]
|
|