因小米平台方没有php处理事例,所以只能自写。(小米看不起php,我也不起小米)

先说明逻辑:

广告主(我们)通过小米应用商店投放广告,用户点击广告产生数据,如下载我们推广APP,用户注册,后台回传用户数据给广告平台。

准备工作:

1、客户端需要能获取到oaid或imei

2、其他数据:ua、ip、包名、注册时间等

3、事件:激活、注册、付费

4、考虑到用户量、php执行机制、建议APP注册用户功能和回传广告功能要解耦,避免第三方接口出现问题时导致平台用户注册出现等待过长或其他异常等。(自行处理)

先写一个方法

/*** 小米广告回传*/public static function xiaomi($data){$query = '';$data = array_filter($data);if(isset($data['imei'])){$query .= "&imei=".strtolower(md5(urlencode($data['imei'])));}if(isset($data['oaid'])){$query .= empty($query)?"oaid=".urlencode($data['oaid']):"&oaid=".urlencode($data['oaid']);}if(isset($data['time'])){$query .= "&conv_time=".urlencode($data['time']*1000);}if(isset($data['ip'])){$query .= "&client_ip=".urlencode($data['ip']);}if(isset($data['ua'])){$query .= "&ua=".urlencode($data['ua']);}$signature = md5(AD_XIAOMI['sign_key']."&".urlencode($query));$base_data = $query."&sign=".urlencode($signature);$info = self::encryption($base_data,AD_XIAOMI['encrypt_key']);$appid  = AD_XIAOMI['appid'];$convType = AD_XIAOMI['conv_type'];$customerId = AD_XIAOMI['customer_id'];$url = AD_XIAOMI['api_url']."appId=".urlencode($appid)."&info=".urlencode($info)."&conv_type=".urlencode($convType)."&customer_id=".urlencode($customerId);self::curlGet($url);return true;}

上面这个方法可以直接调用,相关配置参数在小米广告后台获取:appid、customer_id,api_url等。

配置参数:

@define("AD_XIAOMI",['appid'=>"11111111","sign_key"=>"11111","encrypt_key"=>"111111","customer_id"=>"1111",'conv_type'=>"APP_REGISTER",'api_url'=>"http://trail.e.mi.com/global/test?"]);//正式 "http://trail.e.mi.com/global/log?"  测试 "http://trail.e.mi.com/global/test?"

需要使用的方法

按位异或加密
   /*按位异或加密* @param $value 需加密的字符串* @param $type 加密解密[0加密,1解密]* @return 加密或解密后的字符串*/public static function encryption($value,$key,$type=0){$crytxt='';for ($i=0;$i<strlen($value);$i++){$m=$i%strlen($key);$crytxt .=$value[$i]^$key[$m];}return base64_encode($crytxt);}

curl请求方法

