AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Adsterra China
 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G皇家代理IP⚡️#1性价比⚡️Mediabuy⚡️玩家开户首选
【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️Taboola/Outbrain /Bing⚡️一级代理
开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放FB BM不限额,短id账单户
E.PN 虚拟卡DuoPlus专注打造跨境电商云手机BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具
ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款全球虚拟卡, 支持U充值
Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款
各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户Google、Bing官方总代  联盟流量开户FB资源,账单户,分享户,国内一手
FB企业户BM户账单户源头海外CL企业户源头PTM全球虚拟卡—进来交个朋友!PTM虚拟卡⚡️费率透明⚡️额度随心
虚拟卡 - Pay2.House【找量】BA独家Nutra单找量广告位出租8500万高质量住宅IP,助力各种需求
虚拟卡返佣1%,国内持牌机构   
查看: 18742|回复: 7

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

[复制链接]

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
发表于 2021-7-15 23:08:27 | 显示全部楼层 |阅读模式
Lemft
本帖最后由 yang。 于 2021-7-15 23:15 编辑 4 k7 a2 M! Q9 d! u
& \: ]9 y" O# m
在部署LP的时候,大家一般都会做一些校验,比如 爬虫、js支持等,一般要么在每个LP上加上,要么提取公共的JS来做。( _& U$ @7 @( h$ u4 |
但是我觉得与其在LP上做这这些校验,还不如在LP前边做,直接过滤到基本的爬虫、js支持这种对LP毫无贡献的流量。
0 [" [/ P3 ^. ]* b; w9 K
$ Z. K$ s/ x6 C# W  \+ }' i另外对一些莫名其妙的访问,也起到隔离作用,顺便利用下这些流量,万一给你造成转化也说不定呢。
5 {: u  q7 I- `7 a7 `
- ^( b/ b& d: ~5 |; |具体做法是:, B' x* e" M, K8 S3 V: x

& Z3 O; P7 Z6 V1 B1.前置页面:在nginx下部署一个公有页面,该页面负责接受追踪器的跳转,相当于追踪器的lander页面统统都访问到这个页面<后边说追踪器配置>。
0 L; ?$ m: ?  ~5 h- i& H/ U假设前置页面的访问路径为 http://www.xxx.com/8 w8 C9 r4 N& d. @: T
2.假设我们有2个LP页面,ng配置的访问路径为http://www.xxx.com/iphone/01/index.html  
! O/ e- m( U: n3 ahttp://www.xxx.com/iphone/02/index.html4 B7 ]0 A* d" k9 b. q. V
那么我们在追踪器中设置的LP访问路径为$ K& J; T6 x% i4 y3 Z- q0 X6 j8 e
http://www.xxx.com/?offerUrl=iphone&landUrl=015 G* D4 {+ @" |$ W/ Q/ u( T$ s
http://www.xxx.com/?offerUrl=iphone&landUrl=02
/ W3 [0 |  Y8 k$ D5 f3 V这里把对应的路径转化为参数,将来发送到前置页面,由前置页面根据规则统一处理
9 q/ t( I0 D+ M7 K4 X4 L
, I9 x7 c% g8 K* I6 F: K0 D5 ?这里,如果你前端功力不错的话,也可以将一些想做split测试的因子,作为参数传递到同一个页面,由js来处理这些因子,同一个页面也能减少干扰。比如把语言作为一个测试因子,如果我想测试一个在泰国跑的LP,英语和泰语那种受欢迎,那么我就可以加一个lang的参数作为测试因子,在追踪器中新建一个参数为lang=en和lang=th的lander页面地址,就能直接测试语言对LP的影响了。2 X, {' S* z9 v; a

1 T$ b: x; L  n$ E9 p! m
  q$ V* ^, C4 w7 y8 Z% s5 C! Q2.前置页面内容如下
1 L/ t" t8 Y* @2 x" H/ [9 D6 W
  1. <!DOCTYPE html>
    " Z# [$ a- r) K. B- [/ |, v) }9 E
  2. <html lang="en">( u! [+ R3 M$ D. ]2 R& N1 c
  3. <head>% p3 [5 e$ W$ F- x- H
  4.     <meta charset="UTF-8">
    + A2 |7 Y% R2 `; _: f# d0 C9 l
  5.     <title>Loading</title>
    6 O" J* F& O  a. k+ \
  6. </head>/ j- N& i4 Q. P, t
  7. <body>: {4 g" J) I/ y  ^- e+ L7 Z3 T4 F
  8. Loading...
    8 s9 H7 B1 t0 J
  9. </body>
    $ R: q3 f; A& I# k  n/ M
  10. 5 f$ ?4 v- D2 j! @1 \. Y
  11. <script>
    7 \7 d  b5 p! z2 ~6 X; N, Z7 H
  12.     //因为我是按照offer来建立路径的,假如有个抽iphone的offer,有10个land页面,那么我的nginx目录设置成2 o+ ~8 c7 V: r' q7 N( r# T# ~4 d
  13.     //iphone! K: V; a5 |% C& B* r+ _% V
  14.         //01                     http://xxx/iphone/01/index.html9 W5 y. D1 @8 z6 ]3 U' P" P
  15.         //02                     http://xxx/iphone/02/index.html
    2 z5 r0 W% }9 {% u* i$ _+ X( R
  16.         //以此类推
    ) t' d5 _, \  |& z- @  \+ d
  17.     ' S, }! v1 s2 ?+ {1 l! M
  18.    
    ; y# B1 ~' D3 }2 Z1 Q( r
  19.     & p  n0 {7 @  i, f5 C* C
  20.     //这里假设我们的offer访问路径是  http://xxx/iphone/01/index.html& w4 G8 s% n* V
  21.     //那么我们的offerUrl = iphone,landUrl = 01
    * g- Q6 k; I; v0 O! D, E
  22.     & V/ K0 G. _& z& i+ \2 B
  23.     //从url参数中获取设置好的访问参数  Y2 o5 X, ?: P# m3 B; t
  24.     const toffer = decodeURI((RegExp('offerUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");
    4 c; \3 q. o1 y
  25.     const tland = decodeURI((RegExp('landUrl' + "=(.+?)(&|$)").exec(location.search) || [, null])[1] || "");) Z2 {( S  d7 z+ T
  26.     8 C$ P4 A8 e1 I) D( d! o
  27.     //校验参数是否被传递过来,如果传递过来,则拼接成对应的路径
    & a, C1 M7 {/ N; n# \
  28.     const b = (toffer != null && toffer !== '' && toffer !== undefined) && (tland != null && tland !== '' && tland !== undefined);
    / }5 W/ _  d; L* n
  29.     if(b){
    . D3 {9 @$ V1 |2 k9 D( @: o; G
  30.         setTimeout(function() {
    0 P) h7 o0 I1 \" J3 t
  31.             var params = funcUrlDel(['offerUrl','landUrl']);: l/ N* [6 W: \* @$ [
  32.             // 跳转到真正的LP页面,顺便做一个简易的爬虫过滤
    ) Z' Q/ z: w$ e9 j! k5 w# A$ q1 f, Y
  33.             window.location.replace("/"+toffer+"/"+tland+"/index.html"+params);4 ]8 Y3 i, ]2 W7 K+ B( M
  34.         }, 300);
    ' _3 v" C. i8 b, a- e
  35.     }else{
复制代码
( Z2 V% ^8 }5 z4 C6 K
- U( ^4 h7 `+ G3 Q+ U, c4 i

7 c- O3 G' \/ j1 w! h只是一种简易的思路,主要目的是同一处理一些通用的操作,减少LP的工作。
. j3 ^* A- L, O& a9 p3 @* l
/ K% ^' \! |9 O( F+ Y' I
7 n5 J* w& h" W* k1 a- `8 z2 y& I9 \
; K6 ~  T+ E# ~1 ]& E

4 M0 Z! f, ?6 ]* G8 j# m: H* L# Y8 [: Y8 n- D5 ?6 x
相关帖子
回复

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

1631

主题

1万

广告币

2万

积分

管理员

宇宙无敌河马天神

Rank: 9Rank: 9Rank: 9

积分
27047

社区QQ达人

发表于 2021-7-16 07:55:02 | 显示全部楼层
想法是好的
  y; C+ p7 ]" U4 U* u, K/ D; [8 N% D  b% m' j+ i
但是对于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, b* }& i8 r0 ^2 \; t7 ~' K/ j
想法是好的# Z0 d7 a- k5 z6 c- f' t( D- @

( N3 T5 `' l( @' G9 g但是对于tracking来说,多一层跳转,一般会多一层流量损失

2 t' t* [6 a3 t1 E$ t9 y, {请教下河马大大  如果是使用类似于vue的路由那种方式,会不会好一点,对用户来说基本是无感刷新,而非跳转,html可以用ajax请求了load进div
回复 支持 反对

使用道具 举报

16

主题

376

广告币

533

积分

中级会员

Rank: 3Rank: 3

积分
533
 楼主| 发表于 2021-7-16 10:28:05 | 显示全部楼层
河小马 发表于 2021-7-16 07:55" Y7 J  L0 Q1 _( i
想法是好的1 F  y3 R& s( D, I

; p1 x- E9 r9 O但是对于tracking来说,多一层跳转,一般会多一层流量损失
* k* u6 u! ]/ `9 O8 H
经过测试,直接用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& R$ G) T1 Y- b$ v1 u, z
额,意义在哪里呢(真心求教),媒体给到流量了就会算钱的呢,况且主流媒体用ng做转发可能被判定为规避审核 ...
1 _9 a/ m/ e0 J8 k
1.把在每个LP都要做的JS支持、爬虫校验提取出来统一在一个地方做,也就是在编程里边讲的公共组件。
1 G- I2 D6 |+ v" J2 u2.使用同一个LP,但是通过JS和参数控制,实现多维度的split测试。
, l* D9 _& [  }; o7 m( a3.这个在自己服务器内部流转,应该不会被判定。。。<待测试>1 z3 E7 d  f  ?+ F
/ I  U: Z; y! E) q+ F% v
4.我这么做主要是出于长久的编程习惯,总想把重复的东西提取出来统一做,让LP专注做自己的事情
回复 支持 反对

使用道具 举报

20

主题

864

广告币

999

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-9 15:28 , Processed in 0.049003 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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