在上一期[**《媒体API接入是在接入什么》中,我们介绍了App与SSP或者Ad Exchange 在数据交互过程中传输的数据类型和内容。然而,理想很丰满,现实很骨感,纵然在对接前就和媒体约定好了对接的协议内容和交互方式,由于各种因素会导致对接调试时间无限拉长,大致上遇到的坑会有以下几类:

坑1

我是媒体的技术,发的文档我都能看懂,但总觉得不太对劲。

掉坑原因:

之前没有将广告位对接到第三方媒体的技术同学往往都会遇到这样的问题。单从技术视觉理解,对接就是发起请求,接收请求。但如果媒体技术同学没有理解到对接背后的概念以及整套广告交易概念,都会掉到这样的坑里,自己的代码可能会不断修改。

爬坑姿势:

掉到这种坑里的同学,可以先在心里默念一句:“谁、在什么媒体的、什么广告位上产生了一次曝光展示机会”。带着这个问题去找答案就好办了。 不管是和什么SSP或者Ad Exchange进行对接,肯定会有一个媒体的唯一标识号给到媒体侧(如通过广告交易平台上产生的ID),我们这里记作media-id,使用该唯一标识,去获取到目前使用系统的用户的信息(如UA,IP,设备号等)不同的平台字段或许名称不同,但是万变不离其宗,对用户需要一个唯一标识,记作User-id。 再接下来就是一个顺序的问题了,用户打开一个页面的时候可能会有几个广告位展现出来,依次取广告位的唯一标识,记作adslot-id.

我们有了media-id,user-id,adslot-id 三个主要元素,再加上广告展示的时间戳Timestamp,这4个信息可以形成一个联合主键,代表一次唯一的请求,再通过对接的SSP或者Ad Exchange 约定的具体数据进行传输即可,对方在接受到你的请求后,会给到一个反馈。媒体的开发同学在接受到这个反馈信息后,按照约定解析展示即可。

概括下就是:媒体的开发同学发送 “谁在什么媒体的什么广告位上产生了一次曝光展示机会”,并等待广告平台告诉你,这个曝光机会需要展示的图片(视频)URL,当点击时需要跳到哪里,当用户看到这个广告或者点击时同时需要告诉哪一个URL (第三方监测)。

Tips: 

市面上也有很多成熟的解决方案可以直接输出给媒体,如美数科技等。

坑2

App与广告交易平台API耦合太深(如接入了多个广告交易平台API)、广告交易平台API更新但App没有办法快速更新。

掉坑原因:

通过广告进行变现也是很多App的选择,一个App可能会接入很多广告交易平台的API,如广点通,百度,ADXING广告行等。 因为商务原因或许会经常调整广告交易平台的权重,或者因为单个广告交易平台一旦要进行更新,代码工作量会非常大。这里出现问题一般会是因为APP流量太优质了,系统架构设计有点跟不上业务发展。 但不要紧,因为没有不变的代码,我们可以通过下面的改动来减少开发量。

爬坑姿势:

先看一种简单粗暴的对接方式,广告位展示的实现是放在App内的代码当中,通过App直接访问广告交易平台。这种设计虽然简单,但是扩展性比较差。

我们来进行改进一下。

ADXING广告行提供的解决思路是,对于App自身内的广告模块不用关注广告请求要发送到哪一个广告平台服务器,只需要按照约定将用户信息发送到App Ad Server。App Ad Server 是一个媒体自己搭建的处理自己业务的API平台,提供adHandle(广告处理)服务。在 AdHandle服务当中去定义各个广告交易平台的优先级,因为考虑到各个广告交易平台的对接协议会有细微差异,所以提供一个convertDataFormate功能用于App传出来的数据和各个交易平台的协议进行转化。

所以,按照这种思路考虑,对于App来说的话,App 自身的代码只需要考虑将媒体信息、用户信息、广告位信息发送给自己的App Ad Server,由Appp Ad Server 根据商务上设定的优先级,选择一个合适的交易平台后,将App发送过来的协议转换成交易平台的协议用于适配广告。(以上仅仅提供一些小思路,各位有兴趣的可以参与讨论)

坑3

网络联通性问题。

掉坑原因:

作为SSP或者Ad Exchange, 我们不生产流量,我们只是流量的搬运工。但是因为广告展示的要求都是在毫秒级以内的,再好的搬运工也架不住路途遥远。比如App媒体端的服务器是在天津联通机房,Ad Exchange的服务器是在深圳电信机房。两地物理距离就遥,如果双方的网络链路不够好,在数据交互上容易产生误差或者一些广告无法展示。

爬坑姿势:

在遥远的自己建立IDC的时代,这个是个头疼的问题,自建一个机房费时又费力,但是我们现在在云端时代,这种问题很好解决。以ADXING广告行为例,ADXING广告行使用的阿里云提供的服务,主要业务部署在华北某区。假设有一个App的机房在深圳,和我方云上的可用区存在同路问题。解决该问题只需要华南部署一套服务用于就近对接上App的流量,阿里云内部华北和华南之间的互通,使用阿里云提供的高速通道即可解决该问题。

Tips: 

其他云厂商也提供类似服务。

坑4

对接完成后广告物料的安全问题。

掉坑原因:

投放广告也要在信息安全可靠的情况下投放,在保证了用户数据不遭暴露后。媒体的安全也需要得到保护,不能因为广告物料呈现内容带有一些敏感问题而导致严重后果。如何解决?人工审核?双重人工审核?

爬坑姿势:

技术的能力体现就是提高生产力,AI离我们远吗?一点都不远,我们完全可以利用AI来帮我们完成大量的图片识别,小量的图片我们使用人工审核。

ADXING广告行同样使用了阿里云提供的Image Recognition,通过阿里云的能力,准确识别图片或者视频的内容,并实现内容检索和审查分发,对敏感图片进行处理。

[Part 3]API对接,这些坑你一定掉过!相关推荐

  1. 美团·北极星开发对接避坑指北(Java)

    背景:公司做美团洗涤上门业务,本来好好的,后面美团要求接入美团·北极星订单预约接口,才能正常使用,没办法只能去接接口了,但是遇到了无数的坑,所以就有了这篇<美团·北极星开发对接避坑指北>, ...

  2. java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录

    java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录 1.准备工作 1.1 接口调用账户 1.2 下载 金蝶星空云 ...

  3. 上云API对接大疆机场开发板

    当前网络上应该暂时不存在大疆机场调试参考文档,本文主要是如何调试大疆上云API对接大疆机场开发板进行内部测试. 问题点解答及解决方式 1.获取开发板,升级遥控器及飞机固件 联系大疆官方申请开发板,大疆 ...

  4. (四)Asp.net web api中的坑-【api的返回值】

    (四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...

  5. 10-11月数据接口-京东商品信息api,金碟Api对接,京东商智监控商品request采集后指数还原,聚水潭第三方接入api,拼多多上架辅助非第三方SKU核对上传,拼多多销量无限修改更新

    茶壶煮饺子: 1.京东商品信息api: http://app.miiow.com.cn:8181/ajaxApi.ashx/@/dontlogin/sycm/getJDItemBaseInfo?ite ...

  6. 跨平台API对接(Java)

    基于Jenkins实现跨平台API对接 Jenkins 提供了远程访问应用编程接口(Remote Access API),能够通过 Http 协议远程调用相关命令操作 Jenkins 进行 Jenki ...

  7. 【SAP PO】X-DOC:SAP PO 接口配置 REST 服务对接填坑记

    X-DOC:SAP PO 接口配置 REST 服务对接填坑记 1.背景 2.PO SLD配置 3.PO https证书导入 1.背景 (1)需求背景: SAP中BOM频繁变更,技术人员在对BOM进行变 ...

  8. 钉钉开放平台API对接第一讲

    DING日程-API对接: 官方API:https://ding-doc.dingtalk.com/doc#/serverapi2/iqel76 对接评语: 优点:钉钉API对接相对于微信API对接比 ...

  9. Wish API 对接

    Wish API 对接 我们可以先在 sandbox 中操作,https://sandbox.merchant.wish.com/ ,这里注册一个账号. 新创建的账号是有数据记录. 在 账户/设置/A ...

最新文章

  1. Django的路由系统
  2. codevs 2606 约数和(分块优化数学公式 )
  3. Shell脚本——初识
  4. 如何在实际场景中使用异常检测?阿里云Prometheus智能检测算子来了
  5. 1042 字符统计 (20分)——16行代码满分
  6. 越绿自己,就会越强?
  7. idea中删除java类并提交_IDEA 删除java类的3种提示
  8. 为了帮助卖家成交,闲鱼工程师做了些什么?
  9. mysql数据库初识实训总结_MySQL(数据库)的初识
  10. 【初等数论】指数、原根与不定方程
  11. vue中两种路由跳转拼接参数
  12. orc parquet区别 spark_HIVE存储格式ORC、PARQUET对比
  13. 华为Mate40系列或10月15日发布:麒麟9000+66W双向快充
  14. 计算机协会未来的发展,计算机协会
  15. [题解]Shorten IPv6 Address-模拟(2019牛客多校第六场B题)
  16. python里countsget_Python Pandas Series.get_dtype_counts()用法及代码示例
  17. php 包含因子,轻松掌握测量不确定度——(4)测量不确定度的评定和报告(完)...
  18. 关于Excel实现分组求和最全文档
  19. stc15w4k32s4芯片引脚图片_STC15W4K32S4系列
  20. C++ 仓库管理系统 控制台

热门文章

  1. html暗边框属性,HTML表格标记教程(30):单元格的暗边框色属性BORDERCOLORDARK
  2. python文件输出中文_python文件输出
  3. tornado项目搭建_Day71-73 BBS项目(1)
  4. python的flag是什么意思_python flag 什么意思
  5. 【杂谈】为了让大家学好深度学习模型设计和优化,有三AI都做了什么
  6. 【杂谈】如何从数据准备,模型设计与调优,训练到部署完成整个深度学习算法流程...
  7. 【知识星球】3D网络结构解读系列上新
  8. 【AI初识境】被Hinton,DeepMind和斯坦福嫌弃的池化,到底是什么?
  9. 《面向对象程序设计》第11章在线测试
  10. 现代农业谋定县域经济-农业大健康·万祥军:载体幸福美丽