本帖最后由 yang。 于 2021-7-15 23:15 编辑
- C1 X6 v1 @; P2 v8 w: j0 ^! {+ a 3 _0 z" }! X( c
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
/ K! y6 c, ^1 C- [7 I 但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。2 i5 w$ w$ B' ]9 Y1 ~) h
# N9 s$ U! J9 D/ [ 另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。6 v* P" M4 Y& W* j2 D% w. `7 W. d
$ ]% s& K7 w$ A% t
具体做法是:) X% y9 R) U& |0 G2 z# H9 F7 _4 {
+ g7 o9 A, g7 J1 x9 F7 y 1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
" d% @) d3 p* _9 `( j 假设前置页面的访问路径为 http://www.xxx.com/ : O9 I6 }8 x; t, |/ y6 R
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html 8 _3 S1 h0 t4 h' b$ {( f8 D' a% z
http://www.xxx.com/iphone/02/index.html
g a; D1 Q9 J* T# r; D( D 那么我们在追踪器中设置的LP访问路径为
/ k: G; d l! y$ N5 ] http://www.xxx.com/?offerUrl=iphone&landUrl=01 : s& F- {0 }8 `2 ?
http://www.xxx.com/?offerUrl=iphone&landUrl=02
5 @" X" q: E8 e3 o- n" [0 z4 V 这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理$ ^6 Q3 g" b' T' h
+ U$ ~) w: f7 u- C 这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。+ n7 T4 t* C- ?4 L% i
8 J% v: D L" s5 C( q2 V. A, o
4 I9 Y/ o% \; H4 E 2.前置页面内容如下& y7 j" G5 }- A1 A. C
<!DOCTYPE html>
0 D, |- c9 L- p% t5 i <html lang="en">
3 Z, J. f7 {$ Y7 w8 R+ p& P- i: H <head># V3 f9 |2 F5 i, H$ [6 p
<meta charset="UTF-8">+ J' w1 H# Q9 U+ c# J+ w( H
<title>Loading</title>
/ @$ Q( P7 i, g9 d+ J7 c1 |* ?4 E# U% d </head>: M$ \0 ^9 Y; F( P( {3 i: K( Q
<body>
3 D* i' E. @' D: {9 r, P. l2 J9 g Loading...
, p0 a+ |( d; I: X; `; G </body>" J( |8 O7 B7 X$ O0 A
! C* u4 {# T0 G <script>7 a+ j/ W; v( D& B O3 ^) J
//因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成' N* E$ Y l$ C6 O- |
//iphone+ C9 D3 w1 M8 |
//01 http://xxx/iphone/01/index.html
" P: ~2 W G( R9 l* c0 o+ z% g; D: q //02 http://xxx/iphone/02/index.html
! l) G/ J8 b' |# q9 G# m //以此类推
3 q: l: w; P; s& z# ]: ~# |
6 D$ d3 A# @' k# h' C
$ E. n/ K7 l# Y$ i' \" z* x
6 w g9 j) J+ [! ?+ [4 ~ //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
) m5 k! F4 r l* m' ^' ]" `6 ?& G //那么我们的offerUrl = iphone,landUrl = 01. A$ |! U/ W/ [' q
5 I e( d* e: r8 z( o+ a- F7 U
//从url参数中获取设置好的访问参数* R7 w, c3 r' `% D$ M6 |
const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");1 \9 L6 w1 M! x$ q- p; D
const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
3 t9 _" O, U3 P: }! ~6 i5 t4 n $ \' O. m% r& t
//校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
5 \1 `; [$ u+ k const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
7 _9 A+ M# N% m8 W if(b){
& T/ Z/ f4 s, q# y( |+ x setTimeout(function() {6 W9 ?0 g) M: a; e
var params = funcUrlDel(['offerUrl','landUrl']);
# C, A1 r- q( u5 \6 q // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤2 i0 x; ?/ m% n; P8 j& c& G
window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);( o$ I! z* ^9 J
}, 300);
9 ~. g) D1 H, `# X$ P }else{ 复制代码
2 t O4 V3 w/ b; v. z' u$ y @0 I/ B5 v
5 r/ K* ?* t2 j; v * G/ [4 w! v' X. Z2 J
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。( m8 K/ @- o3 X t" Q$ o
; d3 A7 v( p6 x) l: f& U: U4 T+ Y
5 h5 j3 H9 N% e; E, i U, G& z( e
( z' C# l# Z6 X& _ 1 O) j; B" D) B, ] h
4 f6 J' u5 m! x+ G5 R: [* f7 e
2 p, E6 p% d) K7 M' K
相关帖子