|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
! Y$ ~ N) P. n/ n5 Z: K Y4 Y7 T
) p t7 w( v$ Y% T* m" o7 J3 \2 {在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。0 \$ z, t5 z& c3 a
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。 z1 D8 g6 d* V+ o% X
2 ?* t( R! s+ s5 ~/ b N0 J另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。% V6 ?6 D! `. v8 Z
/ A: m9 T) Z1 W
具体做法是:' p2 f% z1 \( @
6 i) [ ?9 n. W7 K" f1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。; P: G2 Y( w/ H! v: o! ^- a2 e" V5 b
假设前置页面的访问路径为 http://www.xxx.com/
) {/ Y% ?# \# M# F. i2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
0 o4 V( I/ o6 l. thttp://www.xxx.com/iphone/02/index.html# ~. y/ m0 k9 B
那么我们在追踪器中设置的LP访问路径为+ ]2 a$ K& a- u: N; b, F8 e
http://www.xxx.com/?offerUrl=iphone&landUrl=01: i) ]% g% E# f6 @
http://www.xxx.com/?offerUrl=iphone&landUrl=02
' Y! i9 K8 Z$ U& X这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理% f5 d6 v0 r' A* ]4 Q. j9 [, [
0 w5 ]. c0 e9 E. y U0 u这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
! u7 |0 G5 K" E1 ]2 ^3 y* x) [) I% C5 k" ?
: s. @+ K' S1 a/ X/ b" j4 ~
2.前置页面内容如下
$ g1 K! h, ^, ?, F2 z; C- <!DOCTYPE html>3 N) {$ x) w5 V' a- V$ F
- <html lang="en">
3 d9 j, d( b2 X" N% _. `! H% n5 ^ - <head> C1 q0 g* ?2 d/ m# k7 J
- <meta charset="UTF-8">
7 e: W/ v. Z0 I" e% q0 k - <title>Loading</title># Q' c6 Y& R/ ~- Y0 }
- </head>
" k0 v$ h" G8 M, Q* C - <body>! s7 y: k5 X3 p, ~+ P$ ]4 Q& A- R& _& A
- Loading...
( _( S8 u# S5 Q) W$ { - </body>' g, r5 a+ f2 ?- ~9 [$ ]7 a
- , [! m* k6 m2 j( s: R3 L# }/ B
- <script>
! \' z* }% m H. e6 Q4 { - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成# j7 {4 b" V2 _6 J2 T2 c- i! J8 V( V. g
- //iphone& S6 y K; Q/ Q; e
- //01 http://xxx/iphone/01/index.html
, T g" r3 V+ y$ Q0 T - //02 http://xxx/iphone/02/index.html
+ C4 {8 H# \8 m% i1 I - //以此类推
. s0 D. T' Z U3 i, `3 q - / p; J8 p% I3 ~
- + K# f! J; E) b0 ^) m$ b f
-
! W9 {4 @! ?/ l n/ I) p* ? - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html/ o+ |3 ?7 r$ S, z4 A9 A
- //那么我们的offerUrl = iphone,landUrl = 01
( ], ?7 B9 R- ~: N6 `7 L( @) J. U, | - * V: k# v/ k5 c) U
- //从url参数中获取设置好的访问参数
; v% @9 s! [3 q* w - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");0 r* Q5 D; T: S8 s
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");- ?" H, B% n+ b) ~+ p; A* r
- 2 A; I* m. J/ n& C
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
5 D, i4 a2 J; h$ D9 B8 T - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);# ~# x# ]+ E3 o5 i/ `! s2 }5 Z+ ~
- if(b){, U7 u5 V( E5 L1 \( u% ^: B
- setTimeout(function() {
0 l1 [- _6 `9 [- o) e9 x9 u8 I - var params = funcUrlDel(['offerUrl','landUrl']);, o0 C3 z% @+ q/ r
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤; R3 V3 S7 ^" R' p8 B# b
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
6 K$ E# X1 i: v3 t - }, 300);
' F8 n/ g9 k* x/ z - }else{
复制代码
2 P6 D4 G' R( C6 T0 _" U) `, M' _+ k# u/ K F, ~
7 f0 c% n+ ]# |1 b6 [/ |
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。3 ?: ?+ [) F' ^' |& |& {: U
" R" V5 D& S7 z
- J. H! s, A8 V! H% z0 ~8 Z) L6 ~+ f% k6 Z' Q, Z4 k6 ~
0 Z) Q) ^0 [6 X$ E
# z6 A V9 e0 W2 F Y6 q' `' p& E2 q/ c& [
|
|