|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 4 k7 a2 M! Q9 d! u
& \: ]9 y" O# m
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。( _& U$ @7 @( h$ u4 |
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
0 [" [/ P3 ^. ]* b; w9 K
$ Z. K$ s/ x6 C# W \+ }' i另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
5 {: u q7 I- `7 a7 `
- ^( b/ b& d: ~5 |; |具体做法是:, B' x* e" M, K8 S3 V: x
& Z3 O; P7 Z6 V1 B1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
0 L; ?$ m: ? ~5 h- i& H/ U假设前置页面的访问路径为 http://www.xxx.com/8 w8 C9 r4 N& d. @: T
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
! O/ e- m( U: n3 ahttp://www.xxx.com/iphone/02/index.html4 B7 ]0 A* d" k9 b. q. V
那么我们在追踪器中设置的LP访问路径为$ K& J; T6 x% i4 y3 Z- q0 X6 j8 e
http://www.xxx.com/?offerUrl=iphone&landUrl=015 G* D4 {+ @" |$ W/ Q/ u( T$ s
http://www.xxx.com/?offerUrl=iphone&landUrl=02
/ W3 [0 | Y8 k$ D5 f3 V这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
9 q/ t( I0 D+ M7 K4 X4 L
, I9 x7 c% g8 K* I6 F: K0 D5 ?这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。2 X, {' S* z9 v; a
1 T$ b: x; L n$ E9 p! m
q$ V* ^, C4 w7 y8 Z% s5 C! Q2.前置页面内容如下
1 L/ t" t8 Y* @2 x" H/ [9 D6 W- <!DOCTYPE html>
" Z# [$ a- r) K. B- [/ |, v) }9 E - <html lang="en">( u! [+ R3 M$ D. ]2 R& N1 c
- <head>% p3 [5 e$ W$ F- x- H
- <meta charset="UTF-8">
+ A2 |7 Y% R2 `; _: f# d0 C9 l - <title>Loading</title>
6 O" J* F& O a. k+ \ - </head>/ j- N& i4 Q. P, t
- <body>: {4 g" J) I/ y ^- e+ L7 Z3 T4 F
- Loading...
8 s9 H7 B1 t0 J - </body>
$ R: q3 f; A& I# k n/ M - 5 f$ ?4 v- D2 j! @1 \. Y
- <script>
7 \7 d b5 p! z2 ~6 X; N, Z7 H - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成2 o+ ~8 c7 V: r' q7 N( r# T# ~4 d
- //iphone! K: V; a5 |% C& B* r+ _% V
- //01 http://xxx/iphone/01/index.html9 W5 y. D1 @8 z6 ]3 U' P" P
- //02 http://xxx/iphone/02/index.html
2 z5 r0 W% }9 {% u* i$ _+ X( R - //以此类推
) t' d5 _, \ |& z- @ \+ d - ' S, }! v1 s2 ?+ {1 l! M
-
; y# B1 ~' D3 }2 Z1 Q( r - & p n0 {7 @ i, f5 C* C
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html& w4 G8 s% n* V
- //那么我们的offerUrl = iphone,landUrl = 01
* g- Q6 k; I; v0 O! D, E - & V/ K0 G. _& z& i+ \2 B
- //从url参数中获取设置好的访问参数 Y2 o5 X, ?: P# m3 B; t
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
4 c; \3 q. o1 y - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");) Z2 {( S d7 z+ T
- 8 C$ P4 A8 e1 I) D( d! o
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
& a, C1 M7 {/ N; n# \ - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
/ }5 W/ _ d; L* n - if(b){
. D3 {9 @$ V1 |2 k9 D( @: o; G - setTimeout(function() {
0 P) h7 o0 I1 \" J3 t - var params = funcUrlDel(['offerUrl','landUrl']);: l/ N* [6 W: \* @$ [
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
) Z' Q/ z: w$ e9 j! k5 w# A$ q1 f, Y - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);4 ]8 Y3 i, ]2 W7 K+ B( M
- }, 300);
' _3 v" C. i8 b, a- e - }else{
复制代码 ( Z2 V% ^8 }5 z4 C6 K
- U( ^4 h7 `+ G3 Q+ U, c4 i
7 c- O3 G' \/ j1 w! h只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
. j3 ^* A- L, O& a9 p3 @* l
/ K% ^' \! |9 O( F+ Y' I
7 n5 J* w& h" W* k1 a- `8 z2 y& I9 \
; K6 ~ T+ E# ~1 ]& E
4 M0 Z! f, ?6 ]* G8 j# m: H* L# Y8 [: Y8 n- D5 ?6 x
|
|