|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
& U1 X% J9 Q z9 {6 B) T! g& p4 r
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
) y, r( k% P( a9 f5 M* d但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
9 B& f+ S/ z, F3 }0 u& ^
# N- L6 m0 R7 A/ S另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
) q" ?; }; T- N# l0 Q. N8 J% ~# p9 r; {2 n5 v8 |! e/ s3 i
具体做法是:
5 T: O3 L/ L4 A7 Z+ R5 A% [* l8 `* u/ s2 g6 l/ c0 p m
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
, s$ p7 q4 w) k假设前置页面的访问路径为 http://www.xxx.com/
# h6 [% y( b4 ~2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html : g5 Y# x0 G+ u( c
http://www.xxx.com/iphone/02/index.html
; d$ Z3 O. p* {9 g, F那么我们在追踪器中设置的LP访问路径为' x l. x$ |& [1 W5 ]: m& l2 V/ |
http://www.xxx.com/?offerUrl=iphone&landUrl=01+ |5 ` ]$ k- R/ A/ i7 u
http://www.xxx.com/?offerUrl=iphone&landUrl=02$ e q5 W2 W0 u( e
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
! i& ~" ^; Y2 P; c3 v6 p' Y; W3 }0 D/ h" C. C5 T2 o9 t
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。* t- O( \& t( j/ S; l) a
O! w+ p9 {, D* J4 k+ ~- y* t1 s
# _! B% B) U' B' F1 x) }2.前置页面内容如下
% c9 _' I0 h$ F' ^- <!DOCTYPE html>
" E& ^( k ~# @; B2 @ M1 r - <html lang="en">9 v O+ i0 b m' h6 V
- <head>! f. g% V4 v% V# q, o! `
- <meta charset="UTF-8">0 y( M5 ~+ w7 p
- <title>Loading</title>- x2 P% _# y% S0 f% I
- </head>2 Y" R5 g5 v H/ }8 v+ @) K
- <body>
2 T: O4 P7 x8 P) a' y - Loading...) k' M( S) s) M/ R- v9 ^+ E
- </body>5 M$ j" {! j( a5 e' u
- 6 _9 B& _$ i3 r/ z" b- ]$ P$ z# E3 y
- <script>
& C7 J9 f; n' Y' k1 _ - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成2 ~; Q& g7 i2 O0 l1 S3 i
- //iphone2 @0 |3 Z9 X$ l. S! i. h, D- I
- //01 http://xxx/iphone/01/index.html: g6 Z- y& y B% @5 E
- //02 http://xxx/iphone/02/index.html4 y/ W. O" m) i* |
- //以此类推
5 R$ y1 P+ G ]6 c7 X6 V* m -
7 ?3 \( K ]' P: M% D4 D -
. B2 R2 v# ~0 `0 N - / v" o& U; x8 w; ~ {
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
! `% e1 H. k }+ k4 Z9 y - //那么我们的offerUrl = iphone,landUrl = 012 A& r8 a$ E* @
-
! l3 P" X% [4 J1 z - //从url参数中获取设置好的访问参数
, C4 S, v) b/ F9 j, m3 w# H - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
/ c' U" v8 q9 I! A - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
# b: ]7 C: W6 Y0 H5 C -
: q8 Z4 H9 B: v/ G. c1 B - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
7 S" O. z$ P2 x' { w: k+ u - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);. I' p" N" _) g1 a, m H
- if(b){; |5 q, M1 V+ D1 ]; U
- setTimeout(function() {6 p' f2 D6 h) N! B+ i
- var params = funcUrlDel(['offerUrl','landUrl']);
0 R8 V! g7 Q: P0 `- s h - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
5 V2 ?7 L+ q( x2 z& i - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
# Y) D7 A' r3 C) b" r - }, 300);* i, D C. `+ q& u9 W. g; ^0 R. v
- }else{
复制代码 + p F ^' s2 Y7 i7 L
2 F$ ~+ Z7 j4 V1 a: o m( O+ F: _* v" t4 f
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
$ X2 M. i. z+ a: T6 r: p1 @/ ]
5 z% \- T9 Q8 k
, Z% m2 i; x1 N
/ w( Y; y l# p8 h1 R3 U! b& a9 Z6 ?- K: I# K/ V/ E
4 s |) [9 O# a4 `) k: o) j
# h4 H& Y4 ?1 b6 R |
|