找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5GMediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】
FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线
【官方】❤️搜索套利买量投流开户独立站⚡️开户投放Google FB TK游戏代投⚡️E.PN 虚拟卡⚡️
BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理
虚拟信用卡+独立站收款【15 年团队 - 广告自动化系统、定制开发】【ActionKey】Meta API 桥接令牌尤里改 - FB 稳定投放
【神盾 AI】Meta 广告资产防护 永久免费FB 三不限源头 - 自助下户充值转款各种主页、账单户、BM户(优势)IPCola原生住宅IP⚡️$1.8/条双ISP
FB资源,账单户,分享户,国内一手TK加白户/二解户/FB海外户/GG老户 FB高权重耐操个号⚡️稳定过审FB企业户海外户,授信户,TK加白户
✔Taboola海外户源头广告位出租虚拟卡返佣1%,国内持牌机构 
查看: 14218|回复: 10

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

积分
533
发表于 2021-9-11 14:09:26 | 显示全部楼层 |阅读模式
Influxtec
本帖最后由 yang。 于 2021-9-14 10:27 编辑
2 E3 e; {0 z2 @1 I. S% O3 t# }4 e5 k9 U) d2 c2 A
开个头-------------持续亏钱ing。。。。" n/ d9 N& b% S2 z. B+ K/ O+ D

0 t* `+ C3 k1 j! ]! D
' E4 f! @/ }% ~. O: ?: z; \. P这两日有小伙伴觉得我加的一些前端验证有点用,遂求分享代码,这里也整理了一下发出来。- P/ G" g1 Z3 l5 R! ]# k' |: ?4 H
+ ^1 I* C  r+ c" f
基本效果么 可以查看这篇帖子
  P% u% a, Q7 |3 c* ?1 _6 w3 [https://www.advertcn.com/thread-99669-1-1.html0 G0 w) `5 Y" b9 `+ Q! [* E6 H
' y8 y/ G2 B. c) v, B- O6 ~7 D
3 b6 ]) X" F3 \3 K
但是要强调下:脚本永远只能作为参考和辅助,& N  J0 w; l/ n; w5 a. g9 G

