1数据存储设计1.1数据库表结构设计1.1.1基础数据表基础数据表在AMS,LMS,和广告引擎间共享数据,建议采用共享数据库的方式。
广告引擎对基础数据只读,没有写操作。
广告位信息表1.1.2广告投放业务表广告投放业务表LMS,和广告引擎间共享数据,建议采用共享数据库的方式。
广告引擎对基础数据只读,没有写操作。
设计如下两个表:广告表1.1.3广告引擎/计费业务表广告引擎和计费业务表为广告系统内部使用的数据表,支撑广告系统运行,涉及到大数据量的存储和运算,因此将这部分数据与AMS、LMS隔离,部署在单独的数据库服务器。
设计如下几个表:广告排名表广告应用下载日志表1.1.4系统表存在系统需要的配置项,分为全局配置和指定服务器配置,全局配置是server字段为空字符串, 指定服务器配置是server字段为相应服务器名称系统配置表注意:主键为: key + serverKey以: “task-“开始时表示为定时任务配置, value格式为json字符串,如: {"taskClass":"com.lenovo.lestore.advert.engine.task.GeneratePriceTask","trigger":"0/40 * * * * *"}1.2业务数据管理待补充2接口设计2.1查询广告应用的建议出价新建推广计划,选择推广位(榜单)位置时,投放系统调用广告引擎接口,查询对应推广位的建议出价。
●HTTP请求方式GETGET URL: /advert/app/queryPlacePrice.action返回格式JSON●请求参数参数类型必须描述packagename String是应用包名●注意事项无●返回结果{"result": 0,"body": [{"advertPlaceCode": 1,"advertPlaceType": 1,"advicePrice": 0.8},{"advertPlaceCode": 1,"advertPlaceType": 1,"advicePrice": 0.8}]}2.2修改应用下载转化率系数接口运营人员在后台修改应用的下载转化率的系数,达到控制应用的广告排名的目的。
运营审核模块调用广告引擎的接口,调节系数。
●HTTP请求方式PUTPUT URL: /advert/app/updateOperateRatio.action返回格式JSON●请求参数参数类型必须描述packagename String是应用包名advertPlaceType Integer 否广告位类型(参考数据库定义)advertPlaceCode String否广告位资源IDoperateRatio Float是指定应用下载转化率的运营系数,取值范围0~1●注意事项无●返回结果{"result": 0}2.3查询广告应用列表AMS调用广告引擎查询某个分类下的广告应用●HTTP请求方式GETGET URL: /advert/app/queryPlaceRank.action返回格式JSON●请求参数参数类型必须描述advertPlaceType Integer 否广告位类型(参考数据库定义)advertPlaceCode String否广告位资源IDadvert Size Integer否需要返回的广告应用个数,默认5个●注意事项无●返回结果{"result": 0,"body": [{"advertId": "0A0D22EFF42A","lcaid": 123,“planid”:111,“position”:1},{"advertId": "0A0D22EFF42A","lcaid": 123,“planid”:111,“position”:5}]}2.4查询推广计划按天统计接口●HTTP请求方式GETGET URL: /advert/plan/queryStatisticsPerDay.action返回格式JSON●请求参数参数类型必须描述developerId Long 是开发者IDplanId Long否推广计划ID,ID为空返回所有推广计划的统计概要信息startTime String 否开始时间endTime String否结束时间size Interger否每个推广计划的统计结果条数;开发者推广首页列出用户所有推广计划时,需要设置这个参数,不然返回的数据会比较大,建议设置为2●注意事项指定了开始时间和结束时间,则返回指定时间段内存统计信息。
输入参数建议1.推广首页:不传参数planId,startTime,endTime, 参数size设置为22.某个推广计划按天统计页面:不传参数size,要传入参数planId,startTime,endTime●返回结果{"result": 0,"body": {"planId1": [{"date": "2014-11-10","downloadTimes": 10,"showTimes": 100,"totalCost": 10,"downloadRate": 0.1,"avgPrice": 1},{"date": "2014-11-10","downloadTimes": 10,"showTimes": 100,"totalCost": 10,"downloadRate": 0.1,"avgPrice": 1}],"planId2": [{"date": "2014-11-10","downloadTimes": 10,"showTimes": 100,"totalCost": 10,"downloadRate": 0.1,"avgPrice": 1},{"date": "2014-11-10","downloadTimes": 10,"showTimes": 100,"totalCost": 10,"downloadRate": 0.1,"avgPrice": 1}]}}2.5查询推广计划当日实时统计接口●HTTP请求方式GETGET URL: /advert/plan/queryRealTimeStatistics.action 返回格式JSON●请求参数参数类型必须描述planId Long是推广计划ID●注意事项无●返回结果{"result": 0,"body": [{"advertPlaceId": 1,"downloadTimes": 2,"showTimes": 100,"downloadRate": 0.02,"totalCost": 2,"avgPrice": 1},{"advertPlaceId": 1,"downloadTimes": 2,"showTimes": 100,"downloadRate": 0.02,"totalCost": 2,"avgPrice": 1}]}2.6查询推广计划汇总统计接口●HTTP请求方式GETGET URL: /advert/plan/queryTotalStatistics.action返回格式JSON●请求参数参数类型必须描述planId Long是推广计划ID●注意事项无●返回结果{"result": 0,{"downloadTimes": 2,"showTimes": 100,"downloadRate": 0.02,"totalCost": 2,"avgPrice": 1},]}2.7查询推广计划排名详情●HTTP请求方式GETGET URL: /advert/plan/queryRankDetail.action返回格式JSON●请求参数参数类型必须描述planId Long是推广计划ID●注意事项无●返回结果{"result": 0,"body": [{"planId": 1,"placeId": 1,"position": 1,"onTheList": true{"planId": 2,"placeId": 1,"position": 1,"onTheList": false}]}2.8展现日志上报接口●HTTP请求方式POSTPOST URL: /advert/record/reportShowAction.action 返回格式JSON●请求参数参数类型必须描述advertId String是广告IDdeviceId String 是设备IDuserId Long 否使用商店的用户ID●注意事项无●返回结果{"result": 0}2.9下载日志上报接口●HTTP请求方式POSTPOST URL: /advert/record/reportDownloadAction.action返回格式JSON●请求参数参数类型必须描述advertId String是广告IDdeviceId String 是设备IDuserId Long 否使用商店的用户ID●注意事项无●返回结果{"result": 0}接口返回状态码定义接口调用返回JSON字符串中,result代表调用成功失败的状态,状态值说明如下:状态值描述0 成功,没有“msg”1 失败,参数错误,详细错误读取“msg”2 失败,服务内部错误,详细错误读取“msg”。