找回密码
 立即注册

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高权重耐操个号⚡️稳定过审FB企业户海外户,授信户,TK加白户
联盟收款/海外资金下发/服贸结汇✔Taboola海外户源头9千万住宅IP-低至$0.3/gb✅静态$4/ip广告位出租
虚拟卡返佣1%,国内持牌机构   
查看: 14135|回复: 10

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

积分
533
发表于 2021-9-11 14:09:26 | 显示全部楼层 |阅读模式
Binom_AdvertCN
本帖最后由 yang。 于 2021-9-14 10:27 编辑
. @$ Z7 F( L/ W  F- q
) B/ o' Q  l2 \9 d; |1 L- j4 |" k开个头-------------持续亏钱ing。。。。
* U2 I) l5 y! m6 O5 A$ c* y/ G
! y. K# R5 D. u' A
; w9 s( b* G$ I8 e这两日有小伙伴觉得我加的一些前端验证有点用,遂求分享代码,这里也整理了一下发出来。1 `& {- L3 k2 ]- H* e

! O) j- N  w2 e, h基本效果么 可以查看这篇帖子' Q( Y. v3 v3 W' `9 v' h% {
https://www.advertcn.com/thread-99669-1-1.html; R6 k: F9 G: G
$ ]: f$ [3 J  A5 a* R( u+ m
! S5 H3 y+ O0 t) N
但是要强调下:脚本永远只能作为参考和辅助,
# x1 u) U% _- X% r$ q$ Q$ N$ c# T& U$ ^. v& E  o
  1. //your track host8 d1 |. h; g4 a1 t6 i6 b
  2. var trackHost = "";1 |" X. O$ Y! Y

  3. 1 O( q7 O  C' w$ [8 k7 E% s) c( \2 D
  4. /**" A& f, x5 d; o) q" p! t3 t
  5. * 1.校验浏览器是否支持js,可以作为垃圾爬虫得基础校验方式之一" G/ g2 k. {) M& h8 Y. A
  6. * 使用方式  直接调用jsSuportCheck()
    6 K. M1 N; N+ E! F5 a
  7. *      1.trackHost 指向你的追踪器,
    + ^0 E! ~4 d6 j6 L+ t/ a) S- k
  8. *      2.修改 event1 为你自己的event7 w. ]" a8 u( Z) p
  9. *      3.追踪器上  click-event1 = 不支持js浏览器数量(个人认为是刷子爬虫之类的)
    6 H! i& k* C9 z$ g8 j; k5 @( n
  10. *      4.追踪器上  event1 = 支持js浏览器数量
    . x9 W/ m) q* o7 A+ L+ Q
  11. */
    , D0 t' I+ t8 M9 Y' h% V: c
  12. function jsSuportCheck() {7 b+ y. d4 E0 T- X; h
  13.     var o = document.createElement("img");
    ' @, b; Z- E( N- k6 u6 y2 z
  14.     o.style.display = "none";
      V1 d( O6 \: @1 W# I. I
  15.     o.src= trackHost + '?event1=1';& S" w2 `8 h$ d' v9 W. V  F  r" k
  16.     document.body.appendChild(o)" d1 \- ?9 d, i4 [" T$ _
  17. }
    ! K+ D: k! y! X3 I* i1 I

  18. # n, W3 h5 ~6 D3 a* ^# P3 D& ~
  19. + D: L; }$ u0 e
  20. /**
      {& |# h5 Q) R4 [) n
  21. * 2.页面存活时间
    5 T1 u' ?) Q" o* }" u, a
  22. * 使用方式 直接调用 aliveCheck()
    # S4 r2 M! K! b* q& s* i) W* e
  23. *      每隔1s向你的追踪器发送一条数据:更新你的event3 Z# v8 Q2 f1 H% P) u
  24. *      1.trackHost 指向你的追踪器,) _1 X! d# T1 I& p4 w: u
  25. *      2.修改 event3 为你自己的event
    $ l( V3 S, D5 v, |: |( B
  26. *      4.追踪器上 event3 = 页面存活时间' e6 W5 s( t" T3 O: d4 p
  27. *
    + {( @4 Y. f+ A9 g- P
  28. * 数据说明:3 L, [, q: J* \7 X
  29. *  1.时间为0
    , @/ P/ g' _4 y7 V( P
  30. *         1.jsSuportCheck = 支持的 说明用户在1s呢关闭了页面,疑似高级爬虫(支持js的爬虫 如PhantomJS、NightmareJS 等无头)
    7 v6 f' U* j* i( P( w
  31. *         2.jsSuportCheck = 不支持的 参考jsSuportCheck
    4 |+ }3 Y1 v4 T, ~7 }& U9 D/ M7 w
  32. *  2.时间不为0& B- [% i/ l# {6 M
  33. *         1.时间很长的:页面打开了,没人管,,这个不好说,我觉得不正常
    4 Q. t1 C- Y( U2 P' z; R
  34. *         2.时间长短不一的,人类操作概率较大,若普遍存活时间短的,可以考虑LP有问题7 n4 p4 z# D. T' X' u2 P
  35. *         3.存活时间还行,LP ctr也还行,说明 LP还可以
    7 s  F4 p4 n% \
  36. *, ~. }& ]% e- E6 A) S
  37. */5 ?) l3 d2 B: I) e  O4 D

  38. ( }$ T3 U+ m2 C/ Z. a
  39. var times = 0;
    ( j6 h% H4 f% F! B( [. m
  40. function aliveCheck() {) k/ n. O7 r, V( {. I+ W. ?
  41.     setInterval("checklive()","1000");
    3 v( ^9 }7 v' D$ q' w7 v. c
  42. }
    ( L- `: m9 y7 [
  43. function checklive() {
    & ^5 w  X6 P; R" [6 D& t1 l; Q
  44.     times += 1;' g4 Z4 k$ Z/ ?
  45.     var o = document.createElement("img");0 R7 O6 ?! H/ c3 J7 q8 x$ k
  46.     o.style.display = "none";4 |/ R, h, s! |/ v+ L$ z
  47.     o.src = trackHost + "?event3=" + times;7 Z, g3 @" @& h' c6 h4 j; U" E
  48. }
    , i  D# H5 \& h7 }9 h

  49. 4 ^6 [. v! ]1 K; @% |' m, o

  50. ; x. C! z  e1 }& d2 {/ F2 Y  y! f
  51. /**2 Q& C- B0 K" N+ b+ i- e+ r1 z
  52. * 谷歌验证
    . F, H7 s  j4 m. r  b; E1 D* R
  53. * 个人觉得有前边的已经差不多了,所以这个已经没在用了,有需要的自己取, r6 t/ o) A( a! z+ P$ @& ^, x
  54. *
    % n1 S- q# Q) o: e8 {
  55. * 需要自己编码一个后端服务,用于同谷歌服务器通讯,返回score1 }+ u6 A8 {' |& O
  56. */
    0 `. n  P7 s& [+ a  `; ]1 O
  57. //申请的grecaptcha前端token
    4 O: X) j4 G% {) O# P% v( a* Y; I
  58. var token = "";
    ! {, a1 R4 T0 w8 C/ G" d
  59. //你的grecaptcha后端服务器地址5 Z. T1 \7 Z% w3 U/ _- o4 N
  60. var grecaptchaPostServer = "";
    ' ]7 t6 H, Y) q( V
  61. function recaptcha() {( U+ N0 Y  T- u" I$ t2 o
  62.     grecaptcha.ready(function() {6 V0 t- c3 s: p0 o  `, ~
  63.         grecaptcha.execute(token).then(function(token) {
    % u$ A, V# u$ ?
  64.             var ip = decodeURI((RegExp('ip' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");- b1 o0 F/ h$ }; q; D' r. N; k! o
  65.             var o = document.createElement("img");; U; `/ R" _  E$ G8 B% o9 X
  66.             o.style.display = "none";* Y2 d, I* Y, h7 `9 I% e
  67.             $.ajax({+ _2 ~  y+ c; Y2 U- r9 ]" R% S
  68.                 url: grecaptchaPostServer,% ^) N% ^: s6 j. Y* O
  69.                 type: 'POST',
    : i& V8 p. P; U) T/ Z2 f6 m5 o
  70.                 data: {"token":token,"ip":ip},
    9 t) @: G+ z/ w* u6 i8 Q( R
  71.                 success: function(data) {
    $ i* a. Y' o9 x
  72.                     if(data.score > 0.4){
    5 G1 N+ j0 B- v# }: l8 u+ F$ S# n
  73.                         score = 1;
    ; V$ z+ |/ J3 f+ ^
  74.                     }else{8 p8 V- w0 ?& I6 b" N9 U5 h2 g  }
  75.                         score = 0;
    9 {0 n6 U" X/ j1 e# o
  76.                     }& Q+ g/ b! N- A) m
  77.                     o.src = trackHost + '?event2='+score;
    / n; Q* Z1 Z% @. o! s
  78.                     document.body.append(o)
    . A* O/ M, G  i$ `0 V
  79.                 }0 E0 m3 [  T2 g2 d/ B' M
  80.             });
    ) o9 _7 ~! r2 [& _! K: H. e
  81. , L2 l: i4 m* K. e2 S
  82.         });
    * X7 S; D( f- F. n: x3 q7 Q# A
  83.     });
    & l, O7 k8 }) i6 U. V2 A9 @9 e
  84. }
复制代码
6 k) t* d: u+ c+ _1 \
# T" T8 t4 E; l- O1 H" d0 G: Y0 b
. u. q- o; p0 h0 [6 a4 O0 S# l& x
校验都十分基础和简单,各位新上路的小伙伴们看需要自取即可
; j$ \5 Z1 V8 R6 q
1 M. Y' f6 _$ S9 y# y) N. h- J" N7 A& {; r4 H3 ]& S) I$ q
, Q5 r4 ]0 R( a- P3 |5 m. I
; e6 A& h: p" X9 a- Z8 }$ i

' b; d" @& l/ u7 A1 H* n$ Z1 ?1 F/ M

本帖子中包含更多资源

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

×

评分

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

查看全部评分

相关帖子
回复

使用道具 举报

9

主题

1233

广告币

1650

积分

高级会员

积分
1650
发表于 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 | 显示全部楼层
补充下:
; m/ A3 }* i! m0 y. A: f今天同时跑几个campaign,发现追踪器负荷有点高,查看lp页面的时候发现页面时长统计的请求会502,应该是数据量大,加上这个请求太过频繁导致,遂将, G- z: [; ~/ a+ {# Q7 i0 A
  1. var times = 0;
    / K; c  d4 A+ R- y0 ~
  2. function aliveCheck() {
    + n. n7 F# Q8 l/ j6 V" B/ e( R5 L
  3.     setInterval("checklive()","1000");
    " r' U  i7 [) U. N& Y# z' D
  4. }
复制代码
" o0 ]7 Q: J- L7 |
修改为:2 p7 n+ T+ k. H% l0 C2 i4 _
  1. var times = 0;& {' d" C) S! g) V! o" `6 r) I. K. Q* ^5 [
  2. function aliveCheck() {
    ) |" h' ]( i4 o9 \# |4 t! [
  3. //请求频率从1s提高到5s一次,,5000是毫秒 = 5s
    ! i& s2 f1 d& ?2 E; V
  4.     setInterval("checklive()","5000");
    2 i  P- L1 A( C8 R9 I) V
  5. }
复制代码
# C2 z5 ^9 N+ ~
追踪器压力明显降低。。。。! `+ i. c) ~$ G7 ]
& Q- \4 i" y( I$ I( r9 t
这个看各位的需要,如果是高富帅顶配服务器当我没说,,,但这个统计存留时长的,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! q% M% W( z# A' E2 X# W+ s" s
补充下:
: C$ N& w4 t4 H% C- E今天同时跑几个campaign,发现追踪器负荷有点高,查看lp页面的时候发现页面时长统计的请求会502, ...
6 h: a; r' w9 N. p: L- H* S8 O0 T
虽然看不懂但是感觉很厉害云追踪器可以用吗,前端技术为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:41. S0 w- i3 r6 T
虽然看不懂但是感觉很厉害云追踪器可以用吗,前端技术为0,问下这个是js 放在lp上的吗? ...

, j0 V3 F7 r& w7 e$ B追踪器一般都支持自定义事件  binom里叫事件 event,这个你可以查看一下你用的追踪器的文档。
$ ?1 P; J, F# ]这个就是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
; E1 R6 n* j" }+ t- F5 M1 j追踪器一般都支持自定义事件  binom里叫事件 event,这个你可以查看一下你用的追踪器的文档。: j" Y/ C7 ~3 ?! P. P
这个就是js ...
) O/ b" {, Y% g
老哥能说明白点吗?在LP哪个位置调用、怎么调用

点评

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

使用道具 举报

82

主题

648

广告币

1202

积分

高级会员

积分
1202

社区QQ达人

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

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2022-1-11 15:56:06 | 显示全部楼层
pitch 发表于 2022-1-8 20:224 a+ [5 D0 E! q% L8 o& z
老哥能说明白点吗?在LP哪个位置调用、怎么调用

3 J) C; {+ Q% E4 A4 U+ R放在头部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
* p' V! E- S; l, \放在头部head标签中,用script标签包裹,或者放在最下边,body内,script包裹,调用注释里有 ...

. B/ b7 o! n6 Z# Q1 W1 m4 V0 R谢谢回复,已经用上了
回复 支持 反对

使用道具 举报

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-9-25 08:28 , Processed in 0.136629 second(s), 32 queries , Gzip On.

Copyright © 2001-2026, AdvertCN

Proudly Operating in Hong Kong.

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