2 C  z: m: n5 J+ B% E2 N
  1. //your track host# K/ {% ]5 w$ D
  2. var trackHost = "";
    1 F$ O4 Z- X& h6 d: B

  3. 4 @5 [& N/ E+ r+ u
  4. /**
    8 _' X9 L4 \$ k. s& C- E
  5. * 1.校验浏览器是否支持js,可以作为垃圾爬虫得基础校验方式之一: r5 n! ~6 \) j: [/ V( \  _
  6. * 使用方式  直接调用jsSuportCheck()
    . k& X. y  p. L* \, j6 h
  7. *      1.trackHost 指向你的追踪器,
    $ Q* V2 X1 Z. L
  8. *      2.修改 event1 为你自己的event
    + ~0 e- A0 p/ f
  9. *      3.追踪器上  click-event1 = 不支持js浏览器数量(个人认为是刷子爬虫之类的)+ y: Q2 W# x" ~5 v+ c% |% z
  10. *      4.追踪器上  event1 = 支持js浏览器数量
    6 Y8 R6 c3 K' C- C
  11. */! c+ J; z+ [- [7 J
  12. function jsSuportCheck() {
    / T+ e  m. o: k/ Y3 a* _) @3 r7 h7 h
  13.     var o = document.createElement("img");9 e. v7 s2 d' F" Q' Z
  14.     o.style.display = "none";, f% [: ~: B3 Q: G3 |
  15.     o.src= trackHost + '?event1=1';" c! e- n0 ~& M5 k1 W
  16.     document.body.appendChild(o)
    # x  x/ R+ z( J7 B1 Z) _, w
  17. }9 v7 q5 W: e3 n" m; @
  18. 4 e: [: O4 ^$ l- l

  19. 4 ?5 D3 i; E8 k. O( o: |
  20. /**3 V  g- d" d/ e" @, }) O
  21. * 2.页面存活时间
    / c9 m) J6 A3 X5 U) ^
  22. * 使用方式 直接调用 aliveCheck()
    4 {( t. H) f/ y4 G$ B  i2 z3 S
  23. *      每隔1s向你的追踪器发送一条数据:更新你的event+ a( h5 C$ y4 L3 }" l
  24. *      1.trackHost 指向你的追踪器,
    ! w& A8 k, g% m( W# B
  25. *      2.修改 event3 为你自己的event8 Z7 p- J# Z/ q: ?' `! ]5 H
  26. *      4.追踪器上 event3 = 页面存活时间
    0 K" \8 A. W) s$ n
  27. *
    / m6 o$ s. v2 v0 _8 ?! [
  28. * 数据说明:0 Y! g5 u7 [1 d' b6 a: v0 G4 m. R
  29. *  1.时间为0
    7 n! {/ j: l  ]9 r- u- A+ H
  30. *         1.jsSuportCheck = 支持的 说明用户在1s呢关闭了页面,疑似高级爬虫(支持js的爬虫 如PhantomJS、NightmareJS 等无头)4 ?  ?( t  }! i8 V! D" }3 G
  31. *         2.jsSuportCheck = 不支持的 参考jsSuportCheck
    0 Q  I0 }& M8 V- g1 O
  32. *  2.时间不为0
    7 N" B8 O4 {* p- |, U3 ~6 J
  33. *         1.时间很长的:页面打开了,没人管,,这个不好说,我觉得不正常
    * `; x# O7 n- P: ]8 i  N
  34. *         2.时间长短不一的,人类操作概率较大,若普遍存活时间短的,可以考虑LP有问题' D. D6 K8 L# {& Z; b
  35. *         3.存活时间还行,LP ctr也还行,说明 LP还可以
    * @- s( w: Z% t; F4 ]! y
  36. *( m$ Q. d. z+ [5 E
  37. */8 a/ J# |. p( l% ^' q4 |
  38. % p) s  P6 Z0 E; H
  39. var times = 0;
    9 f* {1 `! c. J% f1 ~
  40. function aliveCheck() {
    " q- p5 D  j% U& e# ]
  41.     setInterval("checklive()","1000");
    ! C8 Q+ D  [, F
  42. }
    " U8 \$ \/ }! A: z" U
  43. function checklive() {  @( S4 Q" a  A* a  r/ O2 U8 Q% p" k
  44.     times += 1;
    * }' \0 @3 A* R  u; v1 f
  45.     var o = document.createElement("img");
    ' }# a! ^# W1 F4 O" W
  46.     o.style.display = "none";
    ! K5 _5 N' Q" y3 v# m
  47.     o.src = trackHost + "?event3=" + times;
    . H$ ~- ], f* |/ ?5 P; d
  48. }
    + ^( v; |' ?1 B) U
  49. % l! Y! ?* q  h" e" M

  50. & \8 |. j( }- }. d0 R0 w
  51. /**
    ' n) {3 O: H) m* Y
  52. * 谷歌验证2 o$ ]! B: C( M4 q
  53. * 个人觉得有前边的已经差不多了,所以这个已经没在用了,有需要的自己取& Y) h) E8 z4 ~
  54. *
    ' c. R  I3 X4 S
  55. * 需要自己编码一个后端服务,用于同谷歌服务器通讯,返回score- Z( F* ?: A: Q7 l; E; Q6 z
  56. */
    ' E, J4 [. q6 }
  57. //申请的grecaptcha前端token
    ' B. n) d$ c. w3 o; F
  58. var token = "";
    * M" [4 p+ X; v) l' c
  59. //你的grecaptcha后端服务器地址
      k* }" y* ?* f6 |# P8 c5 c
  60. var grecaptchaPostServer = "";
    7 c% ^% M& l# G# B( Z/ a( T
  61. function recaptcha() {# E7 L# B5 a! {3 U
  62.     grecaptcha.ready(function() {
    2 m9 f, [+ A$ q
  63.         grecaptcha.execute(token).then(function(token) {
    / m- _. I: a5 Z' |
  64.             var ip = decodeURI((RegExp('ip' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
    7 _" N( t3 b4 E: n. j/ {
  65.             var o = document.createElement("img");8 X2 k3 f; G, x$ {1 n- ]% o4 y
  66.             o.style.display = "none";
    7 ?. u8 P3 _& @+ M
  67.             $.ajax({# U/ Y/ l* G( l! ]
  68.                 url: grecaptchaPostServer,, E0 A# U* d0 e. ]
  69.                 type: 'POST',
    ) V$ y" v! u- l0 Y! ^$ n' a
  70.                 data: {"token":token,"ip":ip},
    ; G, M; J7 h9 N5 s
  71.                 success: function(data) {7 _/ j- g- u8 l/ J, ?
  72.                     if(data.score > 0.4){- a+ H# L7 C& S& i- N
  73.                         score = 1;
    3 X9 T9 m" e5 B; D
  74.                     }else{
    8 ~7 ?! I- z# a- c, O
  75.                         score = 0;$ n3 U$ ^7 v/ d# z& V3 T5 p$ f
  76.                     }
    * ~3 E) n- [" H/ Q+ G: [' T; ?1 }
  77.                     o.src = trackHost + '?event2='+score;' A  D2 S- g7 O& g5 \
  78.                     document.body.append(o)- f8 N" U  X! C: K$ X8 o
  79.                 }
    + V2 o* r# G; m! v8 ~& k/ p! x1 m: Q
  80.             });& }, N/ p& j% |7 M+ B3 ~% g& [2 O
  81. : U, _% b9 A0 H, x* k0 Q
  82.         });
    1 {3 L/ G/ g/ L9 Q" S: c$ e! ]4 ^
  83.     });- |& i; ^: Q. W$ W7 G0 q* `
  84. }
复制代码
/ Y: }( g) l& w5 n. K5 B( y/ R! J

8 }, _$ n" ~! r6 S7 M
- S. K1 x. N4 @) j' G/ q* j校验都十分基础和简单,各位新上路的小伙伴们看需要自取即可$ r3 r  g( t4 S) M. d% k2 C7 r0 o

" u% \8 h9 {& z. H& N9 a, o1 v6 Z, l% M  k# t, h
5 l) n( R/ ?1 u$ `1 }
/ e& J9 Z- @% a! A1 v1 B

: J9 B6 O, h7 @) v; u: [! z5 r- p
( \- h8 s# V. Q! U

本帖子中包含更多资源

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

×

评分

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

查看全部评分

相关帖子
回复

使用道具 举报

9

主题

1261

广告币

1680

积分

高级会员

积分
1680
发表于 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 | 显示全部楼层
补充下:& V# N0 c; b; ?7 h) d4 t0 P7 I9 m
今天同时跑几个campaign,发现追踪器负荷有点高,查看lp页面的时候发现页面时长统计的请求会502,应该是数据量大,加上这个请求太过频繁导致,遂将0 D- ^7 A; m8 Q* N$ l' f
  1. var times = 0;
    : T' t. _( T1 S" g0 m- P1 N; p
  2. function aliveCheck() {5 _2 d, p% n8 [
  3.     setInterval("checklive()","1000");
    * `, m+ s( p+ T8 |: f* r- K8 s& B
  4. }
复制代码

+ z6 @+ s# E; V/ R& O# C修改为:
/ v( L' A6 B9 @/ |$ G2 w' N0 Y
  1. var times = 0;$ h! ?* S& ]# I2 D$ T* t
  2. function aliveCheck() {, h9 ]% x( [; P( Z7 L& |; t: ]
  3. //请求频率从1s提高到5s一次,,5000是毫秒 = 5s; l, p0 g. d- L2 x) ~
  4.     setInterval("checklive()","5000");
    $ `- o5 S' F8 }
  5. }
复制代码

' e' `# t* j$ V& B; F4 k& Y4 `& z追踪器压力明显降低。。。。6 }2 o1 n& H4 X% P3 u
3 O% M5 i6 a/ c: Y( D" }4 w
这个看各位的需要,如果是高富帅顶配服务器当我没说,,,但这个统计存留时长的,1s一次的确有点过分细化了,,,,各位可以按照自己的经验调整统计频率

点评

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

使用道具 举报

0

主题

493

广告币

666

积分

中级会员

积分
666
发表于 2021-9-13 19:41:04 | 显示全部楼层
yang。 发表于 2021-9-11 22:20) D/ h# k! r8 r2 t* O
补充下:8 A5 W3 V- j$ N2 n* S% F6 u
今天同时跑几个campaign,发现追踪器负荷有点高,查看lp页面的时候发现页面时长统计的请求会502, ...
+ F# s) T. j6 q! j" X$ k
虽然看不懂但是感觉很厉害云追踪器可以用吗,前端技术为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
) p$ h  y$ K' y3 a虽然看不懂但是感觉很厉害云追踪器可以用吗,前端技术为0,问下这个是js 放在lp上的吗? ...

$ [, ^% u' b' B5 J* N追踪器一般都支持自定义事件  binom里叫事件 event,这个你可以查看一下你用的追踪器的文档。
" k5 e8 W* Q% g0 `" x2 R# ^% W这个就是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
) n3 e, P8 M4 V  \+ X追踪器一般都支持自定义事件  binom里叫事件 event,这个你可以查看一下你用的追踪器的文档。8 Z4 n% r' F) d2 x, r
这个就是js ...

& \: h( g2 O7 a, H8 n6 Q+ S老哥能说明白点吗?在LP哪个位置调用、怎么调用

点评

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

使用道具 举报

82

主题

654

广告币

1208

积分

高级会员

积分
1208

社区QQ达人

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

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2022-1-11 15:56:06 | 显示全部楼层
pitch 发表于 2022-1-8 20:22
+ ~0 l& G; `1 j3 ]老哥能说明白点吗?在LP哪个位置调用、怎么调用

7 q5 Y6 N, r: v) q- K6 t放在头部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
% z$ b5 i) n% z+ p6 z放在头部head标签中,用script标签包裹,或者放在最下边,body内,script包裹,调用注释里有 ...

; V# H1 g7 S' M9 X( `' l谢谢回复,已经用上了
回复 支持 反对

使用道具 举报

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-25 08:51 , Processed in 0.073594 second(s), 24 queries , Gzip On.

Copyright © 2001-2026, AdvertCN

Proudly Operating in Hong Kong.

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