|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
' u( Z& {3 ?' ], q$ R
# u& [" Q3 M- ?4 a- a5 ~: e在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。1 m* z5 C. }; F' c& n3 R
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。5 z, x9 N- y e% }# `% B% e
( z& |9 Q- `) s6 ~
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。7 V& V1 K1 [: Y6 o
. ?) V& t! u7 ^$ x" W0 S' O7 y具体做法是:
$ [" \' t6 m5 |+ r" y1 \; O1 J
( ~. h1 A9 D6 G$ f* O1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
& k! u, t- ^& s* }7 E( T( u$ V假设前置页面的访问路径为 http://www.xxx.com/
# X& _* P- Y. R2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
8 t2 x+ z2 F, c* dhttp://www.xxx.com/iphone/02/index.html
2 T. b6 G9 W+ s; P那么我们在追踪器中设置的LP访问路径为
" e# R. h0 }! E2 zhttp://www.xxx.com/?offerUrl=iphone&landUrl=013 W: H4 h* x/ v* M
http://www.xxx.com/?offerUrl=iphone&landUrl=02: K5 v( L1 q# T
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理/ |1 _2 V$ w0 O/ S6 ~, |
# v( k5 h- q4 b* A3 H! P这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
9 L7 G$ G* u Y9 O; e6 g1 d6 L5 i6 h" J
2 U V6 z' u- h3 j
2.前置页面内容如下
' K4 y7 K1 x( ?" p- <!DOCTYPE html>3 W% m' I6 H2 S2 K) W3 B$ j% x2 q
- <html lang="en">0 \* N# f5 H& c
- <head>& W% b6 x' s, X: V% Q( ]& `
- <meta charset="UTF-8">
. i- k5 B$ p+ X" c- \ - <title>Loading</title>
# }# s9 B( I0 Y2 l9 ` - </head>
; v8 Z& B5 F8 |# j3 q9 ~) {# J - <body>' ]0 l" I" @7 v' ?: A8 b1 [' U: g9 D
- Loading...
' S/ _% l) Z6 I' Q& K( [ - </body>
$ i- B' w5 x" t
) o+ `& J! N) O& d [- <script>
$ @$ ~# P+ o9 e8 t - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成, y) D; V% T% ?; C, z* A3 X
- //iphone, c4 v) f' i: O5 }- S8 k
- //01 http://xxx/iphone/01/index.html
3 O- P2 t Y' C - //02 http://xxx/iphone/02/index.html6 `! e* q+ B7 y$ D# I q
- //以此类推
5 |: E7 s: C5 ?7 t2 { Q2 F -
3 E- w( h5 k3 n! x$ ~6 M -
# [# E- Y) v+ X) @% v( u -
) [$ n2 A$ D V0 M9 W2 r - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html6 c. k1 ?6 A7 e/ B! A1 A( }
- //那么我们的offerUrl = iphone,landUrl = 01
0 _! z5 X) y- l2 Z7 e9 S/ | - ' r( R" c0 U; Q3 y: G/ \3 W! \
- //从url参数中获取设置好的访问参数
( r, V3 G! W, q5 X - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || ""); r7 x M$ z4 \4 _* p8 i# v. A. [
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");/ k9 ~( g( P/ [; e. j% j
-
: ]+ Z( n8 L+ k8 y - //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
7 V4 O1 a. e+ j5 g( k - const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);4 m) Y0 M q, e, L: D- Q
- if(b){7 w3 ?; j- n: r9 B! W
- setTimeout(function() {
9 w9 ]; G) V, y) E" J6 m - var params = funcUrlDel(['offerUrl','landUrl']);
, s! N5 ? w# B. i - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
' Q, {; L/ L$ Q/ P - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
9 P K: [8 _7 {, s9 e* ~ - }, 300);
# o! o- Y( q" d3 g' z- _: A; U - }else{
复制代码 8 Q4 f. M! L" S0 T# O/ W1 L
- `8 S' L2 d/ e% E" }4 ^ }3 W, j- _: B- N. k) C( G, U$ `0 T) ^
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。$ X/ e! W/ C. Z \5 S7 y
1 n2 M6 s/ ^7 X9 R- v
& L `3 p2 E6 \& q
- l9 }5 u7 x; h, q
4 O [! O0 n- _6 g5 `! W3 {" ?# S' j$ O" y( z1 v. z5 o8 |
' s) R/ z7 c8 S0 a
|
|