|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
2 O* L" ?, c. r8 w- H5 X
" Q. N2 \" m* J3 {% |, c在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
$ g- F4 M) A' {+ j, V6 U, w5 C% g6 X. ^但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。7 w% {' X; Q8 g+ r6 U- v' z6 z/ q
! D% g3 A, n/ ^" c, E, |另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。/ [- _' U4 u5 a9 `2 t% q
f* R" r8 | c; Y4 S8 z$ I具体做法是:! D; C! {7 i, v% u% j# U* k
3 L0 s0 r# `! D9 w9 [- D, {! l, m: V+ ^
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。. n) j( i; }, n$ O. T& M9 b' H
假设前置页面的访问路径为 http://www.xxx.com/
% t" O* L- M( V2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html 7 |* S; B( J$ p* r: J
http://www.xxx.com/iphone/02/index.html/ a* Y# H8 {& E" K/ M
那么我们在追踪器中设置的LP访问路径为: E" b% m q- u5 w! M: d8 f+ |
http://www.xxx.com/?offerUrl=iphone&landUrl=01( o' o" k5 \1 v- D
http://www.xxx.com/?offerUrl=iphone&landUrl=02- P* N; V( Z8 N+ g/ s& N
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
7 N" h; W y6 e7 E) P7 p
: C& Z- I: N7 z% O- M这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。, y, ^ \0 c" o/ x) A$ }: Q
8 |3 _1 i, E9 p6 b" h6 e2 k0 d8 M9 K: Y" F2 l- x6 L2 {
2.前置页面内容如下0 @" o+ o$ }( D6 T
- <!DOCTYPE html>
% N: z, `8 d6 C - <html lang="en">/ w9 U4 F; z" X; Y
- <head>
& t! @. V9 D& O5 C3 H8 S* C - <meta charset="UTF-8">( P& s! i* `" N- l6 n! g$ p. ~1 O7 {
- <title>Loading</title>9 w3 Z6 C) s+ l6 _/ j& U8 [
- </head>
* M" R$ ]6 G3 c6 j: x8 k - <body>) U! I: t4 d2 \/ T6 S
- Loading...
- ?' A$ e; y! P" ^9 w) e - </body>. g: |) g+ [7 V$ B0 n' @
- % g" L' E% R v6 F# n$ T' a% a
- <script>
$ T2 B: S) _; a a5 b. e; ~0 K - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
7 `) Y! t w( y [: _ - //iphone# h0 N- {' a! q" B+ D: D& e0 k5 P9 C) H$ w
- //01 http://xxx/iphone/01/index.html
9 w3 ?+ X+ w9 a& j: _: C) j$ i - //02 http://xxx/iphone/02/index.html
6 R* @- O0 y) d6 g8 S8 t. a9 Z - //以此类推
* f! g; x) f# k# U+ W. _+ |) | - + ]1 D; U+ K! l1 L+ C) g, ^, ^
- - |5 |5 K$ Z, U) b' o J
- ; Q5 C% l; w7 z
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
" F3 t5 c8 t$ K) J$ _8 u - //那么我们的offerUrl = iphone,landUrl = 01
" [3 h5 \; k. [1 q4 y - : v0 O; I7 J4 o/ j- g( ?/ |
- //从url参数中获取设置好的访问参数
8 i. C5 P! @6 n( k$ g- \1 C+ l. V/ G - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");8 K6 D5 s- h5 G# I u) K
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
5 Y7 h7 k) D1 L1 i- z0 |/ W& U - ; f- k0 A3 W5 k, C. k' {9 ]
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径& ~" p8 ?/ B4 L; l/ _
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);7 x" p8 M5 P! G7 v& O; t0 j3 p- d) o
- if(b){
/ U+ q; b6 ]8 M0 ~+ [7 r' s. o - setTimeout(function() {
: g1 D) ]' V; Q z2 t) P - var params = funcUrlDel(['offerUrl','landUrl']);
+ A. c7 f& u! R: P+ {" c - // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤- o' y; Z* z/ s }6 m' Q
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
. T* q7 z& } |* G% x5 b - }, 300);
% L+ L K! ]) K( }3 F" L - }else{
复制代码
& ~: ~) o' x/ O: v c0 Z& H. P M& v" g
7 M; S; R! l/ M ]5 U
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。; {3 m, ?5 ^) G# ~6 ~' I: l
. i& b% g; q7 B4 a; n
( c2 H/ y" f1 {3 |# }, |; t0 {, k7 t& D- d7 E! @$ b$ [0 _
; q; \* c$ h: t$ X$ m6 Z
3 H) g4 g, r* h, f+ J; @ I0 \
- F) ~" R! X w4 C7 g |
|