跳转至

ProtoBuf 文件

请求响应协议

XMRTB V1.4
syntax = "proto3";

package com.ximalaya.bidding;

option java_outer_classname = "XimalayaBidding";

message BidRequest {
  string id = 1; // 本次请求的唯一id
  string api_version = 2; //协议版本(目前为"v1.2")
  int32 request_type = 3; // 请求类型(1: 正式环境; 2: ping,测试RTT; 4: 测试广告,不计费; 8:其他)
  repeated Imp imps = 4; // 曝光机会列表
  App app = 5; // APP信息
  Device device = 6; // 设备信息
  User user = 7; // 用户信息
  Geo geo = 8; // 地理位置信息
  uint32 timeout = 9; // 请求预留的时间,单位为ms
  Ext ext = 10; // 扩展参数

  message Imp {
    string id = 1; // 标识唯一一次曝光机会
    string tag_id = 2; // 广告位ID
    int32 ad_type = 3; // 广告类型(1:开屏、2:信息流、3:激励视频、4:贴片、5:banner)
    int32 bid_type = 4; // 出价类型, 0:cpm 1:cpc 当前仅支持cpm
    int64 bid_floor = 5; // 底价,分/千次曝光
    repeated Asset assets = 6; // 模版信息,详见模版资源映射表
    message Asset {
      string template_id = 1; //  广告位模版ID, 详见模版资源映射表
      int32 width = 2; // 广告位模版宽度
      int32 height = 3; // 广告位模版高度
    }
  }

  message App {
    string name = 1; // 应用名称:例如:喜马拉雅FM
    string bundle = 2; // 应用程序包名:例如:com.ximalaya.iting
    string version = 3; // 应用版本号: 例如: 9.2.6
  }

  message Device {
    string ua = 1; // UA信息
    optional string ipv4 = 2; // 用户设备ipv4地址
    optional string ipv6 = 3; // 用户设备ipv6地址
    int32 carrier = 4; // 运营商(0:未知;1:移动; 2:联通;3:电信; 4: 广电)
    int32 network_type = 5; //网络连接类型(0:未知; 1:Ethernet/Wifi;2:2G;3:3G;4:4G; 5: 5G; 6: 6G[预留], 7: 移动网络未知)
    string make = 6; // 手机品牌,如:iPhone,Xiaomi
    string model = 7; // 手机型号,如:iPhoneX, KNT-AL10
    string os = 8; // 操作系统名称(ios、android、windows、macos、linux, 均为小写)
    string osv = 9; //  操作系统版本
    int32 device_type = 10; // 设备类型(0:手机;1:平板; 2: 电脑; 3: other)

    optional int32 screen_height = 11; // 屏幕的物理高度,以像素为单位
    optional int32 screen_width = 12; // 屏幕的物理宽度,以像素为单位

    optional string imei = 13; // Android IMEI原始值明文
    optional string imei_md5 = 14; // IMEI MD5, hex 小写


    // @exclude Android Criteria

    optional string android_id = 15; // AndroidId原始值明文
    optional string android_id_md5 = 16; // AndroidId MD5, hex 小写
    optional string oaid = 17; // Android OAID原始值明文
    optional string oaid_md5 = 18; // Android OAID MD5, hex 小写

    optional string hms_version = 19; // 华为机型HMS Core版本号,华为设备必填
    optional string ag_version = 20; // 设备应用市场版本号,华为设备必填
    optional string ag_country_code = 21; // 应用市场中设置的国家和地区,华为设备必填
    optional string oppo_store_version = 22; // oppo应用商店版本号,oppo设备必填
    optional string vivo_store_version = 23; // vivo应用商店版本号,vivo设备必填
    optional string mi_store_version = 24; // 小米应用商店版本号,小米设备必填
    optional string miui_version = 25; // 小米系统版本,miui系统必填

    optional string boot_ts = 26; // 设备启动时间 iOS: 1657043138
    optional string update_ts = 27; // 设备系统更新时间 iOS: 1647545826.588793

    // @exclude iOS Criteria

    optional string idfa = 28; // IDFA原始值明文
    optional string idfa_md5 = 29; // IDFA MD5, 小写
    repeated Caid caids = 30; // CAID 对象数组

    optional CAIDCriteria caid_criteria = 31; // caid相关参数
    optional string birth_ts = 32; // 设备初始化时间[协议v1.2新增] iOS: 1647545718.125795458
    optional string paid_1_3 = 33; // PDD归因v1.3版本paid[协议v1.2新增]
    optional string paid_1_4 = 34; // PDD归因v1.4版本paid[协议v1.2新增]

    message CAIDCriteria {
      string caid_boot_sec = 1; // 设备启动时间 UnixTimestamp eg: 1691052221
      string caid_country_code = 2; // 国家 eg: CN
      string caid_language = 3; // 语言 eg: zh-Hans-CN
      string caid_device_name_md5 = 4; // 设备名称MD5 eg: e910dddb2748c36b47fcde5dd720eec1
      string caid_system_version = 5; // 系统版本 eg: 14.0
      string caid_hardware_machine = 6; // 设备 Machine, eg: iPhone10,3
      string caid_carrier_info = 7; // 运营商信息 eg: 中国移动
      string caid_physical_memory_byte = 8; // 物理内存容量 eg: 3955589120
      string caid_harddisk_size_byte = 9; // 硬盘容量 eg: 63900340224
      string caid_system_update_sec = 10; // 系统更新时间, 保留小数点后 6 位,如不够需补 0
      string caid_hardware_model = 11; // 设备 Model eg: D22AP
      string caid_time_zone = 12; // 时区 eg: 28800
      string caid_mnt_id = 13; // mnt_id eg: 30225948939346695D0D744027A07803D5F8410346398776C879B727@/dev/disk1s1
      string caid_file_init_time = 14; // 设备初始化时间 eg: 1632467920.301150749
    }

  }

  message Caid {
    string id = 1; // caid 的值
    string version = 2; // caid 版本
  }

  message User {
    string id = 1; // [保留字段] 用户唯一标识
    string app_list = 2; // 用户已安装app列表, 英文逗号分隔,如 com.xmly.ting,com.xunmeng.pinduoduo,com.jingdong.app.mall
  }

  message Geo {
    int32 type = 1; // 坐标系: 经纬度有值时必传,坐标系类型 0:GCJ-02; 1:WGS-84; 2:bd09ll
    float lat = 2; // 纬度 latitude, 取值从-90 到 90,南为负值
    float lon = 3; // 经度 longitude, 取值从-180 到 180,西为负值

  }

  message Ext {
    map<string, string> extra = 1; // Extra自定义Map
  }
}

