|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 6 m# Q7 ]1 K j# q" k% h, `
* X, M: I( A# P: c8 D在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
& f7 V& F& o: D8 y7 o# w但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
' ]# p- I2 q2 G/ _+ M) c
' l7 p1 j9 u7 s$ D另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
l6 H S0 j. Y @4 @) h/ ^. s
% o) @8 f0 r0 H6 a: T- ]具体做法是:4 t z: l/ v8 [/ M# Z/ Y; ^; q& C8 j
6 p! g7 Q7 |- F) K/ |: J6 ?1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
0 Z: P0 U. j, `, w假设前置页面的访问路径为 http://www.xxx.com/! S% V u. y; j# [' }$ s# x2 S
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
m& t$ ^) `+ s7 C8 F4 h4 chttp://www.xxx.com/iphone/02/index.html9 _1 o3 X1 I7 W) G' t. E
那么我们在追踪器中设置的LP访问路径为
$ D* ]0 `/ }5 r, L! S2 x' Dhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
, R) G! S* L5 E- g& z) r/ Jhttp://www.xxx.com/?offerUrl=iphone&landUrl=025 J3 O) d: I8 h8 W
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
/ b! g5 M# t: B/ q# L; u/ k0 r, Q: a [6 M( R
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。! b$ E4 M; B( r+ x7 Y
) g6 `9 g z6 T- [+ j
; _7 R$ N% N& Q) F' E2.前置页面内容如下
. e7 R8 G. |( \- <!DOCTYPE html>
( x* N' n+ a+ Y$ M- A - <html lang="en">) M0 ~0 f& U" A# i0 V, q9 g
- <head>+ @5 t" _/ l3 y6 I
- <meta charset="UTF-8">
1 | H0 c; V+ ? _" V# ~5 d; i - <title>Loading</title>
; z8 l+ J$ k1 W( ~3 r# u - </head>0 N4 S" _1 k% @3 q% b2 S$ o
- <body>
( X- @) N r: i% n) o! h - Loading...! o# y1 ?0 d/ f
- </body>
( g+ N0 f* D \" V+ J
! O+ l; O: s- c% l4 l% V- <script>4 q$ _5 Q0 r; W: N: T d. R9 {
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
5 b9 _$ @( s+ v% R" D+ z: K7 @ - //iphone/ y; ?" @( ?& U. \7 |! q6 F
- //01 http://xxx/iphone/01/index.html" ?2 p, @( Z ~: c9 n2 E
- //02 http://xxx/iphone/02/index.html4 s }. r3 `, a9 q. l
- //以此类推 i/ H( u8 y2 a" B
-
5 N7 F# u N- P$ ^ -
+ e4 x9 c+ p( Z! b8 P - * W5 c8 E, d7 o( T3 A! t
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html2 e$ c: n4 @0 E( D" m# _
- //那么我们的offerUrl = iphone,landUrl = 01* {* ?- ^; o0 u% F2 F7 |
- ; D' U: N& I. o8 x6 n& |" i# S8 `7 a
- //从url参数中获取设置好的访问参数
2 p" S2 f( n( G* x0 E - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");# T( A" E q% j M: q1 r( w
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");. Z# p8 ?' K2 F; T
-
! h1 @- k9 F4 ~+ S# y - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
) t/ M3 E" X d8 ^ - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);" i5 i; ^# W. X; ]/ a% L1 m
- if(b){
9 m# V$ Y* I( A, A, E - setTimeout(function() {6 a# }5 [' } T# T6 p
- var params = funcUrlDel(['offerUrl','landUrl']);
, h! e8 i5 L0 e0 S% B& [) { - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤) A. g3 q1 T9 }
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
/ C/ F6 Y4 ]1 r2 r - }, 300);* [. [8 W5 H& l1 Z& s
- }else{
复制代码
9 U! u: }5 c: ^0 o: j5 j: T3 ~* d& z. K& Y D* C
# h1 T7 i) f6 Z2 g; B
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
' D2 r- V3 P4 Z* W7 d4 l" @
2 d* v$ q0 Y/ I7 p
. x. q2 q Q; z3 e3 b/ T# J9 m2 M' U# R: L' W
3 p0 }9 @) {8 M/ ^! n
2 y( P2 o0 m* u/ ^8 G
9 l! _* }! W% s+ o: e |
|