AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️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 + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款全球虚拟卡, 支持U充值
Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款
各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户FB企业户,TT老户,GG老户源头PTM虚拟卡[全新卡BIN+高返点]
PTM虚拟卡[OPENAI+全场景通用]FB虚拟卡⚡️消费越多返现越多->Tyver SPY汇聚海量广告创意广告位出租
8500万高质量住宅IP,助力各种需求   
查看: 18950|回复: 7

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
Lemft
本帖最后由 yang。 于 2021-7-15 23:15 编辑 5 `# |# Y! K1 H% W! U8 O# \

& v& O% ~. z7 E/ R8 }在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
% W. ?6 |7 u, R. Q8 |+ U* j# ~5 ~但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。% t5 e/ ?+ I% P1 P1 P( b
0 J8 U: n. ~. z9 a) X
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。; Z. p" h2 T) i, v( v  Z/ ?8 i

- P) b) t. ?7 n& V* c具体做法是:0 R8 l. ]3 T6 u: Z3 s

/ Q( K( g/ b! ]- |* e: T# ]' D( P+ N  V1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。. l, q& B, i& X; K' I' t
假设前置页面的访问路径为 http://www.xxx.com/
: K5 d, t3 C9 g3 f+ u) p2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  
1 _* T# l6 R; x& g4 Y& Nhttp://www.xxx.com/iphone/02/index.html
) P8 a% h8 U- s2 q那么我们在追踪器中设置的LP访问路径为
! h/ E# ]0 g7 Y# ]' Nhttp://www.xxx.com/?offerUrl=iphone&landUrl=014 e. {) u0 r- @2 q+ V2 w
http://www.xxx.com/?offerUrl=iphone&landUrl=02
5 J- B( r! Y# S9 ^这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理7 h) Z) x2 G3 o: \% M- }
- [$ f; N0 c7 {9 ^* u# s7 v
这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。. ~" l* i" n  C% Z- F% t% u; F) s
# g: f, Q/ H$ m2 c3 z  t) K' T# W, |/ F# s
9 u/ l* U: p. S6 E" c2 f
2.前置页面内容如下# q! U! H. b& [2 i6 V, O3 d- Q' ]
  1. <!DOCTYPE html>; v# G3 s6 I1 S9 Q
  2. <html lang="en">
    5 P" \) q5 U1 Y
  3. <head>
    ! m, W8 E- a7 X* G. F
  4.     <meta charset="UTF-8">
    " \8 u" q! h0 y% O
  5.     <title>Loading</title>1 F% y; m; C2 n
  6. </head>+ n0 A4 c2 {- E1 e' E
  7. <body>9 A2 X5 \% F2 g
  8. Loading...* i% a8 ?3 y2 A1 ]* L
  9. </body>8 y1 q; j9 V5 g. _# D8 R& Y- A+ @

  10. . S) ^( Y6 x; m% D, _/ q, {
  11. <script>& I  ]- ?/ w0 X# Z$ L
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
    8 b; g1 N3 a7 R. }& R" M
  13.     //iphone( W3 H1 y  ^$ p
  14.         //01                     http://xxx/iphone/01/index.html7 l) n0 }- g; U4 D! c
  15.         //02                     http://xxx/iphone/02/index.html3 U2 |( Y! e) g' ?& N- O* Q
  16.         //以此类推
    4 B+ b5 G2 I2 z7 j5 }
  17.    
    6 y6 w2 {1 X% d$ P* X) b% W6 h
  18.    
    0 k  V8 y, R) d! P1 y
  19.     " o5 p1 d" ?" B
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html
    $ L3 e8 p9 Q+ N* c9 [% a3 b
  21.     //那么我们的offerUrl = iphone,landUrl = 01: L, n1 x  Z& f8 u" e- M2 e. U
  22.     / u' ]( J4 c$ |4 B
  23.     //从url参数中获取设置好的访问参数
    " s  ]# u: V. \. G3 x; N6 a  W/ B
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");, H" |6 {, g. X. U) @. @' S
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
    2 p  `8 Z$ I) T: n+ a' E
  26.    
    ( H* Z, I; ?$ R) g9 n
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
    * z5 Q; a8 {. w7 \" q. {& _
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);' s& m5 h. O8 @- f- W8 \" A4 T) }# y
  29.     if(b){
    ' B+ `6 w+ C0 ^1 q" G: w
  30.         setTimeout(function() {
    9 j) z) b+ F1 U& w& ^2 J! n
  31.             var params = funcUrlDel(['offerUrl','landUrl']);
    # Q6 E+ I7 `" E* r( h# `1 c8 ^
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
    ' d' U' m5 ~/ {  D
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
    6 W5 s  q: g- I# L5 C" a, b- h5 U7 C
  34.         }, 300);
    4 [# E0 t) z  n" M/ ^: j! n' \
  35.     }else{
复制代码
- f9 A  ^: n. m% A. l; k
" A% c; [% E4 w3 m( y. X
) B# ^- p) s( y4 \! K/ g
只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。* r7 G" L3 _9 C! M' W0 m

0 x5 H  j! r" V( w; w+ U8 Z/ |
! k, }( l9 R  D3 N( _! X, D6 t) M, k' ^+ {( j/ n7 f, {1 L' L5 d

& V7 R7 @0 x8 k4 z% {+ e9 o) C
( {/ z& o0 v3 A2 m2 I  v9 L: W; ^: o' z4 ?+ p9 l
相关帖子
回复

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

1632

主题

1万

广告币

2万

积分

管理员

宇宙无敌河马天神

Rank: 9Rank: 9Rank: 9

积分
27212

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的
" o5 F7 }) R; I+ G- \: q5 X' H0 B2 L7 C6 d: @. Z9 X; Z& B& O
但是对于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
; }3 o9 k" t' l* ?. O  y9 F* R2 u% @想法是好的/ S- e) k1 x1 F+ p" T* |
/ O( Z: Q5 z6 ?8 |" J5 t
但是对于tracking来说,多一层跳转,一般会多一层流量损失

/ p& a) c" ]8 T请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:55
# [# h$ H, }1 ], {6 R想法是好的, `! P3 b  v* s8 |

* W  d& o! X4 Z; g) d) Q$ C" ]但是对于tracking来说,多一层跳转,一般会多一层流量损失
' [" Y8 [9 M2 \3 B7 d: V8 M$ Z
经过测试,直接用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
3 h( w0 B! t% q: T/ G! }' S2 g额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核 ...
2 S8 x* @; K2 w3 [* m+ O
1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。
/ S7 F! H1 u( j( J$ d: Y! H* }2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。/ I. o. m5 E3 d+ h7 ]* C& g
3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>
5 Z( r2 r  {8 l1 D. z; o0 Z: J/ w3 @; o& q9 q7 f! @6 R5 l2 `
4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

847

广告币

988

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-21 09:23 , Processed in 0.048685 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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