|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 / F8 O; s3 N% q* j/ l) ? t: n
( ]: ~ k8 f% v7 |+ ^7 \2 r
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。7 {) a s' o" b" v% w: b
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
" B: Q' V# f2 p& }/ m6 v# h" G5 c) K! f# Y' b0 g; w0 b4 V
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
6 o$ {" Q' Z! j: k. J: B5 ?; O" |: w! [4 W9 G
具体做法是:- \) j3 J |% F) Y1 e/ S
# {2 S2 j" m/ Z
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
( u; s, p0 M' X) T7 M4 l假设前置页面的访问路径为 http://www.xxx.com/
$ f7 X" o8 y+ N( R6 I4 C2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html $ B( d$ \7 J a( `1 h
http://www.xxx.com/iphone/02/index.html' M: y. U' R; l3 p7 X7 s6 I, k8 r
那么我们在追踪器中设置的LP访问路径为
1 T( W2 p6 B) S8 L6 P* Vhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
: ~2 c; I& t" u% v; N5 W9 @# jhttp://www.xxx.com/?offerUrl=iphone&landUrl=02
8 P5 u: v- r6 T* B# n这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
9 Y- w4 l5 a. a+ ]2 s
+ F; ?1 {' ]& e& `; W! G$ }7 p1 ~这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
- o( V9 I* G: m/ G7 o8 m- y: t
r5 k3 c2 O! l9 f2 a/ q2 ~9 l8 b+ t3 R6 |% W0 F
2.前置页面内容如下# Q- `* x4 R- Z# I
- <!DOCTYPE html>0 }0 V& C+ P. I
- <html lang="en">* W4 F a F: p5 x
- <head>
Q+ q7 q3 X8 Z3 s - <meta charset="UTF-8">
: e( Y3 z6 f0 q: [; ^ - <title>Loading</title>. @$ g- r% y6 e6 a) r
- </head>+ ^: l+ S7 c5 S8 ~
- <body>
! D9 U$ K7 g+ O$ i8 T - Loading...
' b6 u9 x0 i& D7 y* W" x - </body>
/ \" D" c! Y! D: Z0 h1 g - $ n7 @2 { S' r$ m# Y- n5 T) [* m
- <script>/ c' k& @& c* N8 l
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
7 [3 T8 s; F: D! K& f0 L2 Y - //iphone
; m+ [$ I* W+ f8 A) x i - //01 http://xxx/iphone/01/index.html
5 A' u0 P- H+ Z; G- Q) V$ k - //02 http://xxx/iphone/02/index.html
& V) |/ p' H9 b, a- Q3 {* B' \ - //以此类推
% M$ B, \/ @6 {5 j) y2 r+ S. V -
$ q+ Z& m2 P) C$ W t7 \# c - # [$ a M; E* L, b1 E" ^4 j
- + c( x6 q: U9 ]$ O% D3 J6 E2 h# j
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
/ s- i! n5 ?9 K* E - //那么我们的offerUrl = iphone,landUrl = 01
4 I; f% Q. r+ x# f* `" W/ O# H - & c1 a1 E" U% C( o
- //从url参数中获取设置好的访问参数+ K. n& Q/ M8 c9 d7 q4 `' O$ E2 d
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");' ^ X; ]3 p& w. h' c3 d/ n8 {
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
9 s$ I7 ^: y. z! N& p% F k - . I( R6 V( P! O; ?2 s1 n5 p1 W( Y
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径4 \/ Z7 s% Q9 _8 e$ Z; ^1 ?
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
" _0 W6 Y6 n7 ?; u3 Y" O) T - if(b){9 q# s6 s* d. F+ H1 R, i
- setTimeout(function() {
2 w* b- ]9 |2 \ - var params = funcUrlDel(['offerUrl','landUrl']);6 A. Z' Z# m) {1 k* ]
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
9 Y! y" ]- s- S5 { - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
' c7 i7 a0 \1 h' |2 l8 b [# o" Y - }, 300);1 M1 e* |, _2 b* c
- }else{
复制代码 5 i* K# c0 C; l! B E8 H# z9 B: s2 ]
/ q4 f. _* T+ G3 Z
% M6 m( N& R0 M& l只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。& i: v) H/ y% l6 i
3 F, V. i5 d8 U( k. w( V& |4 ?. M: g7 Q( O4 F' l: ]! o
/ U0 A' w- }4 v/ B# E
# F" C/ Q. @$ S: E0 s- T8 q( g
- [& {* |% Y7 F0 p+ F" @# k6 q9 a, [* m4 V( u; w, T( C$ B
|
|