|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
$ f2 B, H- q. }$ c. [! M) X
$ w4 N6 }2 {8 H& m0 G* l3 `1 d1 N在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。4 Q p& D+ a+ O0 b& R
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。9 R/ `3 W& y7 w2 X; ?4 X' X
( z8 T z; ~3 N0 R) k, b另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
( w I3 t8 Y) {! ?4 @
0 L+ W! {0 V5 v6 L- G' n2 x6 K: x具体做法是:
' {9 Q6 @* I- u# T- g; l
! U1 S U- S0 J/ {9 k& s1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
0 E. \: p' s0 Q- z) {6 q. {假设前置页面的访问路径为 http://www.xxx.com/
% R; Y" N+ g9 p. c" b2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html " V$ P% s0 Z/ n+ ]0 c
http://www.xxx.com/iphone/02/index.html- o6 V1 v$ v7 M
那么我们在追踪器中设置的LP访问路径为
* w) d9 X. n& M$ b% k+ m$ Ahttp://www.xxx.com/?offerUrl=iphone&landUrl=01
) |; c# R9 x- p# yhttp://www.xxx.com/?offerUrl=iphone&landUrl=02' X' [; u/ i$ `/ b2 N+ N
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
' J6 S, {3 }) w0 {/ L" b+ y A( ?8 z: S6 }! i8 F- Z& x9 _- p
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
: H$ |# @3 [* @% ~4 M0 z* q' G% y; r5 N- b; C
$ \; r; d# ?9 d1 Q8 [* O( k9 h2.前置页面内容如下
; d: r/ W: K5 b- <!DOCTYPE html>
/ g( L" g1 @# W+ `: o - <html lang="en">
0 T% ?0 r" `' r1 @8 R - <head>: p D& v: ?( M: Z0 v
- <meta charset="UTF-8">% X! }1 S& Q( q* j- k) Y7 q0 c
- <title>Loading</title>" c; A4 L) m- H) w3 i* @, A; d
- </head>
$ x1 H. N! f. u! g8 ^, j3 I - <body>+ r% I! S5 t' o% m2 N9 M2 P1 i- o+ `
- Loading..., S2 w" X2 k; U& B
- </body>
6 U$ C; y" t8 t, e
$ _ ~; O- X2 c- <script>! G* W% r9 e# G. z! m/ m3 z
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成! ]# s% V4 q8 X9 y+ J/ q" p
- //iphone( |+ Z$ d8 ` L% w9 ?) v; A$ U
- //01 http://xxx/iphone/01/index.html
- ]7 C2 c! J7 f/ l! |" C - //02 http://xxx/iphone/02/index.html
) A6 f& A8 t* n6 i - //以此类推2 X& P( \9 \& t `* K: X
-
: B' J9 a7 A* \2 z2 Z2 u D - ' i' j/ N1 H8 V8 M7 j+ t
-
9 y0 K+ G$ v3 e - //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html: f9 {! j( \ Z) h+ l
- //那么我们的offerUrl = iphone,landUrl = 01
7 g. k' U* i1 t: J. e( j# z - ; t! W) E, ]+ t2 g
- //从url参数中获取设置好的访问参数
`( U! G2 B( F1 m! C& T0 ^" a - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
3 z$ |3 z+ _$ F2 m5 W+ N; u1 ^( T - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
( K5 G% h) v& z* ^( q. X' p" ]' ? - 4 H8 N1 D0 _% e/ Z1 d+ u
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径5 u1 }2 B) R3 D+ P) ]
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
: t6 j: `( M3 M3 z* S - if(b){
2 p6 @& }; B+ @, U - setTimeout(function() {
- ~; R2 d$ ~1 c$ b - var params = funcUrlDel(['offerUrl','landUrl']);$ o. |+ e7 h, K7 M- ~# l8 k" e# F
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤9 e! D4 [. r7 o6 v4 I/ V0 c
- window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);* d1 L; H6 d) K6 r4 c9 @
- }, 300);/ s3 W$ E! c' h: X: i: _% j0 r
- }else{
复制代码
2 b8 d, B& m/ W w5 E
! v4 b4 P; X, D5 d; k3 i! m0 x: p
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。9 W& [) g' @; B- Y% X5 {: f
7 i% @. j' Y- C: E5 H
( P$ i, Z9 J3 t! W/ I
6 }3 ^& V, Z' M% N1 [! C' {
4 Y1 J6 q7 U- |6 F2 [
; W) ^! A- f: \2 ?5 d4 Z/ U5 O- g. s0 @' x7 K0 s4 h8 c, A
|
|