public static function curlGet($url){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');curl_setopt($ch, CURLOPT_TIMEOUT, 60);$response = curl_exec($ch);$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);if ($httpCode === 200) {// 打印返回结果$res = json_decode($response, true);curl_close($ch);return $res; // 返回error_code为0时接口调用成功,否则需排查具体原因}curl_close($ch);return false;}

小米对接文档:

https://api.e.mi.com/doc.html#/1.0.0-mdtag9b26f-omd/document-f0283649125f62138db43c6f5fc25686

php处理小米广告平台API上报方案对接(主要是APP下载)相关推荐

  1. 专访小米欧阳辰:深度揭秘小米广告平台的构建、底层模块和坑

    专访小米欧阳辰:深度揭秘小米广告平台的构建.底层模块和坑 专访小米架构欧阳辰架构师广告平台数据库 width="22" height="16" src=&quo ...

  2. 百度广告联盟api probuf协议对接

    百度的广告API使用的是不是通常的http协议,而是使用谷歌开源出来的probuf协议,具体介绍请参考:https://www.jianshu.com/p/b1f18240f0c7https://ww ...

  3. 浅析搭建高速公路视频监控平台的建设方案及必要性

    一.方案背景 搭建高速公路视频监控平台的必要性有如下几点: 1)用于高速收费站的收费流程监控.安全监察.智能收费等相关管理工作: 2)用于交通卡口的测速.应急车道占用抓拍.违规行驶抓拍等: 3)用于监 ...

  4. 常见的海外广告投放平台,海外社交广告平台的开户流程与要求

    一.常见的海外广告投放平台 Facebook.Google-ads.ASM.Snapchat.TikTok.Twitter,一些基本准备需要在开户前做好, 一些平台需要提前提高号码(如 Faceboo ...

  5. 【钉钉-场景化能力包】CRM系统促进广告平台高效获客

    客户痛点 很多企业在各大营销平台(比如百度.微信.QQ.今日头条.抖音等),投放了大量的营销广告,获取到的客户/线索数据很分散,需要人工手动导入到金智CRM系统中,再由指定的负责人进行二次手动分配,效 ...

  6. KeyMob推出移动广告平台,服务开发者与广告主

    为什么80%的码农都做不了架构师?>>>    在国内,独立的移动广告平台有很多家,主流的移动广告平台有多盟.点入与KeyMob等.多盟产品量大,对媒体资源的积累,促进了市场占有率的 ...

  7. 国内移动互联网广告平台7宗罪

    第一宗罪:贪食 以多数人难以理解的技术辞藻骗取信任.各大移动广告平台,均不断美化其技术能力.资源优势,从而要骗取广告主的广告预算.无论是RTB(REAL TIME BIDING)还是DMP(DATA ...

  8. 移动广告平台及运营模式

    移动广告平台 移动广告平台概念 移动广告平台和互联网的广告联盟相似,它是一个平台或者中介,连接着应用开发者和广告主.在平台上,开发者提供应用(例如一些游戏),广告主提供广告,而移动广告平台就会提供相应 ...

  9. Unity接入Android广告: 三、Android端接入小米广告SDK

    1.导入小米广告SDK SDK在 小米开发者平台 中可以下载 导入MimoSdk.jar,右击jar包,Add As Library 在Module的AndroidManifest.xml中加入SDK ...

最新文章

  1. 多线程中数据的并发访问与保护
  2. 爱加密Android APk 原理解析
  3. MyEclipse中常用的快捷键
  4. matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded
  5. 牛客网【每日一题】3月25日 tokitsukaze and Soldier
  6. html页面怎么加向下滚动,如何使用jQuery向上或向下滚动页面到锚点?
  7. ASE光源 ASE噪声
  8. 芯片设计群 ,欢迎 IC领域朋友请加我微信交流:Jdrobots ,加我备注IC。谢谢! 芯片设计资料
  9. python urlopen错误_Python:URLError:urlopen错误[Errno 10060]
  10. Xamarin.Android 引导页
  11. 文字旋转_如何制作抖音文字旋转视频?推荐这款超火的抖音文字动画制作神器...
  12. pycharm更换python版本
  13. 华为重生:转战消费品市场 转型多元制造商
  14. RGB HSV CMYK LAB颜色空间
  15. 使用moy快速开发后台管理系统(一)
  16. mysql 复合索引 悲观锁_对MySQL索引、锁及事务的简单分析
  17. TypeScript值比较、泛型函数类型和签名
  18. 存储过程(SQL SERVER 2008)
  19. matlab中 cos(pi/2) sin(pi)不等于0怎么办
  20. 机器人学习NO2.导航和路径规划

热门文章

  1. Eclipse插件10
  2. linux-centos8安装nginx
  3. 58同城post登陆参数分析,典型的eval加密js案例
  4. PC版有道词典更换护眼背景色
  5. 用计算机绘制函数图象教案,信息技术应用 用计算机画函数图象优质课教案设计...
  6. simHash 简介以及 java 实现
  7. vue使用render函数自定义标签动态导入js文件
  8. 用selenium全自动化爬取教务系统作业清单
  9. 发json请求,报415错误。POST http://localhost:8080/ 415
  10. 数据可视化笔记7 网络数据可视化