找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5G广告专用虚拟卡/U充值/高返点皇家代理IP⚡️#1性价比⚡️
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
Google FB TK游戏代投⚡️E.PN 虚拟卡⚡️BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具
ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款全球虚拟卡, 支持U充值
Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款
各种主页、账单户、BM户(优势)IPCola原生住宅IP⚡️$1.8/条双ISPFB资源,账单户,分享户,国内一手TK加白户/二解户/FB海外户/GG老户
海外CL企业户源头最大欧洲Nutra网盟BA找量 FB高权重耐操个号⚡️稳定过审GG,FB,TK, 欧美源头, 欢迎合作❤️
FB企业户海外户,授信户,TK加白户联盟收款/海外资金下发/服贸结汇✔Taboola海外户源头9千万住宅IP-低至$0.3/gb✅静态$4/ip
广告位出租虚拟卡返佣1%,国内持牌机构  
查看: 19476|回复: 7

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
Binom_AdvertCN
本帖最后由 yang。 于 2021-7-15 23:15 编辑 ) Q$ @- `5 G8 c& `7 q

( B+ |) b7 U/ }' T在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。5 K2 k2 Y( F: E" A' r
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。; m* N( o8 y+ Q
+ S% J; ]$ C& w7 R8 A
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。9 A$ l2 c. G9 y" [7 ?

