累了的时候看看这个 |
随着各种O2O,互联网金融APP的兴起,路上经常能遇到地推下载人员,手拿二维码和礼物让路人下载注册.因为是在户外做活动,下载的网络环境成了一个问题,直接4G下载有些用户舍不得几十兆的流量,wifi下载又很难找到稳定的网络,3G路由器是一个解决方案,但是流量费用很高并且效果也不理想.所以这里我给大家介绍几种我在地推时用过的方案.帮助大家快速的下载android和ios应用.
android的apk包因为不存在苹果那样,必须从appstore下载的限制.所以分发起来非常简单.有集中方案供大家选择.
带一台笔记本,安装一个Apache,将apk包的地址生成二维码即可. 这个社区上的人应该都会.
如果觉得带笔记本太麻烦,并且还是需要电源搭建wifi的话,那么你也可以选择在手机上搭建一个服务器.我用基于Java的NanoHTTP程序搭建并封装了一个简单的程序,会启动一个HTTP服务,提供文件访问,例如根目录的文件地址为http://192.168.53.1/xxx.apk (53.1是手机打开热点共享的网段,xxx.apk放在SD卡根目录).并且手机上会显示二维码.手机共享热点后,下载的用户连上这个热点,扫描二维码即是手机上的下载地址,下载即可.这种方式的好处就是不需要笔记本搭建服务器,也不需要路由器,只需要一部手机就可以.
如果觉得还是太麻烦,也可以通过QQ的当面传文件方式实现.参考 http://jingyan.baidu.com/article/da1091fbd2cbfe027849d62c.html 我没用过,不表.
android解决起来方法很多也很简单,但是ios就复杂一些,因为必须走appstore下载,所以以上方法全部无效.我采用的方式是基于Squid的透明网关缓存来缓存ipa包,从而实现内网下载ios的app.
首先不考虑缓存问题,你需要一台双网卡的机器,要搭建一个iptables nat + squid透明代理,可以让客户机上网.这不是本文的重点,可以参考互联网内容:
squid安装:http://hx100.blog.51cto.com/44326/339137/
iptables+squid配置:http://blog.chinaunix.net/uid-23152265-id-2535823.html
需要注意的是这里squid的版本建议选择2.7版,原因后面会有介绍.这里我们假设我的外网网口为ech0:192.168.1.2,内网为eth1:192.168.10.1.
配置好squid可以上网之后,下一步我们来配置缓存.大家自己了解一下squid的配置方法,我只介绍缓存相关的重点内容.
cache_mem 500 MB #内存缓存大小
memory_replacement_policy lru #更新方式,lru即可
maximum_object_size_in_memory 50 MB #缓存到内存中的最大对象大小,跟你的app差不多机型.50M启动的时候会有警告,无视掉.
cache_dir ufs /usr/local/squid/spool 20480 16 256 #磁盘缓存文件大小及目录结构,当前配置的含义是磁盘缓存大小20G,一级目录16个二级目录256
maximum_object_size 100 MB # 磁盘缓存最大文件大小,稍大于内存缓存文件即可.
cache_swap_low 80 # 忘了,懒得copy
cache_swap_high 95 # 忘了,懒得copy
acl CACHE_OBJ urlpath_regex .png .jpeg .jpg .js .apk .ipa # 定义一个acl表示要缓存的文件,关于acl的定义可以参考官方文档.
cache allow CACHE_OBJ
cache deny all
以上配置好了以后,应该就可以缓存所配置的png,jpeg,apk,文件,当然也包括我们需要的ipa文件.你可以找一个apk文件试验一下比如:http://dldir1.qq.com/weixin/android/weixin637android660.apk 下载的同时查看squid的access.log日志,你会发现第一次下载时为TCP_MISS,第二次下载已经变成了TCP_MEM_HIT,证明已经命中了内存缓存.从下载速度方面应该也能有一个数量级的提高.
以上配置在ios8里面可以很好的工作,但是ios9之后,一部分应用下载链接会带有动态的连接参数,使得以上的配置并不能正确的缓存ipa文件,这时候我们需要使用storeurl_rewrite_program插件来处理一下连接.
storeurl_rewrite_program是squid2.7提供的一个自定义模块(这就是为什么要使用2.7版本).默认不启动.所需要的参数是一个可执行程序.当配置了这个程序,squid会把访问的url作为参数传给程序,程序处理完了之后回传的参数作为storeurl寻找缓存.例如当前访问的连接为http://a.com/abc.apk?token=123 和http://a.com/abc.apk?token=456 默认情况下这会被当做两个连接无法命中同一个缓存.使用storeurl_rewrite_program之后,我们可以通过程序将这两个连接同时映射到http://a.com/abc.apk 这样访问了第一个url之后,第二个url的访问将会命中第一个url的缓存.关于storeurl_rewrite_program的使用方法可以参考:http://www.squid-cache.org/Doc/config/storeurl_rewrite_program/ 这里我贴上我的program和配置
acl CACHE_IPA urlpath_regex .ipa #针对ipa进行处理
storeurl_rewrite_program /usr/local/squid/store.py #处理程序的路径
storeurl_access allow CACHE_IPA
storeurl_access deny all
简单的说,squid的缓存实际上是一个根据key找value的过程,storeurl_rewrite_program就是配置了一个程序(这里是 /usr/local/squid/store.py),当你访问文件的时候,url会作为输入参数扔给这个程序,程序会把这个参数进行处理,返回一个参数作为输出参数.而这个参数将被当做缓存的key来使用.
以下是/usr/local/squid/store.py的内容:(我这里使用python开发,你可以用你自己熟悉的语言开发.)
#!/usr/bin/env python
import sys
while True:
read = raw_input()
url = read.split()[0]
start = url.find('iosapps.itunes.apple.com')
end = url.find('.ipa')
ipaurl = url[start:end]
result = "http://" + ipaurl + ".ipa\n"
sys.stdout.write(result)
sys.stdout.flush()
这样,一个形如文件链接形如:http://iosapps.itunes.apple.com/apple-assets-us-std-000001/Purple69/v4/26/63/28/266328a6-6893-3d23-e58e-4b54bea24a30/pre-thinned3169899445757707662.thinned.signed.dpkg.ipa?accessKey=1447486548_7206112169011419132_PdeyZRmeDfRHz5
的连接,经过处理会被处理为
http://iosapps.itunes.apple.com/apple-assets-us-std-000001/Purple69/v4/26/63/28/266328a6-6893-3d23-e58e-4b54bea24a30/pre-thinned3169899445757707662.thinned.signed.dpkg.ipa
经测试可以正常的缓存下载.
squid除了缓存,也可以实现网站地址,ip地址的白名单等功能,防止蹭网.linux+iptables+squid的软路由方案,比一般的路由器强大得多,只要能想得到的,没有什么不可以.
实际上网上有一些产品宣称实现了这个功能,我没用过,大家有兴趣也可以自己试一下.在网上搜索地推神器就有了. 吹的神乎其神,其原理应该也跟我这个差不多,我这套方案最大的缺点是需要一台linux电脑(虽然笔记本也可以,但终究还是需要电源),依赖电源,也不利于大面积推广(需要一些linux基础).如果移植到带电源的嵌入式linux设备上,效果应该更好.记得去年到今年上半年O2O火热的时候,我们的地推点配备了我们自己开发的“神器”之后,许多路过这里的同行都表示愿意出钱采购这套技术.其实基于squid的缓存在cdn或者其他领域应用的已经非常成熟了,只是很少有人考虑用它来做移动app方面的事情.希望能对大家有帮助.
qq当面传也必须走流量吧。。。难道qq申请了权限走的蓝牙?
然后水果机的这个实现方式很流氓啊。。3年前我也碰见过,考生下载pdf准考证,url被360这样的浏览器、迅雷这样的无耻缓存,导致不向我的服务器发请求,直接n个考生下载下来一样的准考证。。后来加个时间戳就搞定了。
@tracymcladdy 你可以在现场弄个wifi,或者开启手机热点让对方连上来,应该不需要流量
当然我没用过.
你要遇到我这种方式,加时间戳也没用.
@tracymcladdy 有的不是浏览器缓存的,而是运营商,包括长宽,校园网这类大局域网基本都会干这事,不然他带宽根本不够.
@zhouzhe8013
这个研究的不深没啥发言权,不过按原理来说就是省了一张客户机上的流量卡吧。。反正不管怎样,地推必须建立链接,所以要不有局域网,要不有蓝牙,再要不就是直接走手机流量下载了。。
@tracymcladdy 我们去年推的快的时候,一天两三百个下载,20M一个包,流量费用惊人.并且下载速度慢.
上了这套方案之后,最多一天做了1000多个下载一个地点.一天节约下来的流量费用远远大于设备采购费用.用户的下载时间从5-10分钟减少到了30秒以内.
@rouchen 这个因人而异. 一般看到iPhone6以上的用户,基本劝说他们用4G,分流一部分.
不过依然有不少用上了iPhone却还抱着移动2G的用户.... 表示不能理解.
@zhouzhe8013 没干过地推不了解,不过1000个用户也就20个G,无线网卡成本也就200块左右啊。。另外我感觉现在4G网速度很好啊。。
不过如果是疯狂的地推,这个还是很有钱途的,毕竟局域网肯定快啊,可以考虑封装成一个设备,申请个专利啥的,然后拿来卖。。
我见过好几个无耻的公司,就是做政府公共服务的,那些叫号的预约的都TM搞那么大一个块头的机器,然后政府找他们买N贵,真黑。。
@tracymcladdy 我们买的3G网卡大概6个G 100元的流量费用,并且主要是速度不理想.有些推广地点在商圈,地铁,偏僻的学校. 4G信号不好. 而且有些地区只有3G流量卡而没有4G流量卡卖.
当时还真考虑申请一个实用专利,我用一台瘦客户机搭建的这套东西,看起来还像那么回事.
不过现在公司快挂了,也没那个必要了.贡献给大家吧.需要的就拿去试试.
@zhouzhe8013 6个G100块稍贵不过也是正常价格了,20个G也就300块。。前段时间忙,我买的电信4G网卡好像是230块20个G,经常晚上卧铺出差,插着用也很好用。。
如果确实是市场需求,解决了痛点,专利现在还是可以申请哇,然后忽悠好一个厂家,就是甩手掌柜了
如果神器真能解决问题,几百块钱其实挺值的,至少不用扛电脑,你耗费的时间精力也是成本。
看到这里吹得挺神,http://ditui.apexera.com
@tangtao 是的,我估计他们也是把squid移植到了一个设备上来做的.
我们当时咨询过抓猫盒子,报价好像是800一台,出租不出售,出售的话要50台起好像.
我们小公司,将信将疑,并且以前南京有另一家公司向我们推销过类似的东西,结果根本下不了ios应用,所以干脆自己研发了.
如果有谁买了这种神器,请一定借我试试,发现痛点改进改进,有钱一起赚啊.
一定能发现他们搞不定的场景或者需求.
膜拜楼主,怎样才能粉丝你呢? @zhouzhe8013
@xiaoquan101 提社区的Bug,我就出现了
@zhouzhe8013 干货
@nca2928 看策略吧,有些公司比较看中APP,有些觉得微信号也OK.
在O2O疯狂膨胀的年代,一个微信号有些公司肯花10元的成本去补贴.现在这种情况应该少一些了.
微信号当然推起来更方便一点. 不过如果能解决下载速度问题,推app也还好.
我们做过的地方主要是地铁,商圈和学校.
地铁里面条件最糟,你基本不用考虑wifi的事;商圈里面有些有有些没有,比如楚河汉街就没有.蹭旁边的wifi速度也不理想;学校有些有有些没有,比如我们在南京师范大学金陵学院就没有wifi覆盖.所以这个变成了不可控因素.地推时间宝贵,场地费用极高.还是稍微可靠点才行.
@zhouzhe8013 楼主,请问现在推广一个人的成本是多少?之前有人和我说是5-10元/人。
@akillo 微信号2-5元,app 5-10元 包礼品价格.
推广难度app>微信 要注册的大于只关注的
个别app要求下载+注册+有效交易一笔 价格基本10元起步.
@zhouzhe8013 app有效交易不容易保证吧?如果是这样10元太值了
@gocome 那当然,推广员推广可以说95%的用户都是无效的.不过依然需要推广.
@hyacinthao 太正常了.相对各种各样的作弊手段,你这已经算是成功的推广了.
@Black7horse 我司已烧挂 (:з」∠)
@zhouzhe8013 那只需要算5%的钱?不会那么好吧
你要回武汉吗?
@gocome 回武汉.
实际有效的用户确实不多.但是短期内能增加用户的方式,除了作弊造假,又有多少呢?
O2O浪潮里真实的价值又有多少呢?都是市场决定的.大家都不是很理性.
@zhouzhe8013 产品、用户还是根本啊,作弊来的没什么用。毕竟不是骗个天使就好,难道还能指望骗到上市?
@gocome 我的意思是要短期内增加用户,除了作弊,就地推有点效果.但是地推的用户有多少有效的用户,值得怀疑.
所以各种o2o各种挂...
反正这东西,说不清.俺是个做技术的,生意人的世界俺不懂...
过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号