AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️AdsPower:安全不封号,高效自动化Mediabuy⚡️玩家开户首选
【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️Taboola/Outbrain /Bing⚡️一级代理
开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放FB BM不限额,短id账单户
E.PN 虚拟卡BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN
7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款Facebook 批量上广告尤里改 - FB 稳定投放
免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户
FB资源,账单户,分享户,国内一手FB企业户,TT老户,GG老户源头PTM全球虚拟卡—进来交个朋友!PTM虚拟卡⚡️费率透明⚡️额度随心
FB虚拟卡⚡️消费越多返现越多【找量】BA独家Nutra单找量虚拟FB卡 ⚡️ 透明条件 国内外持牌,虚拟信用卡和收付款
广告位出租8500万高质量住宅IP,助力各种需求虚拟卡返佣1%,国内持牌机构 
查看: 18835|回复: 7

[分享] 简单垃圾流量利用及爬虫过滤、JS支持校验方案

[复制链接]

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
Lemft
本帖最后由 yang。 于 2021-7-15 23:15 编辑
! Y$ ~  N) P. n/ n5 Z: K  Y4 Y7 T
) p  t7 w( v$ Y% T* m" o7 J3 \2 {在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。0 \$ z, t5 z& c3 a
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。  z1 D8 g6 d* V+ o% X

2 ?* t( R! s+ s5 ~/ b  N0 J另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。% V6 ?6 D! `. v8 Z
/ A: m9 T) Z1 W
具体做法是:' p2 f% z1 \( @

6 i) [  ?9 n. W7 K" f1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。; P: G2 Y( w/ H! v: o! ^- a2 e" V5 b
假设前置页面的访问路径为 http://www.xxx.com/
) {/ Y% ?# \# M# F. i2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  
0 o4 V( I/ o6 l. thttp://www.xxx.com/iphone/02/index.html# ~. y/ m0 k9 B
那么我们在追踪器中设置的LP访问路径为+ ]2 a$ K& a- u: N; b, F8 e
http://www.xxx.com/?offerUrl=iphone&landUrl=01: i) ]% g% E# f6 @
http://www.xxx.com/?offerUrl=iphone&landUrl=02
' Y! i9 K8 Z$ U& X这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理% f5 d6 v0 r' A* ]4 Q. j9 [, [

0 w5 ]. c0 e9 E. y  U0 u这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
! u7 |0 G5 K" E1 ]2 ^3 y* x) [) I% C5 k" ?
: s. @+ K' S1 a/ X/ b" j4 ~
2.前置页面内容如下
$ g1 K! h, ^, ?, F2 z; C
  1. <!DOCTYPE html>3 N) {$ x) w5 V' a- V$ F
  2. <html lang="en">
    3 d9 j, d( b2 X" N% _. `! H% n5 ^
  3. <head>  C1 q0 g* ?2 d/ m# k7 J
  4.     <meta charset="UTF-8">
    7 e: W/ v. Z0 I" e% q0 k
  5.     <title>Loading</title># Q' c6 Y& R/ ~- Y0 }
  6. </head>
    " k0 v$ h" G8 M, Q* C
  7. <body>! s7 y: k5 X3 p, ~+ P$ ]4 Q& A- R& _& A
  8. Loading...
    ( _( S8 u# S5 Q) W$ {
  9. </body>' g, r5 a+ f2 ?- ~9 [$ ]7 a
  10. , [! m* k6 m2 j( s: R3 L# }/ B
  11. <script>
    ! \' z* }% m  H. e6 Q4 {
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成# j7 {4 b" V2 _6 J2 T2 c- i! J8 V( V. g
  13.     //iphone& S6 y  K; Q/ Q; e
  14.         //01                     http://xxx/iphone/01/index.html
    , T  g" r3 V+ y$ Q0 T
  15.         //02                     http://xxx/iphone/02/index.html
    + C4 {8 H# \8 m% i1 I
  16.         //以此类推
    . s0 D. T' Z  U3 i, `3 q
  17.     / p; J8 p% I3 ~
  18.     + K# f! J; E) b0 ^) m$ b  f
  19.    
    ! W9 {4 @! ?/ l  n/ I) p* ?
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html/ o+ |3 ?7 r$ S, z4 A9 A
  21.     //那么我们的offerUrl = iphone,landUrl = 01
    ( ], ?7 B9 R- ~: N6 `7 L( @) J. U, |
  22.     * V: k# v/ k5 c) U
  23.     //从url参数中获取设置好的访问参数
    ; v% @9 s! [3 q* w
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");0 r* Q5 D; T: S8 s
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");- ?" H, B% n+ b) ~+ p; A* r
  26.     2 A; I* m. J/ n& C
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
    5 D, i4 a2 J; h$ D9 B8 T
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);# ~# x# ]+ E3 o5 i/ `! s2 }5 Z+ ~
  29.     if(b){, U7 u5 V( E5 L1 \( u% ^: B
  30.         setTimeout(function() {
    0 l1 [- _6 `9 [- o) e9 x9 u8 I
  31.             var params = funcUrlDel(['offerUrl','landUrl']);, o0 C3 z% @+ q/ r
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤; R3 V3 S7 ^" R' p8 B# b
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
    6 K$ E# X1 i: v3 t
  34.         }, 300);
    ' F8 n/ g9 k* x/ z
  35.     }else{
复制代码

2 P6 D4 G' R( C6 T0 _" U) `, M' _+ k# u/ K  F, ~
7 f0 c% n+ ]# |1 b6 [/ |
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。3 ?: ?+ [) F' ^' |& |& {: U

" R" V5 D& S7 z
- J. H! s, A8 V! H% z0 ~8 Z) L6 ~+ f% k6 Z' Q, Z4 k6 ~

0 Z) Q) ^0 [6 X$ E
# z6 A  V9 e0 W2 F  Y6 q' `' p& E2 q/ c& [
相关帖子
回复

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-15 23:28:50 | 显示全部楼层
当然,引申一点,如果你的LP做的足够通用,比如你做的一个专门为各种手机抽奖的LP,每种不同的手机都有一组相同名称的图片,你完全可以通过传入参数去加载不同的手机图片、或者语言等等,通过一个LP,不同的参数组合实现N多个offer的复用和测试
回复 支持 反对

使用道具 举报

1632

主题

1万

广告币

2万

积分

管理员

宇宙无敌河马天神

Rank: 9Rank: 9Rank: 9

积分
27162

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的( q5 l4 T7 V: G# B

) n* B2 B. Q8 z: k, A. J1 B但是对于tracking来说,多一层跳转,一般会多一层流量损失

点评

经过测试,直接用load的方式,用户基本无感,应该会比直接跳转的方式要好很多,相当于通过ajax隐藏了中间跳转的细节  详情 回复 发表于 2021-7-16 10:28
请教下河马大大 如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div  详情 回复 发表于 2021-7-16 09:47
学会提问的艺术, 从小处入手, 忌大而空
AdvertCN电报群

我最喜欢用的工具
7200W全球动态不重复住宅IP代理
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-16 09:47:46 | 显示全部楼层
河小马 发表于 2021-7-16 07:55
  q8 b! K& A+ m( w) [1 D  f' I想法是好的& A# `; c6 _; Q( l+ k

0 y- z6 \, @% L; B: G# ]* v但是对于tracking来说,多一层跳转,一般会多一层流量损失

& x, W3 w3 _0 u5 s$ T2 ~5 L请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:55  K6 r; Z. f& g6 [2 t8 G' ?% h* b6 N! _
想法是好的
; i6 |6 ~$ ?1 N, [3 D
6 f* s1 B: d) E1 o但是对于tracking来说,多一层跳转,一般会多一层流量损失

8 z, u' f1 L- k- Q+ `经过测试,直接用load的方式,用户基本无感,应该会比直接跳转的方式要好很多,相当于通过ajax隐藏了中间跳转的细节
回复 支持 反对

使用道具 举报

3

主题

13

广告币

22

积分

初级会员

Rank: 2

积分
22
发表于 2021-7-16 22:06:24 | 显示全部楼层
额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核。。。小白一枚 不是杠 真心求教

点评

1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。 2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。 3.这个在自己服务器内部流转,应该不会被判定。  详情 回复 发表于 2021-7-17 10:52
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-17 10:52:29 | 显示全部楼层
卡拉赞 发表于 2021-7-16 22:06
: K% x1 W8 E2 c. i) ]8 a. f额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核 ...

* s7 H' J, P& D, i- T- A0 l1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。
6 g" |# S6 L" w$ g8 l2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。# @& G5 G* V3 W
3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>+ V7 ]* A/ K; D3 I. H4 A

' c4 R& F& k3 p# `4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

864

广告币

999

积分

中级会员

Rank: 3Rank: 3

积分
999
发表于 2021-7-17 12:17:23 | 显示全部楼层
技术大佬,人才
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2025-8-27 16:54 , Processed in 0.053456 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

快速回复 返回顶部 返回列表