|
本帖最后由 yang。 于 2021-7-15 23:15 编辑 ' w; ^ i* x, }3 i$ {5 B$ a
, M$ l ?7 f' l$ m8 _
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。( t9 M7 v5 G2 h7 O% p g b* e- C
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。$ y p3 G% Y) ]( b* l F3 \
! O6 E0 }- ^ p) f
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
8 F+ l* [/ d, U! `; ^/ _' D: L# o ~$ E
具体做法是:
5 n4 E2 B" f- _9 L9 W+ V7 T3 L" `" n. E% d( T
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
6 T, h' `$ {# {" j2 ]假设前置页面的访问路径为 http://www.xxx.com/
" Z7 ]+ a8 A$ j( a i! u7 o2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html
: C- k2 @' [5 K/ A9 R2 whttp://www.xxx.com/iphone/02/index.html
& [2 W$ b3 ^$ b" F, E6 T那么我们在追踪器中设置的LP访问路径为( Y% p, j$ ?# s! s
http://www.xxx.com/?offerUrl=iphone&landUrl=019 Q! q9 x5 [: I, s3 \* s! l% B9 F
http://www.xxx.com/?offerUrl=iphone&landUrl=02& n6 ~8 G5 X. Z# n& E" H+ n
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理6 p% J( `; H `) j
7 S$ k$ Z5 c) V4 c6 _! ?这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。5 U' d# l5 y' B6 g
i, f7 y8 _$ H$ e$ D
% R6 E U7 [$ h0 ~0 R2.前置页面内容如下
, K- e- _( H5 p9 W8 O# N* m. ~$ c- <!DOCTYPE html>( _0 x: J% G* a+ [
- <html lang="en">
9 f$ j6 f8 X, v) W+ J - <head>4 v. q! b0 T0 R5 o) ^5 @
- <meta charset="UTF-8">3 c, m8 K- s R O' e& L9 T' Z' ^
- <title>Loading</title>" p2 o% S" Q- M
- </head>$ R$ i% s- k' a* B, m
- <body>
( y& @' i" G7 Y0 G. Q, E( |) F - Loading...
7 m. w z: `) B+ p" | - </body>0 x8 h0 B' C* u# t
- 8 _ ]" }! H# m
- <script>
- J$ R9 g# O f2 `9 _: C - //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成; I. \7 X' `! R7 s& A. o- Y' D1 m4 n
- //iphone( C9 x0 t3 J5 s' f' ^( Z
- //01 http://xxx/iphone/01/index.html
! W! h( V" k! R' E3 G) D3 a. l2 h# ^4 z - //02 http://xxx/iphone/02/index.html. `4 K2 @( u& a. Y
- //以此类推5 `5 k6 i) t* F& V# }2 n1 k G# c
- " n3 z' X' h W6 P$ G5 S, s. e
-
% B' F$ E3 C. y- F - : w# F! f% P( j# ~# y: ]( \' q( q
- //这里假设我们的offer访问路径是 http://xxx/iphone/01/index.html# s* E2 L* x; |
- //那么我们的offerUrl = iphone,landUrl = 01
; b3 n$ k4 A1 w/ y2 u -
" W! V7 K/ `* p- |' L! ? - //从url参数中获取设置好的访问参数
; o& Q9 E% d' s B - const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");9 O, a* ^8 |6 W' X
- const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
% I- O! `- p( n) C/ S1 i - 4 `' |4 A. _9 e9 k
- //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径+ p2 j' J/ _1 i9 z0 H
- const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
, c- C% M2 h, l5 B0 ? - if(b){& D" ~) |; x) n; u
- setTimeout(function() {
( v4 b, i. N8 \" B/ ~ - var params = funcUrlDel(['offerUrl','landUrl']);5 ]4 ^. q& B5 ^7 a
- // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
8 `- k* \2 w+ D3 L) s - window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
, v1 i# f( n/ X0 U0 C - }, 300);
, [. |2 P# g# u& U9 r# W$ y8 m - }else{
复制代码
* S9 f0 M5 I ^; m2 S" E) t7 n
3 p/ O) i6 _8 w$ }2 }
2 o2 B$ p m. |, F' Q只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
5 E. B( B8 X. f7 Q0 z8 [+ S; s" Z5 y+ ]( z0 M
# Y5 B& P* H4 j6 `: A
( }; ?5 {# c# o' O; u4 a) Q( g9 H1 D" v9 g0 M. a3 [
: ~! E q2 ]0 a. X/ J+ W. D3 U
4 F8 G, b* T4 t/ z+ {4 l |
|