|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
% i( Q% e! o* O: T% c2 F7 m+ ?; T
9 j* y3 s4 k" c+ Z- o/ K- E! q3 t2 g在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
+ V( P) a4 Z8 a' r但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
* g% _8 R- h* k9 ~! Z; r0 h7 Y
! G, i" G3 A% u& q/ Q/ `- S另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。8 w8 Q T e. C/ Q w) |
% F# ~/ s' V$ ^( b; v具体做法是:$ f5 z& x& C6 S- W; v% X
. X W1 j# \0 i4 T1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
/ f" B$ X: B5 A) T: S假设前置页面的访问路径为 http://www.xxx.com/' ?1 \% h( _/ J+ P" F% Y4 Q
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html $ q8 f: k4 d" g7 N; G
http://www.xxx.com/iphone/02/index.html
! C' `8 J5 v) r$ U那么我们在追踪器中设置的LP访问路径为
R4 @" G* C( k% {http://www.xxx.com/?offerUrl=iphone&landUrl=01
. K& O" ? ~7 p7 Phttp://www.xxx.com/?offerUrl=iphone&landUrl=02+ r4 I* G! L9 X
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
' N$ F) {& n; l A
5 {. x6 m" s; K0 Q1 l这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。+ g) l+ p4 z1 `$ F- P
& J) Z, `9 F, v
# {- C% o3 {) ~6 H1 B/ Y2.前置页面内容如下
Q1 b! a3 I, `# i- <!DOCTYPE html>
! J& T* `4 i C- I$ @3 D" X - <html lang="en">+ U) s# [0 F, i9 ]& t& H: @
- <head>
) g |* G$ [# z; H. P$ e+ c - <meta charset="UTF-8">3 p; S* e) N& q! E
- <title>Loading</title>
1 S& v* D2 Y, ^* X2 w - </head>3 r! n4 p1 j2 _+ S
- <body>
6 D }. _% | ~4 S5 [1 \; h - Loading...5 ], P; {" J# P- ], h, V% J
- </body>3 j3 q; B$ @* z% [/ K/ z' S7 p! L
- - G& H. U* z' {
- <script>
% j9 q( U7 a" x) e0 [- W; m - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成8 c. @ ]% o, ?: w! k! Y( w! B
- //iphone
' m& _ h+ n$ z - //01 http://xxx/iphone/01/index.html
! K( C! @6 K) y* l: h - //02 http://xxx/iphone/02/index.html7 j* z' R5 w% j9 z5 |( u
- //以此类推
' H' X0 ~. s4 n& x -
; W% _$ m( V. ?1 @- @ - 4 l- K" v' M8 e1 T |
-
* w# Z. Q- P5 N - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
' @4 c0 u( e- R2 l: j - //那么我们的offerUrl = iphone,landUrl = 01$ ]6 C3 U4 |& L. G5 J
- 8 W! [& A5 i* y
- //从url参数中获取设置好的访问参数
1 T1 }) k, S2 E5 ^ - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || ""); r5 U" Z" {+ w$ Y( A! N: q
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");, W% f; V4 Z% A" k; g
-
/ ^2 N) ^9 m" [- c$ S% ^ - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
; {, K T u- _ - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);9 k6 ~ S3 Y e
- if(b){; A# d" c, w% O5 q4 i+ o
- setTimeout(function() {
$ o+ X6 X. L" O" H; K - var params = funcUrlDel(['offerUrl','landUrl']);
$ G- |$ \ q) h, S0 }" S - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤1 r' b% o; \, l+ x
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
7 \% d5 ~0 p4 q$ `5 R+ b' h - }, 300);
: U9 f& R) }1 N2 P - }else{
复制代码
0 v1 ?5 w: W6 @/ R' B0 h" D" U. P; r2 H2 u' s: ?" c
* D t4 L" Q, ?2 o3 _9 |5 W- A只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
3 R+ W7 z y( k% G6 f
* L$ T7 H) Y1 j N. P/ }
( m- _2 f8 ?' T( u. Y
+ J' g, e/ ^4 S, D+ f2 E) F z- S0 }/ L8 [9 b# L6 v) h5 I8 W
& W, K9 e% r0 ?& M- c& B) N$ {! e. b' J2 I
|
|