找回密码
 立即注册

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%,国内持牌机构 
查看: 14160|回复: 10

[分享] 简单前端JS校验脚本分享

[复制链接]

16

主题

376

广告币

533

积分

中级会员

积分
533
发表于 2021-9-11 14:09:26 | 显示全部楼层 |阅读模式
Binom_AdvertCN
本帖最后由 yang。 于 2021-9-14 10:27 编辑 2 |7 `# P/ p) N3 w

: d& [' J/ E. b8 B- d* c开个头-------------持续亏钱ing。。。。
* _( X; _; c$ u5 ^, x
  {7 M8 ?* k$ R" D! l: w$ P) e: Y9 V/ L+ S' R" r+ N+ s
这两日有小伙伴觉得我加的一些前端验证有点用,遂求分享代码,这里也整理了一下发出来。
* r3 c  v. T: k7 l1 X
- k8 _: N( @8 k2 G1 `基本效果么 可以查看这篇帖子: e) p5 m7 D; S$ \
https://www.advertcn.com/thread-99669-1-1.html
) w1 ?2 C8 s6 N! c6 v5 R2 P, x* P0 V$ J3 K! n5 j4 I: k

9 s% Z. d2 q; h. x$ W2 [# j但是要强调下:脚本永远只能作为参考和辅助,
* ]  d4 A) `4 y% M$ }7 g" h8 r2 p7 _
  1. //your track host
    8 ]+ X3 r$ T: z6 m$ ~/ s
  2. var trackHost = "";
    2 G( r: i$ h. N0 {  _& r7 e
  3. ! P4 L& _/ D; `4 Y. _
  4. /**/ k2 K: r5 J" q" h
  5. * 1.校验浏览器是否支持js,可以作为垃圾爬虫得基础校验方式之一9 y! I6 {: s3 B  D/ J# k
  6. * 使用方式  直接调用jsSuportCheck()
    % t7 V3 J7 K' q5 ?
  7. *      1.trackHost 指向你的追踪器,! U% p, E, A0 @* q
  8. *      2.修改 event1 为你自己的event
    0 q$ U9 Y1 Y2 e$ p
  9. *      3.追踪器上  click-event1 = 不支持js浏览器数量(个人认为是刷子爬虫之类的)
    + C! B2 |9 u+ G2 R6 y7 E
  10. *      4.追踪器上  event1 = 支持js浏览器数量
    " |' Z4 D' J  h
  11. */8 B; ~% ^7 X. d# v* s
  12. function jsSuportCheck() {# L4 p6 v& ~& P0 j. f7 N* H9 P
  13.     var o = document.createElement("img");) n3 q% [  @& r# h1 X  d
  14.     o.style.display = "none";
    4 g& `) |& B* M+ Q/ ]
  15.     o.src= trackHost + '?event1=1';
    0 Y+ o, L& `& q& X0 B
  16.     document.body.appendChild(o)
    7 Q" o% M  n3 A7 d
  17. }
    : P3 C- E; p  s- T. w4 C

  18. ( j9 I- m: [( Z* N( R6 d. J

  19. / Y0 ?5 Y/ f' v/ G6 Y4 U5 s7 f
  20. /**
    5 Z' H/ J/ e' q, r
  21. * 2.页面存活时间( n/ I0 S  H! Y& A: R7 n
  22. * 使用方式 直接调用 aliveCheck()- @, f- r) j% `9 B! }& B, U
  23. *      每隔1s向你的追踪器发送一条数据:更新你的event
    ! y3 U3 i/ Q8 d- m3 k% E
  24. *      1.trackHost 指向你的追踪器,
    $ }0 B0 U7 e: K9 N9 n' q9 O
  25. *      2.修改 event3 为你自己的event
    : Z. G7 P9 u1 N8 W4 o, c4 i3 S
  26. *      4.追踪器上 event3 = 页面存活时间
    3 e$ Z1 ~0 C' H* ?1 |
  27. *  t: c/ o  [, Z8 {
  28. * 数据说明:
    ; b5 F- t8 q; b8 y+ C& a9 }$ ?3 F
  29. *  1.时间为0' ~6 _8 ?9 i' y  ~3 p3 C
  30. *         1.jsSuportCheck = 支持的 说明用户在1s呢关闭了页面,疑似高级爬虫(支持js的爬虫 如PhantomJS、NightmareJS 等无头)1 T4 T. S# P- X# R
  31. *         2.jsSuportCheck = 不支持的 参考jsSuportCheck' W3 l6 n) w1 Z/ r* W; p* ~( x2 j) _
  32. *  2.时间不为0
    6 [% J4 U8 Z6 }3 r5 w  R" S
  33. *         1.时间很长的:页面打开了,没人管,,这个不好说,我觉得不正常7 T3 x1 N8 C! ~% D+ C' V- q
  34. *         2.时间长短不一的,人类操作概率较大,若普遍存活时间短的,可以考虑LP有问题
    ) m- [9 J) A3 m; x, Q
  35. *         3.存活时间还行,LP ctr也还行,说明 LP还可以
    2 [; p% D' e- ~6 S7 M& g5 ^
  36. *& E" U) t, J+ G8 Y: L; }6 l
  37. */
    4 z! q- R2 \  M* F3 h9 E8 E" z  }

  38. 8 M. o2 w5 k, s' j% D+ Z- ]
  39. var times = 0;7 k! P/ c+ [0 B
  40. function aliveCheck() {" @0 l3 a% P% S6 W; S$ l# V1 ^
  41.     setInterval("checklive()","1000");) A( E6 l- K9 a  D6 |$ j1 U
  42. }+ G4 J) b* D7 f( G
  43. function checklive() {4 {7 k) l5 {- n" a
  44.     times += 1;- v# p, x  R. x  f/ E; N
  45.     var o = document.createElement("img");' u6 O: {( E5 x( j/ e& p
  46.     o.style.display = "none";! ]3 w5 m4 w  i( C2 J7 a8 w3 R
  47.     o.src = trackHost + "?event3=" + times;% J4 w0 u: Q* E
  48. }. `+ d9 p* H) k7 ^( s
  49. 0 d( f! p( }6 R- G8 t" r% v

  50. . j  Q7 j' t, _) i& _
  51. /**
    3 E& X; \# Z9 z8 f5 V3 a
  52. * 谷歌验证
    , j8 i# F$ r3 j+ e
  53. * 个人觉得有前边的已经差不多了,所以这个已经没在用了,有需要的自己取
    ' i3 F1 M" M/ O# G2 d) O
  54. * . z0 N) ~8 K( b$ X( m6 u
  55. * 需要自己编码一个后端服务,用于同谷歌服务器通讯,返回score! s5 e; }- l8 k- v+ n" ~5 v
  56. */" Q2 t6 r5 u7 G" s" W5 m' A
  57. //申请的grecaptcha前端token  ?% c& b# }, E& K9 C; r# K7 y9 l
  58. var token = "";) r6 t1 j7 Z* ?8 @) n: v8 Y5 E
  59. //你的grecaptcha后端服务器地址
    # v  q! m, o1 B9 l
  60. var grecaptchaPostServer = "";. T2 Q5 C& J3 R. T" Y
  61. function recaptcha() {
    $ @5 b, b/ f8 V: [+ E2 f
  62.     grecaptcha.ready(function() {
    , n# s3 K6 _0 Q& a; n. x# L' L
  63.         grecaptcha.execute(token).then(function(token) {. O7 y; J5 ]- E1 D  s% r5 ~
  64.             var ip = decodeURI((RegExp('ip' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");/ p% P( b4 ^" a/ e5 Q( C: H
  65.             var o = document.createElement("img");
      i) l) C+ [5 h7 p, d  u
  66.             o.style.display = "none";
    , F9 x. g$ U0 X# a
  67.             $.ajax({5 p0 J3 e; O# G6 H7 i3 Y, w' X
  68.                 url: grecaptchaPostServer,
    " ^7 h9 |' N$ ?* f* t3 ^7 _
  69.                 type: 'POST',6 c9 h: n+ a4 `
  70.                 data: {"token":token,"ip":ip},
    # F/ @0 G$ M8 c# O2 `& m7 y3 D
  71.                 success: function(data) {" |$ [& p  t1 n2 B
  72.                     if(data.score > 0.4){9 Z9 V7 \% ^  K; |2 t" U  ~; [
  73.                         score = 1;6 {4 {9 x5 p+ m4 d' C: k
  74.                     }else{
    # w1 p0 j9 }. o1 V. W. `
  75.                         score = 0;7 D" c- G9 e, t% s4 V7 Y. q2 E
  76.                     }/ x  F/ [: l, T( V( w( d0 J4 b; z
  77.                     o.src = trackHost + '?event2='+score;; O6 C  Z; u7 K. `! T: r: M
  78.                     document.body.append(o)
    6 B9 k! I: c. n/ K. r3 b
  79.                 }
    * |- S; o) s" K+ |' ?
  80.             });
    % B  }+ t3 a* z2 h, }5 Y

  81. 5 _% b8 `: e. c, t" j7 @5 ~# X
  82.         });
    : W7 O! B/ u6 O4 X0 G: x8 T
  83.     });
    5 a9 I8 z/ l5 j  d' Y) j  B
  84. }
复制代码

4 _* u0 j+ |! N5 t9 C6 S8 b% c3 w( b% n3 a4 O
7 o5 V* k7 T- [
校验都十分基础和简单,各位新上路的小伙伴们看需要自取即可
, Q! u4 Z" ^/ E9 j) _) a
0 {& V  |+ g+ g3 R( I
7 G' r1 }! [/ f
) _# V. K1 }: M! c" L! b
+ x# G! U# ^- K3 V
2 ^3 k: U( w9 f2 X& h/ e3 P+ C; V/ D; n& t6 j3 b1 ^

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1广告币 +20 收起 理由
bobogood + 20 赞一个!

查看全部评分

相关帖子
回复

使用道具 举报

9

主题

1241

广告币

1658

积分

高级会员

积分
1658
发表于 2021-9-11 15:57:06 | 显示全部楼层
回复 支持 反对

使用道具 举报

1

主题

254

广告币

297

积分

初级会员

积分
297
发表于 2021-9-11 18:09:27 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2021-9-11 22:20:28 | 显示全部楼层
补充下:
" J& B% e/ m4 a7 z7 x8 V! A& f今天同时跑几个campaign,发现追踪器负荷有点高,查看lp页面的时候发现页面时长统计的请求会502,应该是数据量大,加上这个请求太过频繁导致,遂将
+ V" A9 v! x; J; r6 u
  1. var times = 0;
    $ W! O  ~7 L/ [5 F
  2. function aliveCheck() {# U; m! V) v5 t+ G1 n5 [
  3.     setInterval("checklive()","1000");
    ( T, I! u( _& ^9 E4 L  }* |8 w
  4. }
复制代码

1 y/ h8 [) I! d% Q修改为:
+ [7 a  T4 l! F3 J! I1 G, {' W
  1. var times = 0;( X& a, j2 _3 t# ?% r
  2. function aliveCheck() {
    : U) V- d0 @$ e
  3. //请求频率从1s提高到5s一次,,5000是毫秒 = 5s& c  y# d1 c+ c1 X- H$ E; }
  4.     setInterval("checklive()","5000");
    0 Y% x  \) S3 g5 _4 @
  5. }
复制代码

* \3 A( }- u/ Q! k* S3 q: H追踪器压力明显降低。。。。' D/ L: K' Y; t& U( ~% i! c

$ D& L6 P" Z- l/ X! l9 P这个看各位的需要,如果是高富帅顶配服务器当我没说,,,但这个统计存留时长的,1s一次的确有点过分细化了,,,,各位可以按照自己的经验调整统计频率

点评

虽然看不懂但是感觉很厉害云追踪器可以用吗,前端技术为0,问下这个是js 放在lp上的吗?  详情 回复 发表于 2021-9-13 19:41
回复 支持 反对

使用道具 举报

0

主题

492

广告币

665

积分

中级会员

积分
665
发表于 2021-9-13 19:41:04 | 显示全部楼层
yang。 发表于 2021-9-11 22:20* S! K! C) b) x# w' {' ~) z0 _
补充下:+ x7 V2 w3 h$ r& [) V; H
今天同时跑几个campaign,发现追踪器负荷有点高,查看lp页面的时候发现页面时长统计的请求会502, ...

1 |5 ^7 r. l* ?9 M" G虽然看不懂但是感觉很厉害云追踪器可以用吗,前端技术为0,问下这个是js 放在lp上的吗?

点评

追踪器一般都支持自定义事件 binom里叫事件 event,这个你可以查看一下你用的追踪器的文档。 这个就是js代码,直接放在LP里 但是记得要调用!!!!!  详情 回复 发表于 2021-9-14 10:16
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2021-9-14 10:16:18 | 显示全部楼层
tonychopper 发表于 2021-9-13 19:414 ]4 l* V$ t# ]- f7 M8 {' C
虽然看不懂但是感觉很厉害云追踪器可以用吗,前端技术为0,问下这个是js 放在lp上的吗? ...
3 I( G; B+ Y7 a5 K* _: p3 K( G. a; Y
追踪器一般都支持自定义事件  binom里叫事件 event,这个你可以查看一下你用的追踪器的文档。
& T4 S; S( s9 ^5 M# h5 R这个就是js代码,直接放在LP里 但是记得要调用!!!!!

点评

老哥能说明白点吗?在LP哪个位置调用  详情 回复 发表于 2022-1-8 20:22
回复 支持 反对

使用道具 举报

60

主题

1150

广告币

1733

积分

高级会员

积分
1733

社区QQ达人

发表于 2022-1-8 20:22:24 | 显示全部楼层
yang。 发表于 2021-9-14 10:16
4 P, N% h: M: U. C3 U! D追踪器一般都支持自定义事件  binom里叫事件 event,这个你可以查看一下你用的追踪器的文档。+ P/ L+ ]1 [6 S8 ^2 L, S
这个就是js ...

( F" }: q: `& ?& k! C老哥能说明白点吗?在LP哪个位置调用、怎么调用

点评

放在头部head标签中,用script标签包裹,或者放在最下边,body内,script包裹,调用注释里有  详情 回复 发表于 2022-1-11 15:56
回复 支持 反对

使用道具 举报

82

主题

649

广告币

1203

积分

高级会员

积分
1203

社区QQ达人

发表于 2022-1-8 23:02:54 来自手机 | 显示全部楼层
厉害了!
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2022-1-11 15:56:06 | 显示全部楼层
pitch 发表于 2022-1-8 20:22* v4 }) ^4 `: k1 Z
老哥能说明白点吗?在LP哪个位置调用、怎么调用

9 R, Z0 g- W( ^1 d9 z  v放在头部head标签中,用script标签包裹,或者放在最下边,body内,script包裹,调用注释里有

点评

谢谢回复,已经用上了  详情 回复 发表于 2022-1-12 15:29
回复 支持 反对

使用道具 举报

60

主题

1150

广告币

1733

积分

高级会员

积分
1733

社区QQ达人

发表于 2022-1-12 15:29:05 | 显示全部楼层
yang。 发表于 2022-1-11 15:56
" `& I' j7 I0 ~9 ]! ~放在头部head标签中,用script标签包裹,或者放在最下边,body内,script包裹,调用注释里有 ...

8 P3 w' U8 C. \+ k; B谢谢回复,已经用上了
回复 支持 反对

使用道具 举报

1

主题

13

广告币

36

积分

初级会员

积分
36
发表于 2023-3-21 23:23:54 | 显示全部楼层
I just like analyzing with code, what a good and clear job.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-3 14:17 , Processed in 0.110188 second(s), 33 queries , Gzip On.

Copyright © 2001-2026, AdvertCN

Proudly Operating in Hong Kong.

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