|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 ) S, k& F# ~4 ^' e( O- E% A& Q
1 X1 [& D5 Q5 n. a, J4 |- k! p* n
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。1 N1 M, O( o0 _& @1 c( i
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
' c- p5 G* d+ X
* n& V5 @! y5 u* \8 m另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。% @3 M8 W O2 ^7 h& y$ q" p8 }# O3 n
# a! m* P% p9 J8 q
具体做法是:# Y- B2 b2 K& y% c
2 L2 N# F Q: c# p& \6 d9 C) w) |) u1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。, `0 T5 U! ?3 N$ z2 b9 K
假设前置页面的访问路径为 http://www.xxx.com/
' l9 {; d4 Z* o# l) @0 u: v2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
: l* b( f6 R# khttp://www.xxx.com/iphone/02/index.html6 g5 w! q) J. X: M. b3 [* e+ s' a
那么我们在追踪器中设置的LP访问路径为4 I5 b1 @: j! q1 ~
http://www.xxx.com/?offerUrl=iphone&landUrl=01
+ t: S- E+ G. y D1 ^http://www.xxx.com/?offerUrl=iphone&landUrl=02
3 s3 g8 Y+ E" Z }, V这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
4 u% m& o/ V7 |) q" X, c5 b; ]
( }" Z {: [8 x% q+ H这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
2 R& I) p- i- L, H5 E) r p* Q& _
5 T. h: x4 V4 [
! W! p( k; w0 }2.前置页面内容如下
# A( ?! [- {) f4 K4 Q- <!DOCTYPE html>) `, z2 p, l6 \( T( R+ z
- <html lang="en">$ d; S% ~: W' m: O( q; N. S4 f1 l
- <head>8 E) }4 s* w( V6 m6 |
- <meta charset="UTF-8">
' Y9 `5 { D: ?) ^+ D0 v3 { - <title>Loading</title>- y1 V2 L; V( C! f0 s/ d
- </head>+ z# B. q# m8 m A6 [
- <body>0 Z, f3 D0 N8 j$ B2 x8 k( S4 F
- Loading.... q( i5 W8 p$ B# b( a+ d& z
- </body>
# {- {3 B3 C5 X; C
1 e q( c- h# V# ^. a4 y( j- <script>
- J) ~# Q: c0 }" ]2 F @ - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成" k+ A7 f" E$ b u
- //iphone
4 _ V$ N% }- o; g1 W- U - //01 http://xxx/iphone/01/index.html
# h3 c) D+ T( @( V7 }: b - //02 http://xxx/iphone/02/index.html. Y" p/ Z7 R$ F- h3 ~' I* F
- //以此类推# ]# T& P A) n+ N* L8 p \% W0 `
- . U8 c% p* s: j
- ) ]# s R& b5 T+ {
-
7 m' P k7 B4 u+ ?6 _1 B - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
2 h$ K# B: Q! k1 P. I! ]% O - //那么我们的offerUrl = iphone,landUrl = 012 I( t: `" U4 z) G
- 6 B! T1 Z, Y2 m: G2 R+ `: V
- //从url参数中获取设置好的访问参数( A- M' B% y1 y" a/ G# [
- const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");, R( j. Q9 T! s v
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
; O2 z* M& N8 Y k - * Z7 X3 D0 G# z! [4 k
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径2 l7 r) h; r* l8 n9 W1 U
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);+ K( \% o. A) M! _7 o. o
- if(b){
: X0 v) n* H9 }, Q, P9 ? - setTimeout(function() {! Q4 Q. I. R6 B; a7 N _
- var params = funcUrlDel(['offerUrl','landUrl']);
' \: H/ e9 B* c6 D - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤" A' |$ H" M% a0 r6 j% ] x9 M
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);) \6 P* H& y* Z. ]; R# N F
- }, 300);
: Q- {& }$ y1 Y: \1 \& _ D3 g1 S - }else{
复制代码 ' C2 i. U, ]9 ~" U8 z# q- W
& B# y6 E. E# u) z) S9 U
$ P9 p! ^" {$ U; ^2 M
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。8 B- a$ }3 `5 b5 Y
' ~6 u, u2 ]2 o7 K. e9 w, P0 \
" [" F, R1 x5 y( U( l( q
) f$ t; ~0 N6 i
& X$ A% ~9 j* { L0 ^
) o( d% e, f* e) o( {
% P! c( Z7 L$ ~7 E! N/ A |
|