AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AdsEmpire
 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️最干净<Wifi住宅+5G移动>IP代理指纹浏览器,就用AdsPower
【广户】
⚡️我们很有实力Search feed套利⚡️Affiliate 广告开户FB/Google/TK点我开户⚡️
DuoPlus专注打造跨境电商云手机E.PN 虚拟卡BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具
MediaGo+Taboola+Ob开户百度国际MediaGo⚡️让产品狂奔全球百度国际,高点击转化,快速放量百度国际MediaGo,独家原生流量
ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理全球虚拟卡, 支持U充值Facebook 批量上广告
尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)2024做什么 - Media buy 项目库各种主页、账单户、BM户(优势)
⚡️个人户,bm户不限额,账单户Adsterra 的CPA/CPM/CPC 网站流量一手BM分享户不限额9Proxy ⚡️ $0.04/IP, 无限带宽
FB顶级服务商IPCola原生住宅IP⚡️$2.1/条双ISPFB1拖7/8/9一个也是批发价FB二三解0.1元一个
Google、Bing官方总代  联盟流量开户广告位出租  
查看: 16320|回复: 7

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
adsterra
本帖最后由 yang。 于 2021-7-15 23:15 编辑 ; J, h3 O5 R: d3 c7 c
; M) R4 A3 z% X, ~! [" K
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
4 C4 p9 N9 R3 I$ S0 Y但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
% f$ W' F: S0 x6 D5 g( U! f7 t. T, [# O) a( H# O* l; g
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。7 r1 f7 R6 K6 L. g
' b; L3 R# t4 |. E5 U8 A
具体做法是:7 G/ N2 p4 Q& ?. J2 V! y0 g
6 s( i' v/ D& F( a
1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。" S# B% G" V$ i
假设前置页面的访问路径为 http://www.xxx.com/
- B0 B# Q. G, I4 D8 y) R7 R% d2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  
6 a6 E# P+ g% @8 b4 Y  y9 whttp://www.xxx.com/iphone/02/index.html
" q1 E9 l; E& Y! {那么我们在追踪器中设置的LP访问路径为
$ v( Q6 `- {2 _, r$ dhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
- [; |1 X' q. @: Dhttp://www.xxx.com/?offerUrl=iphone&landUrl=02% ^- s! W' V  w$ ^8 e3 ^
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理" B1 Y7 Q2 x, I2 b
/ E6 |. Y5 ?5 O7 O  C% U* M
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
# Q, P2 z+ F) Y- m, N/ g/ }% d3 j2 z6 g9 C8 w

0 p) X3 u* ^: T" S2.前置页面内容如下- D* O* o3 [% k
  1. <!DOCTYPE html>; N( A0 i, p2 M: y2 {3 y
  2. <html lang="en">) l2 R1 Y; O* |6 \- V- R) M7 H/ b$ j
  3. <head>1 s# v. e' M$ Y  d
  4.     <meta charset="UTF-8">) n% f4 X+ o/ |# |" X1 B
  5.     <title>Loading</title>
    5 o8 o- i6 H( g  ?4 i
  6. </head>
    & ~3 a6 L4 T5 p, U+ i
  7. <body>2 p3 f/ q2 x4 S) Q/ S1 m
  8. Loading...5 c9 Z( Q: _* w! {! ~
  9. </body>
    . W: R; ]( A4 T  i$ U: ?( h

  10. - L2 Z& }- d* r3 {# S3 e
  11. <script>8 x0 B. |* M2 d; y3 t
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
    : X, [: o# ~) P
  13.     //iphone
      i" t; p7 N6 m" X% m8 `4 g
  14.         //01                     http://xxx/iphone/01/index.html7 N$ g, H5 q, B- g/ J0 ^$ z
  15.         //02                     http://xxx/iphone/02/index.html
    / |3 e7 X- @6 n" G7 q3 B1 s( H
  16.         //以此类推/ u" L6 a( \+ _8 D3 I- y8 ]6 G
  17.     , `% M. T) ?  {/ j9 c. u' y" \
  18.    
    1 i+ |; i8 U: i7 S* b! \6 e
  19.     1 l- O/ B! u, A) y) d- @
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html: r; Q& J* A* V) d9 [" y
  21.     //那么我们的offerUrl = iphone,landUrl = 016 b! y  E  B* M8 }4 q# S
  22.    
    + F; J) s) p) C' p3 a: K( `
  23.     //从url参数中获取设置好的访问参数
    ( [) `2 t; M6 j
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");# T' b0 F% }0 p2 ^5 k
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");8 U/ j7 A# j+ ^4 l( A' [  P- k
  26.     ( ~8 a0 n. w4 @+ ?& v
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径2 T1 ?1 \8 G, O8 t3 u) y- e$ R' A! `
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
    / V' p/ b& i2 g- N3 N
  29.     if(b){
    ; o6 u! ?7 T1 L; M5 t6 ]& Z
  30.         setTimeout(function() {
    8 u: y- B; F) ^: T8 u! r& N" \
  31.             var params = funcUrlDel(['offerUrl','landUrl']);
    & m9 m* w3 g8 [" W
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
    5 [3 W, f% [2 f* }' e* i9 ^. J1 f% C0 ^
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
      g2 g7 X- Y8 h* D
  34.         }, 300);
    ! m/ P( j+ ^, @0 D
  35.     }else{
复制代码
7 F/ ?  ~( s7 |, m/ c

; X$ h. o. N5 R* Z* Z. ^
' [& i% g& K$ m. ^3 I, i只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
: v' n+ r: j2 H$ L$ x6 K" s( K6 G* M( |! l9 H8 m

! x9 z$ p1 y7 K& O$ _  Y! S
6 _9 O! B$ d# j. C  n  d$ a% C% C# _% u2 ?& Q, d) G( U0 M7 x6 E; A

+ f+ k& @7 W' |" `, A
2 R" F. ^8 p2 n. ?+ S' _: E9 Q
相关帖子
回复

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

1611

主题

1万

广告币

2万

积分

管理员

宇宙无敌河马天神

Rank: 9Rank: 9Rank: 9

积分
29207

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的. Y  d' r8 T" a. _- A: [0 N. f: E

' u! A% y- \0 }但是对于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
1 v+ B+ `1 v0 Y/ k1 Y0 V想法是好的
  f; Z; W2 h; ?+ F1 B# T1 k
# t2 ?0 o9 Q: }3 F# E但是对于tracking来说,多一层跳转,一般会多一层流量损失
0 j# k2 J  ?( g7 l9 J. J- L
请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:55
4 r* K5 U- d9 p5 _5 y5 Q* I/ o( v想法是好的
( [2 m* u, W. u: e
* G, B8 z* G9 I4 o但是对于tracking来说,多一层跳转,一般会多一层流量损失
0 m, m8 N4 g1 n2 p' w
经过测试,直接用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
. b2 [- ~/ x4 V9 ^! Q* U额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核 ...

9 }% C, Y$ U9 W0 k( k$ j0 K( V# ^, ]1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。
: T0 a. ]% r8 M3 C, p& _2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。
8 G: f! C6 Y1 ]0 e% l8 G3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>
! w0 x3 i5 H6 b% J) f1 S) d  a; I' w  Y1 R
4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

775

广告币

927

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 08:35 , Processed in 0.048089 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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