AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
⚡️AdsPower:安全不封号,高效自动化广告专用虚拟卡/U充值/高返点皇家代理IP⚡️#1性价比⚡️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代理虚拟信用卡+独立站收款全球虚拟卡, 支持U充值Facebook 批量上广告
尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款各种主页、账单户、BM户(优势)
FB企业户,TT老户,GG老户源头PTM虚拟卡[全新卡BIN+高返点]PTM虚拟卡[OPENAI+全场景通用]FB虚拟卡⚡️消费越多返现越多
最大欧洲Nutra网盟BA找量->Tyver SPY汇聚海量广告创意广告位出租8500万高质量住宅IP,助力各种需求
虚拟卡返佣1%,国内持牌机构   
查看: 18972|回复: 7

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
本帖最后由 yang。 于 2021-7-15 23:15 编辑
, q9 i& B! p5 l* c# |+ n
! H8 q2 q2 d/ w  l( ~8 u) H在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
6 u- o; X, }# d$ k但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。9 c% J& l2 @3 r) N% m. _
, h2 x6 Z: `. F
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
: `2 y2 P* @- b' O  R- w0 i4 P" n2 E" t
具体做法是:
* `; [! x6 ~' U
, i. c2 F6 x% g6 W1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
1 m" `$ A" |2 |7 F# }/ j假设前置页面的访问路径为 http://www.xxx.com/4 ]$ l! X. }3 B7 _9 R
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  2 g3 i& Q+ }2 A6 e+ u: q" d
http://www.xxx.com/iphone/02/index.html
9 J% ?  t6 h% N' Q, M2 B那么我们在追踪器中设置的LP访问路径为
& Q  K. ], O+ Y2 i9 l# T$ w- A' |! xhttp://www.xxx.com/?offerUrl=iphone&landUrl=01
" e; s+ y- l- T1 p9 O0 `: _http://www.xxx.com/?offerUrl=iphone&landUrl=02
/ _2 r% Q2 q  J0 {/ L这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
$ b# g& H0 z* z) c2 v, b& j& N5 m$ k1 L( U
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。
3 P( W5 o, h# W' {  j
9 v, \$ u# I* X/ T& M. ]5 i
0 I- j* B: Y% f4 K6 h) Z5 s2.前置页面内容如下2 Y* g; R4 N, X3 @0 T! V, q% q
  1. <!DOCTYPE html>
    / L/ A  S. z- j1 A
  2. <html lang="en">
    : }4 q7 c5 a) O6 f  l# v) _( {
  3. <head>) [# ?) L& T, A( B2 F
  4.     <meta charset="UTF-8">' S1 W/ f) T% p  E. }5 r7 n9 y8 Y, d
  5.     <title>Loading</title>
    9 k+ j5 W; n0 T" ~
  6. </head>
      G8 R  L5 B" b$ F& M
  7. <body>: j" T$ c7 `8 {+ I; p- Q
  8. Loading...
    6 K' k; H8 d6 {- B( o
  9. </body>
    6 S* K" U3 G& J, G
  10. 6 q$ h$ g, O% d% R3 P( t
  11. <script>- p, A0 T+ ~- t  S% x1 w
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
    ! Z. N( U- q7 {8 q2 H9 x1 n
  13.     //iphone, ?0 ]! |( Q% e  B
  14.         //01                     http://xxx/iphone/01/index.html' z% M5 h% L8 q, v5 I
  15.         //02                     http://xxx/iphone/02/index.html
    2 o9 ]: o* V- s. e& ?7 ]9 L
  16.         //以此类推3 }8 f7 V8 u3 V7 _5 K. n5 o7 y+ G
  17.     & K; I1 |# T$ [9 A  F8 a: L
  18.     ; w  v# o" ?% ^4 p* ]7 e( K
  19.     ; U2 k! F# `% g6 a, Y
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html1 ]% R5 o4 A& s5 R6 k
  21.     //那么我们的offerUrl = iphone,landUrl = 011 r" D9 _. l" o9 t. |+ _. A
  22.    
    / d9 t3 C, Y( t( v
  23.     //从url参数中获取设置好的访问参数% |0 f% L5 @) V
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
      r6 r5 \6 w  i$ O8 [* B8 \) T" d
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");- l, l2 C3 d! E3 w
  26.     0 Y2 `- p# \& O" [3 v* u0 X* {
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
    1 r& R/ Z* A: l- i$ ~5 G
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);  B" v& R) g* ^" p* s- k
  29.     if(b){
      a' U: B- ], E
  30.         setTimeout(function() {) H0 t4 ~& u1 b7 L: o: f
  31.             var params = funcUrlDel(['offerUrl','landUrl']);. h  @; b' |8 N8 y) S  Q6 l
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤; M3 T4 x3 k/ n
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
    " ~/ c" _( j8 ?3 t3 v- N7 T
  34.         }, 300);
    " P2 p/ Y; o2 t& b& N
  35.     }else{
复制代码

: D5 n5 s6 K( M1 b* x
. j" ~) F* ~: r/ h2 d* I8 E1 \1 ~7 a9 a, a6 ]& I( c. j2 l+ W4 J
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
) f6 v' k: Z9 w: g: g, Y
0 ?- g% q6 t# Z/ b3 M+ B8 B
2 _6 D" R3 o2 P. u$ {" ]
. f- a* @6 H& w' N3 G: m
1 {( J# w" Q, K: _5 h
  }0 ^: B/ L- ]: c8 u! B$ q0 S- k0 j! K4 Q5 J
相关帖子
回复

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

1633

主题

1万

广告币

2万

积分

管理员

宇宙无敌河马天神

Rank: 9Rank: 9Rank: 9

积分
27222

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的
3 C) v  L4 q* `2 Q( b) Q
& e, ]% H* v: O% [9 V6 P- ]: z但是对于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; K- X) x, C' v' I6 u% k7 B5 `
想法是好的) L" N* R& k0 B
/ w7 W0 I! N0 C, ^
但是对于tracking来说,多一层跳转,一般会多一层流量损失

% u& y* P' o3 l- y0 \请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:55( }/ k  V* ~+ _9 d/ z. ^
想法是好的
2 Z- |0 m' X5 H8 h7 u6 S. U/ S
# H8 q! z- K4 Z& `; f" h0 h. o& U但是对于tracking来说,多一层跳转,一般会多一层流量损失

0 c' }. |8 u. ^$ r经过测试,直接用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
  p- v9 E1 A& D: r4 D额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核 ...

/ N$ S1 b! ~/ v) _1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。0 I) ~1 @6 N# W1 p
2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。6 |' U" W# u* ]  V
3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>
: K- ~8 \( `2 F' z; b9 l. O' d) ~0 Y( l
4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

847

广告币

988

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-28 11:56 , Processed in 0.048165 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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