找回密码
 立即注册

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高权重耐操个号⚡️稳定过审GG,FB,TK, 欧美源头, 欢迎合作❤️
FB企业户海外户,授信户,TK加白户联盟收款/海外资金下发/服贸结汇⚡️Spend.net — 美元卡仅需$0⚡️✔Taboola海外户
广告位出租8500万高质量住宅IP,助力各种需求虚拟卡返佣1%,国内持牌机构 
查看: 19401|回复: 7

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
本帖最后由 yang。 于 2021-7-15 23:15 编辑 ; Y3 T8 @" I* A4 E9 @* W* r$ v

% G# [3 \9 U; X3 C1 E! q" X在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。
' _0 Y5 N- V& `4 Y但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。- U5 M1 J8 {5 c$ f5 N
) U1 k* [, H* X0 c
另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。5 i/ u, v" @3 t; s  `1 g2 A

  m: S5 t! `& e+ R9 N具体做法是:
8 @  i/ `- J' K7 F
$ d( ]* |: e' f. p; _1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
; ~* O: j. t" H3 J4 z% N: _5 h* W假设前置页面的访问路径为 http://www.xxx.com/6 f; a" a$ z2 Z* V
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  
% G; g+ x+ W; l; K( Phttp://www.xxx.com/iphone/02/index.html1 |* R& c, @" U9 {' m( v* u
那么我们在追踪器中设置的LP访问路径为% l) v6 ]1 b2 x) z0 E! U8 D% y
http://www.xxx.com/?offerUrl=iphone&landUrl=01
/ T- P6 v8 H0 r6 c7 m2 T2 K2 Whttp://www.xxx.com/?offerUrl=iphone&landUrl=027 z% G9 Q% q  D. J! I& \7 d. B
这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理( Y% }0 `5 n8 b/ g; @1 ?8 s3 @" m

3 U9 s* ]7 t8 z7 a' V! a8 V. _- D这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。  j. M4 w" b' c! p( c8 k5 U

4 {5 u2 k+ T1 w1 t/ p$ m" K8 M  R* ~' \5 G* B- T7 W
2.前置页面内容如下
+ ^0 o7 r* m$ R' S0 I, r, `
  1. <!DOCTYPE html>, Z- \% h6 n! J' ^
  2. <html lang="en">
    6 v$ x, j/ h8 f  B5 W# B. |. L
  3. <head>5 v! L, ~- _& h. p; |
  4.     <meta charset="UTF-8">% `3 [& \1 @5 I' c- a' g$ u/ @
  5.     <title>Loading</title># W/ Z' @5 N8 D; n( O/ \# W: C8 g' D! V
  6. </head>
    " C4 i# A/ H4 o
  7. <body>) |# G% ]2 M. s% a
  8. Loading...
    7 ^. |' |3 I( m
  9. </body>, p& R8 T. o) n0 w7 P' s
  10. + y& M$ z$ y2 A; P9 B
  11. <script>' o# G' d; D2 w  _5 W
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成
    % _& `" w9 U& z+ b& K# U9 n
  13.     //iphone' k, }9 m( p5 F3 h
  14.         //01                     http://xxx/iphone/01/index.html
    9 P6 _) D  b0 w! T  K
  15.         //02                     http://xxx/iphone/02/index.html
    ( y+ ?7 r% h' _7 P+ Z% _
  16.         //以此类推! R8 t5 ~' {2 _# k" N2 W! _% F
  17.    
    3 j) j! M2 [4 l: `; s/ C
  18.    
    ; \6 \. Z  }- |4 b' }  c! M
  19.     9 ^5 P( W8 k& i; k
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html' x7 \' G) U8 Z/ z
  21.     //那么我们的offerUrl = iphone,landUrl = 01; l# B: G3 P4 C' H4 b
  22.     * `) S6 |3 ]& @3 \/ a* r
  23.     //从url参数中获取设置好的访问参数
    # H+ j7 S2 E& y3 [$ h% X8 Q0 f
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");2 ~. ?8 j. N1 @' @8 G  P" t
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
    . u4 B0 N- [; h& `/ {
  26.    
    6 x0 M2 \2 b& l: [0 T1 Q
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
      d  P  ]4 }/ Z1 p# ]
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);; ]" @/ G0 ]7 I. e# `
  29.     if(b){
    6 U' N" M- {7 m" I. H2 S9 W0 P; T
  30.         setTimeout(function() {" f3 Q% X! E  ]# j( j
  31.             var params = funcUrlDel(['offerUrl','landUrl']);4 v! v9 J( a5 \7 Y9 ]
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
    # k! ^, \$ Y5 s) b: w; @5 K: }
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);
    & Z4 U! [; Y' e5 t6 C+ _3 }
  34.         }, 300);( F+ R$ O: y8 d% c1 j$ O
  35.     }else{
复制代码
/ c# y! _7 r9 D* ?7 r
2 E  M, {* e* c

" Y$ a1 d: d4 B$ l9 k只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。7 @9 U: W! [6 X& z' W9 D

- \1 @8 p9 d5 {3 D6 T0 z" z6 d& e2 d( E4 E0 c8 }* \# ~, e8 @* I+ D
) h8 d; o* ^4 d6 [  G

" i0 W! G7 X3 m. f% P/ c5 t# T  J' X) h: t$ h* X

) S5 W, |# {2 ?+ |4 A( U
相关帖子
回复

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

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

使用道具 举报

1665

主题

1万

广告币

2万

积分

管理员

宇宙无敌河马天神

积分
27945

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的0 F0 w: }$ p8 {
9 c$ l9 o% M) k1 P2 v3 i0 G  M5 _
但是对于tracking来说,多一层跳转,一般会多一层流量损失

点评

经过测试,直接用load的方式,用户基本无感,应该会比直接跳转的方式要好很多,相当于通过ajax隐藏了中间跳转的细节  详情 回复 发表于 2021-7-16 10:28
请教下河马大大 如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div  详情 回复 发表于 2021-7-16 09:47
学会提问的艺术, 从小处入手, 忌大而空
AdvertCN电报群

我最喜欢用的工具
7200W全球动态不重复住宅IP代理
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2021-7-16 09:47:46 | 显示全部楼层
河小马 发表于 2021-7-16 07:55
) W( y2 V, G% n想法是好的' {0 g3 s+ S: T$ K& E. [

8 F  ]8 {* }5 A- n1 v但是对于tracking来说,多一层跳转,一般会多一层流量损失
- l5 w9 j, Q* R% H1 ?9 v# c' S
请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:55
: T; e+ V/ G0 t* n想法是好的
+ o1 q8 R! v# @' j- E: i9 T
# L% P1 J8 E6 @8 \但是对于tracking来说,多一层跳转,一般会多一层流量损失
' m+ o% X6 m5 ^, S# a& |" \- V
经过测试,直接用load的方式,用户基本无感,应该会比直接跳转的方式要好很多,相当于通过ajax隐藏了中间跳转的细节
回复 支持 反对

使用道具 举报

3

主题

13

广告币

22

积分

初级会员

积分
22
发表于 2021-7-16 22:06:24 | 显示全部楼层
额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核。。。小白一枚 不是杠 真心求教

点评

1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。 2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。 3.这个在自己服务器内部流转,应该不会被判定。  详情 回复 发表于 2021-7-17 10:52
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

积分
533
 楼主| 发表于 2021-7-17 10:52:29 | 显示全部楼层
卡拉赞 发表于 2021-7-16 22:06
" T6 Q) p0 a0 I% m额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核 ...

+ Y4 V9 ?) X: a+ P& {1 H1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。2 [+ V, b2 H  K/ Y8 X+ V
2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。5 M/ |( L* X5 z3 v4 }* d- X3 {5 a7 ~
3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>, `# n5 A4 D# j# B% `8 w1 f

6 ~5 q/ v5 o, h) \! [4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

850

广告币

1006

积分

中级会员

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-14 21:22 , Processed in 0.060880 second(s), 24 queries , Gzip On.

Copyright © 2001-2026, AdvertCN

Proudly Operating in Hong Kong.

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