|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 , l R9 s% o; _1 q% g! r
' B1 N, x. v- Z# U6 l. e
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。8 g; z7 \0 J* U; L& K
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。# I7 V- A0 x# Y
; [# s1 \' i7 r9 [另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。. {8 f! T' A. W( f. K9 ^+ V3 {$ ?
' O& i1 t: a6 F; P' c
具体做法是:
; z+ p" E" C0 N2 N, F3 D' C+ R7 G2 q
$ t) K! z& q$ s( g' z8 [" M+ M2 Y1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。 R# i: V( W4 d2 ]4 |
假设前置页面的访问路径为 http://www.xxx.com/% c$ j8 B# [4 r M
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html : ~0 P( M' q7 b. O7 p3 p
http://www.xxx.com/iphone/02/index.html/ f5 \* {6 D4 Z4 J
那么我们在追踪器中设置的LP访问路径为
, g, @' Y. A" Y& c) bhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
* U, H7 x: v: p$ |) `1 _8 Ihttp://www.xxx.com/?offerUrl=iphone&landUrl=026 K! n' p" t$ ?# W
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
8 v- C/ e6 K' w2 U* b6 [0 z) E$ M6 ?4 Y3 f
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
: k0 {, V! \( f8 l/ E. o
7 d) R4 P( n. T: [* q: G) M2 B- v( Q
2.前置页面内容如下
1 [+ w0 ~( v8 p, Z6 F- <!DOCTYPE html>
+ H U, T" i6 A' s - <html lang="en">7 _; z- p& T- g8 O' B
- <head>, [0 x% E/ D5 ?2 v- f3 q3 E" \, b) A
- <meta charset="UTF-8">$ c3 m* u4 ?" _% E4 Q3 T
- <title>Loading</title>6 L' M5 ~5 Z1 W( \. [* b6 c, S
- </head>3 ~. W8 N. W: S
- <body>
; Q$ d6 G- A) ?: z1 E. O: j2 H - Loading... g: A% [4 w+ E' y4 V) y) m
- </body>( @* K5 P7 V! j# s5 l. w+ r
- 6 Q, f' h) Y( j: g/ e! F
- <script>) Z/ T/ @: N5 d& \, ~, Y
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成5 N6 k5 l. o5 W2 Y
- //iphone
% ?; w1 h) N. P8 b! e8 @/ j, A - //01 http://xxx/iphone/01/index.html
% O0 s8 Z$ o$ X% |8 |" h* u - //02 http://xxx/iphone/02/index.html3 a- R8 j0 E" S6 F6 J
- //以此类推6 P) g) E ]. Z, z
- / R2 h9 U8 c0 a8 `( N$ g' y
-
$ \$ ?7 u4 W- m+ Z6 `+ @" b -
" O% V2 o( S) l1 X" D - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
, Z, g5 k: e6 m- T( X9 L& N - //那么我们的offerUrl = iphone,landUrl = 019 x5 e6 G: Z9 L/ N: c* b
-
6 w3 |# S6 ^1 @ - //从url参数中获取设置好的访问参数! x1 b2 m4 M3 m# q4 k) Q
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");" o$ k# N# `+ T1 m( D* [# k2 @
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
( Z( i% d7 t: k& }5 ~, V/ W! r - & o0 i$ ?9 s6 {' A0 U/ M1 y
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径, y: d. Z1 d* B2 p
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
' c; j* h% Z; H" }* c - if(b){
6 u* f$ G6 ]: k# o7 S: T* T - setTimeout(function() {
7 l6 t; F1 `9 X& D& r2 g3 F - var params = funcUrlDel(['offerUrl','landUrl']);% [$ H" D: C b9 X
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
$ @& A0 N: R- m8 ^0 r - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
7 o$ R4 B- h4 O+ C - }, 300);+ ?$ ?$ A3 V& ]/ B( ~& c
- }else{
复制代码
/ E" B3 n2 a; O" m8 u
6 t4 p! q# H7 s0 _/ t8 N
1 m+ J5 u/ I5 u# s# ~: n! Q只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
8 S; r5 E1 K W, B& u7 k& M' _+ U! p
0 j( I6 U- J/ @# D
: c$ b" r- Z4 O# V2 \2 p2 e* [5 X7 { t
2 d: A$ ~ G4 h, n( O6 T/ Q( z& ~2 Q! c7 C( ?% O, b' v7 V7 a
|
|