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,助力各种需求   
查看: 18953|回复: 7

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
Lemft
本帖最后由 yang。 于 2021-7-15 23:15 编辑
% i( Q% e! o* O: T% c2 F7 m+ ?; T
9 j* y3 s4 k" c+ Z- o/ K- E! q3 t2 g在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
+ V( P) a4 Z8 a' r但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
* g% _8 R- h* k9 ~! Z; r0 h7 Y
! G, i" G3 A% u& q/ Q/ `- S另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。8 w8 Q  T  e. C/ Q  w) |

% F# ~/ s' V$ ^( b; v具体做法是:$ f5 z& x& C6 S- W; v% X

. X  W1 j# \0 i4 T1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
/ f" B$ X: B5 A) T: S假设前置页面的访问路径为 http://www.xxx.com/' ?1 \% h( _/ J+ P" F% Y4 Q
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  $ q8 f: k4 d" g7 N; G
http://www.xxx.com/iphone/02/index.html
! C' `8 J5 v) r$ U那么我们在追踪器中设置的LP访问路径为
  R4 @" G* C( k% {http://www.xxx.com/?offerUrl=iphone&landUrl=01
. K& O" ?  ~7 p7 Phttp://www.xxx.com/?offerUrl=iphone&landUrl=02+ r4 I* G! L9 X
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
' N$ F) {& n; l  A
5 {. x6 m" s; K0 Q1 l这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。+ g) l+ p4 z1 `$ F- P
& J) Z, `9 F, v

# {- C% o3 {) ~6 H1 B/ Y2.前置页面内容如下
  Q1 b! a3 I, `# i
  1. <!DOCTYPE html>
    ! J& T* `4 i  C- I$ @3 D" X
  2. <html lang="en">+ U) s# [0 F, i9 ]& t& H: @
  3. <head>
    ) g  |* G$ [# z; H. P$ e+ c
  4.     <meta charset="UTF-8">3 p; S* e) N& q! E
  5.     <title>Loading</title>
    1 S& v* D2 Y, ^* X2 w
  6. </head>3 r! n4 p1 j2 _+ S
  7. <body>
    6 D  }. _% |  ~4 S5 [1 \; h
  8. Loading...5 ], P; {" J# P- ], h, V% J
  9. </body>3 j3 q; B$ @* z% [/ K/ z' S7 p! L
  10. - G& H. U* z' {
  11. <script>
    % j9 q( U7 a" x) e0 [- W; m
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成8 c. @  ]% o, ?: w! k! Y( w! B
  13.     //iphone
    ' m& _  h+ n$ z
  14.         //01                     http://xxx/iphone/01/index.html
    ! K( C! @6 K) y* l: h
  15.         //02                     http://xxx/iphone/02/index.html7 j* z' R5 w% j9 z5 |( u
  16.         //以此类推
    ' H' X0 ~. s4 n& x
  17.    
    ; W% _$ m( V. ?1 @- @
  18.     4 l- K" v' M8 e1 T  |
  19.    
    * w# Z. Q- P5 N
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html
    ' @4 c0 u( e- R2 l: j
  21.     //那么我们的offerUrl = iphone,landUrl = 01$ ]6 C3 U4 |& L. G5 J
  22.     8 W! [& A5 i* y
  23.     //从url参数中获取设置好的访问参数
    1 T1 }) k, S2 E5 ^
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");  r5 U" Z" {+ w$ Y( A! N: q
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");, W% f; V4 Z% A" k; g
  26.    
    / ^2 N) ^9 m" [- c$ S% ^
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
    ; {, K  T  u- _
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);9 k6 ~  S3 Y  e
  29.     if(b){; A# d" c, w% O5 q4 i+ o
  30.         setTimeout(function() {
    $ o+ X6 X. L" O" H; K
  31.             var params = funcUrlDel(['offerUrl','landUrl']);
    $ G- |$ \  q) h, S0 }" S
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤1 r' b% o; \, l+ x
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
    7 \% d5 ~0 p4 q$ `5 R+ b' h
  34.         }, 300);
    : U9 f& R) }1 N2 P
  35.     }else{
复制代码

0 v1 ?5 w: W6 @/ R' B0 h" D" U. P; r2 H2 u' s: ?" c

* D  t4 L" Q, ?2 o3 _9 |5 W- A只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
3 R+ W7 z  y( k% G6 f
* L$ T7 H) Y1 j  N. P/ }
( m- _2 f8 ?' T( u. Y
+ J' g, e/ ^4 S, D+ f2 E) F  z- S0 }/ L8 [9 b# L6 v) h5 I8 W

& W, K9 e% r0 ?& M- c& B) N$ {! e. b' J2 I
相关帖子
回复

使用道具 举报

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

积分
27215

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的
6 q6 [0 v% R# j3 q8 Q2 n8 k: @$ ~8 v( C- V8 w+ J, l
但是对于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- w' g. F2 C0 j, {
想法是好的
' s0 k  _0 W  E% D8 K. t+ [/ j4 o2 n) x7 R! D2 ?# p
但是对于tracking来说,多一层跳转,一般会多一层流量损失

' M( E2 E) ^: t8 i* G请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:559 f( }* X! s; X% h4 V- S% }1 u
想法是好的; C2 ^- \# x( s# U$ `/ ~7 h

* q" C3 f9 ^+ W. M2 V/ [  l& k. q0 L但是对于tracking来说,多一层跳转,一般会多一层流量损失
  W$ l. c8 R1 n! K+ i
经过测试,直接用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/ N3 P" k2 ~/ m4 \  Q
额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核 ...
, V, ~* O* m  T
1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。8 i/ ?: s1 G/ t% Q, Q5 G8 k
2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。
# T  F$ M9 y" P4 ]6 W: H  k3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>: i; P, l/ z+ O$ l3 ~) K! G

' T- o+ @* v* O  M/ m8 W4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

847

广告币

988

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-21 18:36 , Processed in 0.054314 second(s), 14 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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