message BidResponse {
  string id = 1; // 请求ID,需与BidRequest.id一致
  int32 code = 3; // 广告响应状态码
  string bid_id = 2; // 喜马联盟侧生成的竞价ID
  repeated SeatBid seat_bids = 4; //喜马联盟侧生成的竞价信息,目前只有一个

  message SeatBid {
    repeated Bid bids = 1; // DSP参与竞价的位置,与BidRequest.imp对应,每个imp最多只可返回一个bid
  }

  message Bid {
    string id = 1; // dsp侧针对这次竞价的ID
    string imp_id = 2; // 曝光ID,对应BidRequest.imp.id,必填
    string ad_id = 3; // 广告id
    int64 price = 4; // DSP出价,单位:分/千次曝光
    repeated string win_notice_urls = 5; // 竞价成功通知地址
    repeated string loss_notice_urls = 6; // 可选。竞价失败通知的url列表
    repeated string imp_trackers = 7; // 曝光监测地址
    repeated string clk_trackers = 8; // 点击监测地址
    Adm adm = 9; // 创意物料信息
    repeated string evoke_monitor_urls = 10; //唤起APP成功监测地址
    repeated string evoke_fail_monitor_urls = 11; //唤起APP失败监测地址

    //物料信息
    message Adm {
      string template_id = 1; // 模版ID
      string creative_id = 2; // 可选。广告物料的唯一标识
      string title = 3; // 标题
      string desc = 4; // 描述
      repeated Image images = 5; // 图片信息
      Video video = 6; // 视频信息

      optional OptimizationGoal optimization_goal = 7; // 推广目标 : 拉新,拉活,线索表单,小程序
      optional ActionType action_type = 8; // 交互类型

      string landing_page = 9; // 落地页url
      optional string deep_link = 10; // 客户端优先跳转deeplink链接,其次跳转普通网址类或应用下载类的落地页

      optional AppInfo app_info = 11; // APP信息,用于下载类广告需要的APP信息
      optional DownloadMonitor download_monitor = 12; // 下载类广告下载监测链接
      optional MiniProgramInfo mini_program_info = 13; // 微信小程序信息
      optional Image logo = 14; // logo信息

      message Image {
        string url = 1; // 图片URL
        int32 width = 2; // 图片宽度
        int32 height = 3; // 图片高度
        string mime = 4; // 图片类型, 如:JPG/JPEG/PNG
      }
      message Video {
        string video_url = 1; // 视频URL
        int32 width = 2; // 视频宽度
        int32 height = 3; // 视频高度
        int32 duration = 4; // 视频素材的播放时长,单位:秒
        int32 size = 5; // 视频文件的大小,单位Byte
        string mime = 6; // 视频素材类型,以MIME类型表示
        string cover = 7; // 视频封面图
      }
      message AppInfo {
        string name = 1; // APP中文名称,针对应用下载类广告,用于下载广告
        string desc = 2; // APP文字描述,用于下载广告
        string version = 3; // APP版本号,用于下载广告
        string package_name = 4; // APP包名,用于下载广告
        optional string package_size = 5; // APP应用包大小,用于下载广告
        optional int64  ios_bundle_id = 6; // iOS下载应用ID,用于下载广告
        optional int64  update_time = 7; //app更新时间
        optional float  score = 8; //应用评分
        optional string icon_image_url = 9; //app icon url
        optional int32 icon_image_width = 10; //app icon width
        optional int32 icon_image_height = 11; //app icon height
        optional string download_url = 12; //下载地址
        optional int64 download_url_expires = 13;// 下载过期时间戳,秒级
        optional string download_url_file_md5 = 14; //文件md5
        optional string ulk_url = 15; // universal link url, 用于iOS调起
        optional string ulk_scheme = 16; // universal link scheme,用于iOS嗅探
        optional string app_store_link = 17; // 安卓应用商店直投下载地址
        optional AppComplianceInfo compliance_info = 18; // 合规六要素
      }

      message AppComplianceInfo { // 合规六要素
        string name = 1; // 应用中文名
        string version = 2; // 应用版本号码
        string developer = 3; // 开发者
        string privacy_url = 4; // 隐私协议网址
        map<string, string> permission = 5; // 权限列表
        optional string permissions_url = 6; // 权限URL,与权限列表二选一填充
        string function_desc_url = 7; // 功能
      }

      message DownloadMonitor {
        repeated string dm_down_start_monitor_urls = 1; //下载开始检测链接
        repeated string dm_down_end_monitor_urls = 2; //下载完成检测链接
        repeated string dm_install_start_monitor_urls = 3; //开始安装监控
        repeated string dm_install_end_monitor_urls = 4; //安装完成监控
      }

      message MiniProgramInfo {
        MiniProgramReleaseType release_type = 1; //发布类型
        string program_id = 2; // 小程序id
        string program_path = 3; // 小程序页面路径
      }

      enum OptimizationGoal { // 投放优化目标
        OPTIMIZATION_GOAL_UNSPECIFIED = 0; // 未指定
        OPTIMIZATION_GOAL_LEAD_GENERATION = 1; // 线索类(表单or线索提交)
        OPTIMIZATION_GOAL_APP_INSTALL = 2; // 拉新, 应用下载
        OPTIMIZATION_GOAL_APP_ENGAGEMENT = 3; // 拉活, 应用使用度提升
        OPTIMIZATION_GOAL_BRAND_AWARENESS = 4;// 品牌曝光
        OPTIMIZATION_GOAL_MINI_PROGRAM = 5;// 小程序
      }

      enum ActionType { //广告点击后优先行为
        ACTION_TYPE_UNSPECIFIED = 0; // 未指定
        ACTION_TYPE_LANDING_PAGE = 1; // 打开落地页
        ACTION_TYPE_DEEP_LINK = 2; // deep_link [+ 落地页]
        ACTION_TYPE_ANDROID_INSTALL = 3; // android下载安装
        ACTION_TYPE_IOS_INSTALL = 4; // 应用商店安装
        ACTION_TYPE_MINI_PROGRAM = 5;//小程序
      }

      enum MiniProgramReleaseType { //小程序发布类型
        MINI_PROGRAM_RELEASE_TYPE_UNSPECIFIED = 0; // 未指定
        MINI_PROGRAM_RELEASE_TYPE_PRODUCT = 1; // 正式
        MINI_PROGRAM_RELEASE_TYPE_TEST = 2; // 测试
        MINI_PROGRAM_RELEASE_TYPE_PREVIEW =3; // 预览
      }
    }
  }
}