找回密码
 立即注册

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老户
最大欧洲Nutra网盟BA找量 FB高权重耐操个号⚡️稳定过审FB企业户海外户,授信户,TK加白户联盟收款/海外资金下发/服贸结汇
✔Taboola海外户源头广告位出租虚拟卡返佣1%,国内持牌机构 
查看: 19509|回复: 7

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
Binom_AdvertCN
本帖最后由 yang。 于 2021-7-15 23:15 编辑 ) L3 x; c* {3 y" S) [1 L9 l3 T9 O3 I
' Y* v- r! v6 a, r: r
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。" C4 e" `/ X6 R9 ~" ]4 m
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
/ F2 ?$ P- v5 k+ |' T0 N3 a/ M: K9 Z3 F# a4 z: F
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
, {+ J  V7 u5 x! a
, \9 d# l" g) P, f具体做法是:
4 Q" y; _) x! B4 R
8 Q: w2 a. F' ^% H3 k# C) D! d% [1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
2 T) U! {% `+ B4 p& K2 l4 \2 j假设前置页面的访问路径为 http://www.xxx.com/7 t0 \5 _, n: f2 g# r5 M5 ]. h
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  9 N: F  r3 q' b9 a7 ~/ \! h
http://www.xxx.com/iphone/02/index.html0 _% F9 L* M& S- I% |; K0 V# h
那么我们在追踪器中设置的LP访问路径为
  |. O4 j6 f  F* ^! {% H) K; k/ Vhttp://www.xxx.com/?offerUrl=iphone&landUrl=01& X0 O& r2 T1 M. a
http://www.xxx.com/?offerUrl=iphone&landUrl=02: g6 ^& v1 K2 O/ ^! R& a+ g# i
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理6 g( @* P; n# Q4 @9 i8 X' F, m

& I2 o+ b1 F6 Y! U# S4 ]! x- p这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
- T8 {: C( d* |8 w! j2 o; p. P8 M: e, i3 q) w) Q
' V6 P! e# d; x0 M7 e& \! I% b0 n
2.前置页面内容如下
6 Y6 o4 O, b6 Z4 P, Y) F
  1. <!DOCTYPE html>; ^7 s& l7 E' F9 U$ T1 _4 s3 M
  2. <html lang="en">
      o: r( p. r! P! \
  3. <head>5 v" _: E9 n7 c% r3 ~" A
  4.     <meta charset="UTF-8">
    8 i4 r+ D# f# k" o
  5.     <title>Loading</title>
    1 I7 @6 c( U7 M; F. _: u. x8 \
  6. </head>
    . f! c* e+ F/ o9 z, R4 n' S
  7. <body>
    ( g+ G4 x: T# Q8 M* Y4 v/ L
  8. Loading...7 Z7 r. F1 t8 X/ R$ m- e% ]0 a
  9. </body>9 h- [4 ~3 n( \# j
  10. & E& q% ]! Z& n4 b, d! z" p
  11. <script>
    : [3 c* o* q* s& M  B4 D0 ~
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成. ?, ~3 q, `7 }% C5 |6 K- m* p8 [
  13.     //iphone* F+ R5 g4 E5 T5 m
  14.         //01                     http://xxx/iphone/01/index.html
    , r+ A4 }. p% }( [! t6 {( y0 H
  15.         //02                     http://xxx/iphone/02/index.html' V6 H; \" a6 [7 v# @
  16.         //以此类推
    ! p, d# |$ u" v6 R
  17.    
    9 V# }( H" h7 M1 H6 l
  18.     / u& N0 x- m: L! Z# P3 Q- u% h/ {
  19.    
    : A* R* J' ~! O. e+ A8 O/ _: L" a
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html, W+ Z8 w4 a4 }/ `' u5 n
  21.     //那么我们的offerUrl = iphone,landUrl = 01: m- ], _1 m: K0 H, `  x0 o
  22.    
    ' ]* J+ n/ g! U! e
  23.     //从url参数中获取设置好的访问参数2 I, l( K9 m7 h; F4 |
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");8 l8 C" \9 c! z# o
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
    0 ]. f1 j9 f& H' u/ q8 C" U
  26.     5 I6 c; {5 W" O% X7 o# U
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径) G/ ^/ Q1 g4 y) U' Q& t- E
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
    7 L1 k2 I+ A! F- `9 R$ }; t6 {6 X
  29.     if(b){
    % C( ~/ o$ w% _
  30.         setTimeout(function() {
    ! B) G& i) t/ p/ s  V
  31.             var params = funcUrlDel(['offerUrl','landUrl']);5 K: y6 U- t  D( I9 V
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤: x& K( y6 w& N# z
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);0 ?; [4 K5 K, t- R3 N1 e  p
  34.         }, 300);
    6 r' T5 g! r9 [2 f' D
  35.     }else{
复制代码

+ A+ U  q  W+ L1 g) F
+ `* O+ v% Q# d6 |5 D
: T% x- d& f5 r3 Q# _只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。) d4 u. B: J- H  D; X
' Y/ ~3 `( b( I0 d! q) G- P

& Q( u' o: I; K! z5 V$ ?5 w: N5 F/ Y+ E! f
; E4 O! d" V/ `' ]0 Y/ ]3 h; P
7 Q' ], k; o" l8 {) j) Q6 W( g* G
: ]: ?- c/ ~0 a5 i6 {; b
相关帖子
回复

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

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

使用道具 举报

1672

主题

1万

广告币

2万

积分

管理员

宇宙无敌河马天神

积分
28130

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的' u+ W( t" h/ m9 [; W7 L, h
& o2 B9 Y" f7 W- I7 Z5 Q( N+ F1 e
但是对于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% t9 n2 T7 F$ {5 v, }
想法是好的. W& h: Q* E- p: m2 w
9 V6 L) i+ P, ]
但是对于tracking来说,多一层跳转,一般会多一层流量损失
7 w( ?& {# X' v2 B& Z# R4 a
请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:55) X0 U6 Z7 K: ~. E
想法是好的3 Q4 b6 [, G" p! u3 X7 [# j! i9 C7 W3 e
! @& r6 p8 N6 U  P" U
但是对于tracking来说,多一层跳转,一般会多一层流量损失

* C/ H% J1 g) ?, Y4 a! r- g/ E1 ^经过测试,直接用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:066 r& L* f+ [: Y: E3 p" [
额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核 ...

; Z- U( j$ [* J$ w9 P/ W' H1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。
4 J4 q5 W0 _! j. x- W' I- o2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。
8 ?8 d5 C" @1 h' [8 H0 ^3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>( f* d7 c3 g1 w, y' a4 U

7 t! s5 ~4 n& Q3 N. T1 E. E( A4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

850

广告币

1006

积分

中级会员

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-3 01:46 , Processed in 0.069136 second(s), 24 queries , Gzip On.

Copyright © 2001-2026, AdvertCN

Proudly Operating in Hong Kong.

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