本帖最后由 yang。 于 2021-7-15 23:15 编辑
: X; U8 S q# M) d0 M" Q 1 a5 L6 p/ R7 F1 Z; Y9 D; |
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
3 k8 y- X. s J8 h" V5 p 但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
- x2 k# P7 u, @/ i2 }0 U
8 v$ r$ C$ z) X$ r2 @& z 另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。! x, ?8 |, }0 {6 P U
6 s5 g$ z" D8 u 具体做法是:! H& ~1 m1 @5 v( O2 K
( o% B# |; t, x, b' F2 p
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
4 R% \8 |# B. w! ~$ b6 U 假设前置页面的访问路径为 http://www.xxx.com/ Q4 S9 R: g0 ~; j
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
$ H* H* G, m# R9 N$ F" S http://www.xxx.com/iphone/02/index.html E; |6 }" l: s1 }1 y ` e" e( I
那么我们在追踪器中设置的LP访问路径为) K$ \1 c( k9 E; F5 `7 @; l: p# O
http://www.xxx.com/?offerUrl=iphone&landUrl=01
8 V ~) l6 e) c2 S http://www.xxx.com/?offerUrl=iphone&landUrl=02 & _' i6 G2 B$ P" ]
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理5 e) Z3 I& w# i+ v, c& y
7 j( h9 U: p8 d# U9 @ 这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。9 K% Q1 ?* h1 s
9 L( t- \! b4 F4 s$ k: M
* s0 a0 d/ B% \4 v 2.前置页面内容如下+ J; }0 u) t3 X# f' V7 l
<!DOCTYPE html>+ Q& r: ?8 \' p' B8 H% g
<html lang="en">
) Z$ {9 S; t/ s <head>1 v% e4 Y- {' D+ C* t/ ~
<meta charset="UTF-8">) u" x6 Z4 g& n
<title>Loading</title>) V) V: D! r0 S- j0 {
</head>9 {5 {) ?& C3 P. ]' S/ L. z
<body>
8 K V) c% K" M Loading...
" t& G; \5 {5 v$ F/ ~8 e1 s </body>
0 ?1 U+ A3 }5 s3 o( n/ X: S5 j
2 {. Z& N% Y$ U g* r+ j; E <script># H1 {4 S+ o8 V A3 K5 }0 `
//因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
# O( F$ e; I) d, d; O6 t7 B K! Z //iphone
0 }: N8 M x0 g% k# h0 F+ @ //01 http://xxx/iphone/01/index.html
, k% C5 `( J2 X9 H //02 http://xxx/iphone/02/index.html! s' c1 _7 p" l6 }$ y; v a8 C! l
//以此类推
# l: P9 P4 t- K/ |# s 7 X4 x- l, ]7 r5 u( D
8 u; U! a2 H9 L2 b# B. _% `* C
3 x6 g# v3 \( i, h1 ^) Y* B //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
/ K z! R% R& v. q2 h7 k7 M //那么我们的offerUrl = iphone,landUrl = 01
6 Q" b: R6 Q5 y+ ~% |- L) _ & |. m' W& J+ ~1 e3 l
//从url参数中获取设置好的访问参数
$ c% _! O; L& @, ]; m" X const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
5 h. @( Y% Q8 f9 S const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
( }% x2 r6 R( @+ B1 t# t - w+ [$ n) H" T6 j+ S! X) s
//校验参数是否被传递过来,如果传递过来,则拼接成对应的路径% L% H) Q/ I5 R) M
const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
0 q( [9 [9 `5 y% H F" l if(b){
$ a1 N% Y# a+ g# \ setTimeout(function() {3 B' M8 m* ]6 G$ R6 e
var params = funcUrlDel(['offerUrl','landUrl']);
2 U+ s# @3 m2 b2 L; E/ I2 v // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤/ c/ p3 ]# \9 m2 I7 |# n0 [& o
window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
( W+ n( G+ A" O5 u9 { }, 300);
/ ?! h/ B# W6 ] }else{ 复制代码 % o' q1 k/ S: c1 _+ P
( H- h' ?6 J+ F* N3 Q ; i8 M5 r3 D' g* k1 J- p$ S5 X
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
" S* \5 e; T% D 3 M1 U9 {' K, K y+ O3 g \
5 j \1 F+ P1 c
; c5 U1 v, W5 j
8 a5 @! c6 }. f4 {0 Z
1 H( C/ S; ]9 B3 G" j
( S1 s# ~ X9 ]. ~/ [
相关帖子