为了满足平台的运营推广需要,现已开发完成各广告平台推广的数据采集功能;在原来CPA的需求基础上,扩展了对已知其它形式的广告推广的功能支持。
一、着陆页说明:
着陆页及参数形式:http://www.xxx.cn/着陆页?from=yrt&aop=1_1_0_1_1_1&tid=d000a26123454442dc4f3646922028e&lb1=1&lb2=2&lb3=3&lb4=4&lb5=5   。
任何一个页面都可以当作着陆页,
如:首页着陆地址为:(http://www.xxx.cn?from=yrt&aop=1_1_0_1_1_1&tid=d000a26123454442dc4f3646922028e&lb1=1&lb2=2&lb3=3&lb4=4&lb5=5);
某专题页着陆地址为:(http://www.xxx.cn/xxxx.html?from=yrt&aop=1_1_0_1_1_1&tid=d000a26123454442dc4f3646922028e&lb1=1&lb2=2&lb3=3&lb4=4&lb5=5)。
二、入参说明:
    
    入参采用字母、数字、下划线表示。不建议采用中文汉字。
    1、from: 来源;能唯一区别某网站的字符串,用字母和数字表示,不能为空。 如:baidu、163、yrt等等
    2、aop:数据采集点定义;目前定义了六个采集点(如需要还可添加)。格式1_1_0_1_1_1,分别表示注册_绑卡_充值_交易_提现_登录;每个对应位上的值若为1表示开启采集,为0表示关闭采集。如:某广告商进来的用户按注册用户及生产投资分成则该参数为:1_0_0_1_0_1。登录位建议开启
3、tid:第三方回调参数;若第三方需要回调作关联则可传此参数。一般在CPS上用到,如:武汉易瑞特的广告平台就需要用。
    4、lb1:终端类型;如:PC,WAP,APP等
    5、lb2:频道或者专题类型;用以区别是同一网站的哪个地方来的。
    6、lb3:关键字识别代码;如:1001对应着百度搜索关键字“P2P”,1002对应360搜索关键字“互联网金融”,1003对应百度搜索关键字:“互联网金融”等。
    7、lb4:预留加密串;针对特殊情况需要检验来源时和第三方约定。
    8、lb5:预留参数;该参数用于以后扩展。

在基类中获取入参并存COOKIE

@After

protected static void getAdUnionParams(){  
        String from = params.get("from");
        if(from!=null){
            Response.current().setCookie(Constants.ADUNION_CPACPS_FROM,from,null,"/",30*60*60*24,false);
            String tid = params.get("tid");
            String aop = params.get("aop");
            if(tid!=null&&tid.length()>0){
                 Response.current().setCookie(Constants.ADUNION_CPACPS_TID,tid,null,"/",30*60*60*24,false);
            }
            if(aop!=null)
                 Response.current().setCookie(Constants.ADUNION_AOP,aop,null,"/",30*60*60*24,false);
            
            String retUrl = request.headers.get("referer")+"";
            if(retUrl!=null&&!retUrl.equals("")&&!retUrl.equals("null"))
                Response.current().setCookie(Constants.COOKIE_KEY_BACKURL+"in",retUrl);
            
            String lb1 = params.get("lb1");
            String lb2 = params.get("lb2");
            String lb3 = params.get("lb3");
            String lb4 = params.get("lb4");
            String lb5 = params.get("lb5");
            if(lb1!=null&&lb1.length()>0){
                 Response.current().setCookie(Constants.ADUNION_AOP+"lb1",lb1,null,"/",30*60*60*24,false);
            }
            if(lb2!=null&&lb2.length()>0){
                 Response.current().setCookie(Constants.ADUNION_AOP+"lb2",lb2,null,"/",30*60*60*24,false);
            }
            if(lb3!=null&&lb3.length()>0){
                 Response.current().setCookie(Constants.ADUNION_AOP+"lb3",lb3,null,"/",30*60*60*24,false);
            }
            if(lb4!=null&&lb4.length()>0){
                 Response.current().setCookie(Constants.ADUNION_AOP+"lb4",lb4,null,"/",30*60*60*24,false);
            }
            if(lb5!=null&&lb5.length()>0){
                 Response.current().setCookie(Constants.ADUNION_AOP+"lb5",lb5,null,"/",30*60*60*24,false);
            }
        }

}

SERVICE层中获取参数并处理。

private static Cookie fromcookie; //来源
    private static Cookie tidcookie;//第三方来参
    private static Cookie aopcookie;//采集点定义
    private static Cookie urlcookie;//来源页面
    private static Cookie lb1; //第三方预留参数。
    private static Cookie lb2; //第三方预留参数。
    private static Cookie lb3; //第三方预留参数。
    private static Cookie lb4; //第三方预留参数。
    private static Cookie lb5; //第三方预留参数。
    
    private static String lb1Str = null;
    private static String lb2Str = null;
    private static String lb3Str = null;
    private static String lb4Str = null;
    private static String lb5Str = null;

private static String[] aops = {"0"};
    private static String backUrl=null;
    private static String tid="";
    
    private static String unionCode = null; //简单去重处理KEY
    
    /**
     * 初始化
     */
    public static void init()
    {
        fromcookie = Request.current().cookies.get(Constants.ADUNION_CPACPS_FROM);
        tidcookie = Request.current().cookies.get(Constants.ADUNION_CPACPS_TID);
        aopcookie = Request.current().cookies.get(Constants.ADUNION_AOP);
        urlcookie = Request.current().cookies.get(Constants.COOKIE_KEY_BACKURL+"in");
        lb1 = Request.current().cookies.get(Constants.ADUNION_AOP+"lb1");
        lb2 = Request.current().cookies.get(Constants.ADUNION_AOP+"lb2");
        lb3 = Request.current().cookies.get(Constants.ADUNION_AOP+"lb3");
        lb4 = Request.current().cookies.get(Constants.ADUNION_AOP+"lb4");
        lb5 = Request.current().cookies.get(Constants.ADUNION_AOP+"lb5");
        
        lb1Str = lb1!=null?lb1.value:null;
        lb2Str = lb2!=null?lb2.value:null;
        lb3Str = lb3!=null?lb3.value:null;
        lb4Str = lb4!=null?lb4.value:null;
        lb5Str = lb5!=null?lb5.value:null;

if(aopcookie!=null)
        {
            String aopStr = aopcookie.value;
            if(aopStr!=null&&aopStr.length()>5)
            {
                aops = aopStr.split("_");
            }
        }
        
        if(urlcookie!=null){
            String siteurl = urlcookie.value;
            if(siteurl!=null)
                backUrl = siteurl.replace("[", "").replace("]", "");
        }
        
        if(tidcookie!=null){
            tid = tidcookie.value;
            if(tid!=null)
                tid = tid.replace("[", "").replace("]", "");
        }    
    }

注册方法采集点,注册完成后调用下面方法采集数据。

/**
     * 广告联盟来的注册  采集点刘名雄
     * 1_0_0_0_0 第一位为1
     * @param user
     */

public static void adUnionReg(User user)
    {
        try{
            init();
            if(fromcookie!=null&&aops!=null&&aops.length>0&&aops[0].equals("1")) //开启则采集
            {
                String from = fromcookie.value;
                user.user_from = from;
                
            
                t_adunion_result adunion = new t_adunion_result();
                adunion.cpa_param = tid;
                
                if(from!=null&&from.equalsIgnoreCase("yrt")) //需要回调通知注册状态
                {
                    String userid = Encrypt.encrypt3DES(user.id+"",Constants.HDCPACPSKEY);
                    String sign = Encrypt.MD5(user.cpa_param+userid+Constants.CPACPSKEY);
                    String cpsUrl = Constants.CPACPSAPIURL+"?tid="+user.cpa_param+"&uid="+userid+"&sign="+sign;
                    String cpsRet = WS.url(cpsUrl).get().getString();
                    adunion.cpa_result = cpsRet;
                }
                adunion.userid = user.id;
                adunion.user_from = from;
                adunion.cpa_param = user.cpa_param;
                adunion.addtime = new Date();
                adunion.aop = Arrays.toString(aops);
                if(backUrl==null){
                    backUrl = Request.current().headers.get("referer")+"";
                    backUrl = backUrl.replace("[", "").replace("]", "");
                }
                adunion.siteurl = backUrl;
                String ip = DataUtil.getIp();
                adunion.ip = ip;
                
                adunion.lb1 = lb1Str;
                adunion.lb2 = lb2Str;
                adunion.lb3 = lb3Str;
                adunion.lb4 = lb4Str;
                adunion.lb5 = lb5Str;
                
                adunion.save(); //记录回调
                backUrl = null;
            }
        }catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }

/**
     * 用户提现点采集
     * 0_0_0_0_1_1 第六位为1
     * @param userid
     * @param orderId
     */
    public static void adUnionLogin(long userid)
    {
        try{
            init();
            if(fromcookie!=null&&aops!=null&&aops.length>5&&aops[5].equals("1"))
            {
                t_adunion_result adunion = new t_adunion_result();
                
                String from = fromcookie.value;
                adunion.user_from = from;
                adunion.cpa_param = tid;
            
                
                adunion.userid = userid;
                adunion.addtime = new Date();
                adunion.aop = Arrays.toString(aops);
                if(backUrl==null){
                    backUrl = Request.current().headers.get("referer")+"";
                    backUrl = backUrl.replace("[", "").replace("]", "");
                }
                adunion.siteurl = backUrl;
                String ip = DataUtil.getIp();
                adunion.ip = ip;
                
                adunion.lb1 = lb1Str;
                adunion.lb2 = lb2Str;
                adunion.lb3 = lb3Str;
                adunion.lb4 = lb4Str;
                adunion.lb5 = lb5Str;
                
                adunion.save();
                backUrl = null;
            }
        }catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }

自定义广告联盟接入解决方案,适用所有广告商接入。相关推荐

  1. 渠道广告联盟SDK接入思路总结

    前言 1.国内安卓硬核渠道,例如华为.OPPO.ViVo.小米.4399都有自家的广告联盟SDK,要到对应开放平台下载对应广告SDK. 2.其他渠道例如应用宝.TapTap.好游快爆.爱奇艺.233. ...

  2. Android腾讯广告联盟接入-----开屏广告

    emmmmm 开头说两句吧 因为这是我第一次写博客 相当于自己记录下自己解决的问题吧而且刚入社会去开阔自己的视野 正文!!!! 先上效果图 一:准备工作 当然现在先得去注册一个腾讯广告联盟的账号,注册 ...

  3. Android腾讯广告联盟接入-----banner广告

    emmm  这次的接上回腾讯的开屏广告 老规矩 先上效果图 前面的三步都和开屏广告一样的 所以我就直接拿来用了 一:准备工作 当然现在先得去注册一个腾讯广告联盟的账号,注册地址为:http://e.q ...

  4. android 腾讯广告联盟,Android腾讯广告联盟接入-----开屏广告

    emmmmm 开头说两句吧 因为这是我第一次写博客 相当于自己记录下自己解决的问题吧而且刚入社会去开阔自己的视野 正文!!!! 先上效果图 一:准备工作 当然现在先得去注册一个腾讯广告联盟的账号,注册 ...

  5. 防屏蔽浏览器_国外lead/emu广告联盟平台/扫盲篇–UA,指纹浏览器与流量来路-VMLogin指纹浏览器介绍..

    国内的广告联盟近几年来越来越多,但是国外的广告联盟简直是多如牛毛,那么我们怎样快速地找到适合自己的国外的广告联盟平台呢? 做国外lead 绕不开的东西,UA 流量来路,浏览器指纹.虽然这连基础都不算的 ...

  6. Android开发-在Android应用里嵌入腾讯广告联盟进行盈利实现

    前 言 对于个人开发者来说,独立开发一款基于网络App并且上线提供用户下载使用是需要花钱购买服务器的.而且当用户的并发量比较大时开发者所花费的维护应用的费用就越高,这时,个人开发者需要在应用里嵌入广告 ...

  7. 乘风广告联盟系统v6.6 官方版源码

    简介: 乘风广告联盟系统支持多台服务器负载均衡,适用普通广告联盟.手机广告联盟等,模板多样,可以自行制作,简易的文章发布功能,分类功能,有需要的用户不要错过了,赶快来下载吧! 安装说明: 1.如何安装 ...

  8. 乘风广告联盟系统 v6.2

    乘风广告联盟系统 v6.2 Sql版 作者:乘风(网名) QQ:178575 E-Mail:yliangcf@163.com 开发网站:http://www.qqcf.com 详细简介:http:// ...

  9. 《计算机世界》封面报道:广告联盟7宗罪

    作者:汤浔芳 国内各大网站广告联盟发展至今,已经覆盖大部分互联网站点,成为广告主投放网络广告的重要渠道之一.据不完全统计,2009年广告联盟营收已经超过20亿元. 但当前广告联盟市场,却是鱼龙混杂.除 ...

最新文章

  1. **Apache Options指令详解
  2. 23种设计模式C++源码与UML实现--责任链模式
  3. Hbase 预写日志WAL处理源码分析之 LogCleaner
  4. python模块用法教程_Python学习之asyncore模块用法实例教程
  5. JAVA遍历21位数
  6. 微软以白金会员加入 OpenChain 开源组织
  7. xml文件修改逆向android,Android逆向重置版(2)—起源
  8. JWT介绍以及java-jwt的使用
  9. 使用L2TPV3桥接---FR-TO-PPP
  10. 1.从Paxos到Zookeeper分布式一致性原理与实践---分布式架构
  11. ActiveX控件dsoFramer的使用(word、excel、PPT)
  12. [20150803]触发器对dml的影响.txt
  13. _MSC_VER简介与使用
  14. 计算机基础知识面试题集
  15. onenote for win 10无法正常启动(修复或者重装可解决)
  16. 计161--Problem H: 求三角形面积-gyy
  17. React 面试题 回答
  18. yolov4中的route和shortcut层
  19. 云服务器的主要性能参数,云服务器参数到配置,一文让您从小白到高手
  20. 计算机网络之网络安全

热门文章

  1. 【论文写作】如何画出好看的图表
  2. gcc / -Wl,-Bsymbolic
  3. 【ESP 保姆级教程】疯狂毕设篇 —— 案例:基于阿里云、小程序、Arduino的温湿度监控系统
  4. 图鉴| IT男什么时候最虚伪?
  5. 小波神经网络短期负荷分析,小波神经网络的缺点
  6. 如何彻底卸载SQL Server 2008
  7. Kubernetes高可用集群搭建
  8. Apad Qzone项目总结(二)---换肤功能实现!!!
  9. 在gmail中使用邮件模板功能
  10. 苹果参加618,押注天猫首战5小时卖出5亿,天猫已成行业3C领导者