无标题文章

手Q安卓APP下载链接优化——中间页面实现方案

背景回顾

由于当前的手Q内部流量安卓APP下载路径为应用宝外部下载路径,通过此路径下载存在一定弊端,因此需要将直接在手Qwebview打开应用宝页面修改为从展示广告页跳转到手Q详情页或应用宝内部详情页,此次需求先变更兴趣部落广告位。

背景回顾

1. 广告展示页点击广告,请求c.gdt.qq.com进行点击上报;
 2. 点击cgi完成扣费等操作之后回包一个中间页面,其中请求链接包含参数_wv=4,用于追踪用户从详情页回退的动作
 3. 中间页面中完成新链接的封装和新页面的跳转

中间页实现方案

方案一

  • 服务部署:点击CGI和TSW同机部署,由node.js-实现中间页面的渲染。
  • node.js监听地址:0.0.0.0
  • node.js监听端口:33333
  • 用户点击广告到详情页展示的交互时序图如下图所示:
    1.用户在广告展示页点击安卓APP类型广告,向点击CGI发送请求 http://c.gdt.qq.com/gdt_click.fcg;
    2.点击cgi接收到用户的请求之后向node.js发送POST请求:http://127.0.0.0:33333/app/link?_wv=4 请求体为json类型数据,数据格式如下:
    {
    app_id: "111122333", //APP ID
    pkg_name: "pkagname", //安装包名称
    subordinate_product_id : "", //渠道包ID
    trace_id : "0a1270245a60533a187993788201", //广告曝光ID
    auto_download : flase //是否自动下载APP
    }
    3.node.js收到点击cgi的请求(node.js侧限制访问域名只能来自127.0.0.1)之后解析请求体内容,并获取跳转到应用宝详情页或手Q详情页的新链接,使用直出方式完成html页面的渲染,同时在html中实现详情页跳转;
    4.node.js完成html页面的渲染之后向点击cgi响应完整的html页面;
    5.点击cgi收到node,js的回包之后对html页面进行进一步数据处理,并响应给用户。
图3-1 方案一时序图
图3-1 方案一时序图

方案二

  • 服务部署:点击CGI和TSW同机部署,由node.js实现中间页面的渲染。
  • node.js监听地址:0.0.0.0
  • node.js监听端口:33333
  • 用户点击广告到详情页展示的交互时序图如下图所示:
    1.用户在广告展示页点击安卓APP类型广告,向点击CGI发送请求 http://c.gdt.qq.com/gdt_click.fcg;
    2.点击cgi接收到用户的请求之后向用户做302响应,新的请求链接为http://c.gdt.qq.com/app/link?_wv=4&app_id=111122333&pkg_name=pkgname&subordinate_product_id=&trace_id=0a1270245a60533a187993788201&auto_download=false, 请求参数使用querystring方式进行传递;
    3.在用户将请求发送到node.js之前会先通过ngnix路由转发,将url路径为/app/link?_wv=4的请求转发到http://127.0.0.1:33333做处理,即为node.js可以监听到的IP和Port;
    4.经过nginx路由转发,node.js收到用户的请求,解析querystring,并获取跳转到应用宝详情页或手Q详情页的新链接,使用直出方式完成html页面的渲染,同时在html中实现详情页跳转;
    5.node.js完成html页面的渲染之后用户响应完整的html页面。
图3-2 方案二时序图
图3-2 方案二时序图

方案三

  • 服务部署:不额外部署web服务
  • 用户点击广告到详情页展示的交互时序图如下图所示:
    1.用户在广告展示页点击安卓APP类型广告,向点击CGI发送请求 http://c.gdt.qq.com/gdt_click.fcg;
    2.点击cgi接收到用户的请求之后请求链接http://c.gdt.qq.com/applink.html?_wv=4,该请求可以选择POST方式或GET方式,参数传递分别选择json方式传递和querystring方式传递。
    3.html页面请求远程服务器上的js文件;
    4.js请求成功后调用接口window.getapplink(obj)获取新的下载地址,实现新页面的跳转;
    5.html加载完成之后向点击cgi响应页面信息;
    6.点击cgi向用户响应页面信息。
图3-3 方案三时序图
图3-3 方案三时序图

三种方案的优劣对比

方案 用户请求次数 优势 劣势
方案一 一次 页面响应速度快 需要独立部署node服务;
方案二 两次 功能内聚;服务解耦; 易扩容 需要独立部署node服务,同时需要部署转发代理;用户需要请求两次
方案三 一次 开发成本低;维护成本高 无需其他服务;js加载增加了响应时间

代码目录结构

图5-1展示了以node.js实现中间页面渲染的代码结构图。
node.js业务根目录为/data/release/node_projects

图5-1 node.js业务代码结构图
图5-1 node.js业务代码结构图

监控方案

以node.js实现中间页面渲染的情况,需要点击cgi方调用node.js服务时做监控处理,具体监控方法请authur评估。 由于是单机部署,所以这里不考虑L5映射。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • fdsfsdfsdfsdfd无标题文章fdsfsdfsdfsdfd无标题文章fdsfsdfsdfsdfd无标题文章...
    imqiyu阅读 341评论 0 2
  • 主要内容 Markdown 是什么?谁创造了它?为什么要使用它?怎么使用?谁在用?尝试一下 正文 1. Markd...
    阿甘exe阅读 200评论 0 0
  • 今天要分享的书叫《小狗钱钱的人生整理术》,书中主要介绍了职场、生活、财富的赢家养成法则,而养成也就是培养一种习惯,...
    钱生钱落地实操阅读 108评论 4 4
  • 熙熙攘攘的吧 反正夜深了 总会有啤酒 也会有木炭 喧哗成这里的 充满人情味的歌 没有滤镜 这里的灯光绚丽 没有补妆...
    FTHEG阅读 197评论 0 0
  • 原创不易,转载请联系作者 从古至今,猫奴数不胜数,从达官贵人到文人墨客,太多人被这种个性迷人长相软萌的生物所惑,沦...
    萌宠在这儿阅读 760评论 0 1