|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 3 i0 W2 B0 x/ p, P( K4 }
( I) |" W4 r2 ] ~+ j: Z在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。( r5 F, N! u1 J' `# T- q
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。+ _- L P7 V. M4 Q7 E
+ ?+ y9 b3 J1 H+ v( d7 _
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。7 y$ n7 t" C) |- S
+ S' f* B" k$ m% h" v具体做法是:
" k+ `* C5 q: T
5 F f1 o0 o t& N7 c1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
6 ^# A* i* p" |: E假设前置页面的访问路径为 http://www.xxx.com/
7 ]2 D3 L, L7 I! a, T* ^2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
5 ^( g4 { t0 k3 E p- a8 khttp://www.xxx.com/iphone/02/index.html
2 G U0 D" h9 @- |5 d* Q那么我们在追踪器中设置的LP访问路径为
+ F) ^. X# g+ ahttp://www.xxx.com/?offerUrl=iphone&landUrl=01
, {- R+ \+ u! `* q3 V3 i. Phttp://www.xxx.com/?offerUrl=iphone&landUrl=02
7 C2 o* ]" v- c' A8 u这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
$ ]- T9 f/ j7 q6 I% f4 f! W6 H) b" F! m! ^. f3 C" \9 I6 J
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。" {/ T6 q3 N8 \. d
. P: T) W* U4 g$ A( n
/ b4 S7 r* S. M% C3 t2.前置页面内容如下4 s M- B: S4 S5 Y9 ^
- <!DOCTYPE html>$ N9 r" ]$ i+ i$ F+ S( S
- <html lang="en">
* t8 l9 o5 s/ D8 k5 k& I - <head>
: w( E/ g8 B) K - <meta charset="UTF-8">
9 Z& l& c$ t! ^! w( S - <title>Loading</title>
; g+ e: U3 A" o6 R- r - </head>
; u8 C7 e, {1 I. Z2 z. @5 X( A- z - <body>
5 e- k3 l' X! T ]* y6 k - Loading...8 P' a+ [3 }6 w5 {5 i( | P0 k) b% |
- </body>4 f9 a" i% z3 N. I$ Z* i0 i
- 5 f; s2 D+ j# D* Y* W( Y0 q. T
- <script>6 G- M$ p$ ^4 ]* X5 P0 O$ _- @% R
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
Z3 j5 k# A- {/ q; k5 p - //iphone% v \* y0 R T0 t/ L
- //01 http://xxx/iphone/01/index.html
5 S2 l& K0 l, W* T! L. } - //02 http://xxx/iphone/02/index.html; b; K, r- X! E& C
- //以此类推" z' Y- k$ ^1 p
-
$ e! K/ ^" h; W3 S" f6 `7 q -
* H1 O. A1 ~# [! P8 \ W - 2 l3 U) r( P0 A; ]+ `3 N$ V$ E" R
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
0 `8 b5 z0 f" s" b7 }* q - //那么我们的offerUrl = iphone,landUrl = 01! D, G1 U6 T2 v5 I
- $ _1 \# F( U3 B
- //从url参数中获取设置好的访问参数
: P# c. _8 ` @4 i/ o2 S - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
; |( D3 W1 i+ |( N1 i - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");! v4 { a+ i0 z" \1 F9 N
- + v# ]1 e \; P& a8 m
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
% [; A* I. x5 U2 j- \ - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
2 z9 v2 R) F8 C$ Y' v% A - if(b){
3 q. W& W; e% J" m) ~ - setTimeout(function() {1 m! L# l2 K$ t0 G% p1 C$ }, b/ N; c. F
- var params = funcUrlDel(['offerUrl','landUrl']);- p- O6 S. a1 h. l5 G# s; A
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤1 u1 R1 p" q$ G# F. q
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
3 j8 `! Q' u; e4 l4 D1 \7 {- G" z - }, 300);
. A% e) y, d# z" V - }else{
复制代码 7 C d; z% X2 Y. }7 I$ r1 a. I8 B7 t
- L! Q# D2 N9 X0 N5 ~2 v
4 d' x0 U/ j9 O8 J/ @$ |% m
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。. G5 c3 f7 \/ P4 b8 E7 Y1 z
1 ^- d# H i, C8 A, F) L, k1 `, J/ g$ s( c
* U) S1 p" X& q- m, _" [
6 _3 |2 e: O( u5 P; Z' D/ F
: b7 _3 M/ Y0 M! v" B$ K3 Q( ?* c0 x; }, O4 G
|
|