. f3 C- s/ O2 D5 [具体做法是:$ p: [% @! ?" d2 F* h1 x/ H
6 }* D9 O* D/ G8 v* i
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。. e$ Y; X# p& n: ^; x0 T
假设前置页面的访问路径为 http://www.xxx.com/
. C* T- I8 [7 C' D$ D- ~  U2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  
& ?6 w# j, d7 ]% {7 ohttp://www.xxx.com/iphone/02/index.html
, r. v1 b* f9 L+ i4 ^9 p那么我们在追踪器中设置的LP访问路径为, i7 V" N& T5 Z" F
http://www.xxx.com/?offerUrl=iphone&landUrl=01
: L" p9 {( _# ?; w3 ^. ehttp://www.xxx.com/?offerUrl=iphone&landUrl=02+ U5 U: ?; X  _* b; s; Y1 ?
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
4 G" u( l* `7 k4 q
9 n; Y4 M7 S1 Z0 X; D这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。/ q6 ^8 i. f& a$ K
. t; U7 O( t, X9 C% [! s+ v  Z
9 w. S( i2 D% k7 O( F2 k
2.前置页面内容如下
" ?6 M+ |0 ~/ k0 c7 c1 m
  1. <!DOCTYPE html>
    " {& e8 B/ [- q7 A5 O
  2. <html lang="en">
    5 y* x8 R$ Q3 a0 U
  3. <head>
    % ^5 g* b+ L0 N+ f, J
  4.     <meta charset="UTF-8">
    6 j, f/ b# e- j( ?1 E8 U' T
  5.     <title>Loading</title>  Y9 Z! u2 Z* h# e" f8 v
  6. </head>
    ; v" r2 A$ r, K8 y; y9 f; v" W( e- C% W
  7. <body>
    - |2 Q& H+ E2 p  ?
  8. Loading...
      C# C/ l4 S  a! U
  9. </body>$ e9 I$ ~& Y( _& f' r6 x
  10. % i+ e1 h0 O4 k% v8 w
  11. <script>
    5 Z3 U" D3 y/ K2 t: [( Y
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
    % _' e* R! K3 \3 w) w  b- J
  13.     //iphone
    7 o* k* a' a* x& t
  14.         //01                     http://xxx/iphone/01/index.html
    , B  @1 T- i* S" r6 S+ n
  15.         //02                     http://xxx/iphone/02/index.html
    ; C# L7 `/ m0 ~! c4 g% t# B& m
  16.         //以此类推
    3 s4 L! d! ]( S8 z7 t/ t, `, p
  17.    
    8 Z' O- ?7 I& j% ?/ f
  18.     $ F! g9 Y4 ]8 ~! z; S/ {  f" j
  19.     0 y  h2 G$ M" U0 a: @4 O
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html1 M' @$ t& z# z& a
  21.     //那么我们的offerUrl = iphone,landUrl = 01& `+ ~  b+ _1 ?5 f$ z) D5 {6 H
  22.    
    5 ^: T' ~: a9 V5 C9 F
  23.     //从url参数中获取设置好的访问参数
    & }! x3 C& j+ P6 W
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
    / u8 V1 m9 O$ P- o1 p, x% F
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");# w" L4 m4 `0 \! I' x2 c
  26.     % C$ s( t3 ]( {) h' n; F
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径& l" N* a1 w# b  K3 k' H/ U3 P5 C
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
    3 |  ~& G) s" n0 l5 d! \
  29.     if(b){+ {! T- J* {" j2 R+ ?  v
  30.         setTimeout(function() {6 i' u* `0 ?2 N4 L1 S( [+ ~2 A
  31.             var params = funcUrlDel(['offerUrl','landUrl']);
    , ~! @4 D4 t/ h# ?8 M: n
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
    ( E, e4 _% b5 Z: I8 R6 ^* A. b: z
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
    % ]  r6 \) k$ i) @$ r8 N
  34.         }, 300);; t+ E+ }2 \6 R) R) H% S4 a! Q
  35.     }else{
复制代码

$ R; f) I7 x3 w3 I9 \% d6 D+ {: K! U& K# n3 H6 [7 q' R2 ]

# X/ \8 I4 V  U: f只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。, Q2 ?* I' N7 E9 U& z; ~8 c

% u% K1 B4 Q- l- F" b! M9 f
! x+ N& G% ^4 S5 g& ?; |" ^% x
& T* Y/ `2 t* D& M# S- b7 y6 l) \
1 q! ?* V5 m& b% a$ i: p
" e5 F8 W4 u- Z: C) T  L: d, l6 H
相关帖子
回复

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

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

使用道具 举报

1672

主题

1万

广告币

2万

积分

管理员

宇宙无敌河马天神

积分
28106

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的/ a  R9 s% b. B# }& Q3 M5 Z, V* `

, h5 i( f) O, [0 F1 j& }. d; y但是对于tracking来说,多一层跳转,一般会多一层流量损失

点评

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

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

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2021-7-16 09:47:46 | 显示全部楼层
河小马 发表于 2021-7-16 07:55
% v6 P) Y, r+ R. L9 \& X) I想法是好的0 c, [; h( j0 n: x( U6 g! G+ D

8 {& ]8 H( Z, \0 V& A但是对于tracking来说,多一层跳转,一般会多一层流量损失
, Z$ L$ O( w8 ]1 y8 G
请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:55+ c) v; L. n  |) e$ W8 u8 }
想法是好的
2 n8 k+ \2 \2 }, Y$ s+ p0 m: Z8 O* Y. w9 k$ V( @+ F
但是对于tracking来说,多一层跳转,一般会多一层流量损失

9 q- D; q( j. I经过测试,直接用load的方式,用户基本无感,应该会比直接跳转的方式要好很多,相当于通过ajax隐藏了中间跳转的细节
回复 支持 反对

使用道具 举报

3

主题

13

广告币

22

积分

初级会员

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

点评

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

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

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

  q9 [$ n) `. V' j. {2 W/ y1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。6 r7 u- m) u# F
2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。7 }9 l9 K6 t4 A
3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>
3 `8 h4 @. @8 a0 M9 M. \# o1 W% t/ \) c% A' }  \
4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

850

广告币

1006

积分

中级会员

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-18 15:32 , Processed in 0.103498 second(s), 24 queries , Gzip On.

Copyright © 2001-2026, AdvertCN

Proudly Operating in Hong Kong.

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