本帖最后由 yang。 于 2021-7-15 23:15 编辑 ; Y3 T8 @" I* A4 E9 @* W* r$ v
% G# [3 \9 U; X3 C1 E! q" X 在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
' _0 Y5 N- V& `4 Y 但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。- U5 M1 J8 {5 c$ f5 N
) U1 k* [, H* X0 c
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。5 i/ u, v" @3 t; s `1 g2 A
m: S5 t! `& e+ R9 N 具体做法是:
8 @ i/ `- J' K7 F
$ d( ]* |: e' f. p; _ 1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
; ~* O: j. t" H3 J4 z% N: _5 h* W 假设前置页面的访问路径为 http://www.xxx.com/ 6 f; a" a$ z2 Z* V
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
% G; g+ x+ W; l; K( P http://www.xxx.com/iphone/02/index.html 1 |* R& c, @" U9 {' m( v* u
那么我们在追踪器中设置的LP访问路径为% l) v6 ]1 b2 x) z0 E! U8 D% y
http://www.xxx.com/?offerUrl=iphone&landUrl=01
/ T- P6 v8 H0 r6 c7 m2 T2 K2 W http://www.xxx.com/?offerUrl=iphone&landUrl=02 7 z% G9 Q% q D. J! I& \7 d. B
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理( Y% }0 `5 n8 b/ g; @1 ?8 s3 @" m
3 U9 s* ]7 t8 z7 a' V! a8 V. _- D 这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。 j. M4 w" b' c! p( c8 k5 U
4 {5 u2 k+ T1 w1 t/ p$ m " K8 M R* ~' \5 G* B- T7 W
2.前置页面内容如下
+ ^0 o7 r* m$ R' S0 I, r, ` <!DOCTYPE html>, Z- \% h6 n! J' ^
<html lang="en">
6 v$ x, j/ h8 f B5 W# B. |. L <head>5 v! L, ~- _& h. p; |
<meta charset="UTF-8">% `3 [& \1 @5 I' c- a' g$ u/ @
<title>Loading</title># W/ Z' @5 N8 D; n( O/ \# W: C8 g' D! V
</head>
" C4 i# A/ H4 o <body>) |# G% ]2 M. s% a
Loading...
7 ^. |' |3 I( m </body>, p& R8 T. o) n0 w7 P' s
+ y& M$ z$ y2 A; P9 B
<script>' o# G' d; D2 w _5 W
//因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
% _& `" w9 U& z+ b& K# U9 n //iphone' k, }9 m( p5 F3 h
//01 http://xxx/iphone/01/index.html
9 P6 _) D b0 w! T K //02 http://xxx/iphone/02/index.html
( y+ ?7 r% h' _7 P+ Z% _ //以此类推! R8 t5 ~' {2 _# k" N2 W! _% F
3 j) j! M2 [4 l: `; s/ C
; \6 \. Z }- |4 b' } c! M 9 ^5 P( W8 k& i; k
//这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html' x7 \' G) U8 Z/ z
//那么我们的offerUrl = iphone,landUrl = 01; l# B: G3 P4 C' H4 b
* `) S6 |3 ]& @3 \/ a* r
//从url参数中获取设置好的访问参数
# H+ j7 S2 E& y3 [$ h% X8 Q0 f const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");2 ~. ?8 j. N1 @' @8 G P" t
const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
. u4 B0 N- [; h& `/ {
6 x0 M2 \2 b& l: [0 T1 Q //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
d P ]4 }/ Z1 p# ] const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);; ]" @/ G0 ]7 I. e# `
if(b){
6 U' N" M- {7 m" I. H2 S9 W0 P; T setTimeout(function() {" f3 Q% X! E ]# j( j
var params = funcUrlDel(['offerUrl','landUrl']);4 v! v9 J( a5 \7 Y9 ]
// 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
# k! ^, \$ Y5 s) b: w; @5 K: } window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
& Z4 U! [; Y' e5 t6 C+ _3 } }, 300);( F+ R$ O: y8 d% c1 j$ O
}else{ 复制代码 / c# y! _7 r9 D* ?7 r
2 E M, {* e* c
" Y$ a1 d: d4 B$ l9 k 只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。7 @9 U: W! [6 X& z' W9 D
- \1 @8 p9 d5 {3 D6 T0 z" z6 d& e2 d( E 4 E0 c8 }* \# ~, e8 @* I+ D
) h8 d; o* ^4 d6 [ G
" i0 W! G7 X3 m. f % P/ c5 t# T J' X) h: t$ h* X
) S5 W, |# {2 ?+ |4 A( U
相关帖子