|
|
本帖最后由 yang。 于 2021-7-15 23:15 编辑
% l u% s) M" v6 a- _' [/ @. K. } c$ \# U( }3 j0 r
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。5 k4 m1 F3 C+ b9 ^9 `; B" [: l( c
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。8 `8 O3 ]5 c1 @' d, H* u
- Y9 y9 Q/ P8 H0 X# a
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。" ]0 c$ W7 z" h. `8 a% d6 Q1 d
: r; Y6 v# f4 }* y9 x7 w4 o5 s3 V具体做法是:0 V& C* H4 M: X* o- j+ @- J
( O5 }! @" T2 v$ s1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
% i$ @) H7 V9 P4 m! Z+ `0 H# \2 s假设前置页面的访问路径为 http://www.xxx.com/( Y: O# \9 G. H
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html 5 Z Q$ f: y/ t* @9 B
http://www.xxx.com/iphone/02/index.html5 k" |2 Z) ^8 h, D
那么我们在追踪器中设置的LP访问路径为
* K- }% W o& c3 E7 s8 `5 Xhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
. J% a' m5 V' e% k) Mhttp://www.xxx.com/?offerUrl=iphone&landUrl=02# T! I! B1 ~0 n
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理 c7 }8 w1 l d0 }
, j3 Q* ]- W9 x6 }6 y% ^8 U6 ?3 ]这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。! k+ K$ j) D7 d$ h8 j6 [$ g
3 d1 Z# ^3 T: Q2 v6 B: n' t2 U! D" ]4 R& h; M
2.前置页面内容如下, F7 D3 g# k( P
- <!DOCTYPE html>( f5 [5 G8 q' X; M' z
- <html lang="en">, b' P8 o3 o4 e D# q N! E, B# o
- <head>
( w8 q) P, p$ i1 ?& u - <meta charset="UTF-8">
8 f- j; B8 O" }1 Q. \ - <title>Loading</title>
4 |9 V4 M$ T% |: ~( @ - </head>
: N+ t$ J8 y+ n5 W - <body>. B: Z& L- u6 X0 s
- Loading...1 W- R4 I) u" X A* [! N/ y
- </body>% U6 T* _& ~' M- R: X6 M6 b5 l9 b
- 0 k; U+ n8 M( h% O
- <script>+ ?! O1 x3 \' G5 V
- //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
! ?/ ~1 L, x3 C/ E5 y( O, q% C - //iphone
! Y! h; }7 [& ^ V - //01 http://xxx/iphone/01/index.html
0 w+ T, ^7 U& X' U. Y - //02 http://xxx/iphone/02/index.html
! f2 ^+ y3 C+ |7 ^* X: h - //以此类推
; x# t) k* p& w3 k: B# m - $ y& n7 ?, k2 G# j
- : i3 _5 C7 [4 c5 a& `' t" k/ M( {) N
- 5 H& }4 n6 H8 ?5 l. T" i9 n
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html
( u0 c, S8 |0 Q; e' n8 \1 X - //那么我们的offerUrl = iphone,landUrl = 01
( }" ~; K' o/ y# n - / F( L0 ^* e N" s. _3 d5 b
- //从url参数中获取设置好的访问参数
# V( \# }. [0 F; U' l( d - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
& R' y1 w% m6 G h# Q - const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
- ^4 G: G% b. D0 q - ; M0 {1 _( G3 k1 T: [2 C
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径: p/ v8 w. L$ x1 J* |
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);; H+ X! S" |4 P+ N& e" p
- if(b){
; s5 [3 P# Q9 H. q& B - setTimeout(function() {0 {$ S: J% e7 Q) s1 [1 x* q
- var params = funcUrlDel(['offerUrl','landUrl']);+ S8 n ~1 h9 d
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
7 G+ F" E$ S; U7 x! e- y2 Q - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);# j9 I) g5 j7 l: g9 o# h
- }, 300);
# ?% ?+ t# Y o0 z; X$ H9 W - }else{
复制代码
4 I A. D/ _3 T- d6 ]% C
. [4 ^! `5 g% ^- D( q) Q$ }9 m
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。% v) ^9 t* j/ I" G2 {
! P# f3 ~8 d% F# d* U ~9 ~3 {% y: w, C( e' x
4 V( \4 O2 t3 M# K0 ]+ ^2 U
6 u9 P1 L+ q) T+ x7 J% m' Z1 g! n1 _5 J
# O7 o. r j, z3 `. j; M B" d2 h% ^ |
|