├── IWANVI广告平台上线部署要求.md ├── LICENSE ├── README.md ├── iwanvi-adx RTB协议规范.html ├── iwanvi-adx RTB协议规范.md ├── iwanvi-adx RTB协议规范.pdf ├── iwanvi-adx广告主和素材审核接口.md ├── iwanvi-adx广告主和素材审核接口.pdf ├── iwanvi广告系统安装部署文档 ├── IWANVI广告平台上线部署要求.pdf ├── IWANVI广告竞价引擎部署.md ├── IWANVI广告竞价引擎部署.pdf ├── IWANVI广告系统同步模块部署说明.pdf ├── IWANVI广告系统接口服务说明文档.docx ├── IWANVI广告系统接口服务部署文档.pdf ├── IWANVI广告系统架构&交互流程.pdf ├── IWANVI数据库说明文档.pdf └── IWANVI权限认证系统&管理系统部署说明.pdf ├── rtb.proto ├── spec ├── OpenRTB-API-Specification-Version-2-5-FINAL.pdf └── OpenRTB-Native-Ads-Specification-Final-1.2.pdf ├── 万维广告平台上线部署要求.md ├── 万维广告平台上线部署要求.pdf ├── 万维广告平台问题整理.md ├── 中文万维广告平台项目迁移.pdf ├── 安装部署文档 └── 广告竞价引擎部署.pdf ├── 广告平台操作手册 V1.0.docx ├── 广告平台操作手册 V1.1.docx ├── 广告平台数据库文档.docx ├── 广告平台测试用例.xlsx ├── 广告平台需求说明书 v2.01.docx ├── 广告平台需求说明书 v2.1.docx ├── 广告测试流程.md ├── 广告系统架构&交互流程.pdf ├── 线上广告服务器运行指标.md └── 线上广告服务器运行指标.pdf /IWANVI广告平台上线部署要求.md: -------------------------------------------------------------------------------- 1 | # 万维广告平台上线部署要求 2 | 3 | ## ECS虚拟主机方式部署 4 | 5 | **服务器所在区域尽量选择在华北区域,最好是北京,我们adx所对接dsp平台大多数服务器都在北京,为了最大限度的降低网络延时,** 6 | 7 | ### 服务器配置要求 8 | 9 | #### 广告引擎 10 | 11 | 8核+8G内存 4台, 500G数据盘 12 | 13 | #### 广告管理平台 14 | 15 | 4核+8G内存 1台, 1T数据盘 16 | 17 | #### 广告接口服务 18 | 19 | 8核+8G 4台, 500G数据盘 20 | 21 | ### 服务器权限要求 22 | 23 | 提供一台服务器远程ssh的权限,所有服务器内部可以互相访问 24 | 25 | 服务器提供root登录权限 26 | 27 | 服务器对外开放80端口 28 | 29 | ### 基础服务配置要求 30 | 31 | 负载均衡服务(SLB) -- 按峰值计费方式 32 | 33 | Redis集群服务 -- 内存要求8G,主从结构,一主一从 34 | 35 | #### RDS(mysql)服务 36 | 37 | mysql版本: 5.6+, 最大连接数:1000+, 存储空间: 100G+, (主从结构,一主一从) 38 | 39 | 内存:4G+, CPU: 8核 40 | 41 | OSS -- 分布式文件存储服务,用来保存广告素材使用 42 | 43 | CDN服务 -- 提供对外访问素材的缓存服务 44 | 45 | 46 | 47 | #### 阿里云日志服务 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # programmatic-ad-tech 2 | 程序化广告对接文档 3 | -------------------------------------------------------------------------------- /iwanvi-adx RTB协议规范.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | iwanvi-adx RTB协议规范 228 | 229 | 230 |

PB接口协议

接口说明

Adx RTB 总共包含三个步骤。

  1. Adx向DSP发送广告询价请求(Bid Request)
  2. DSP或者第三方广告平台向Adx返回出价结果及广告代码

这三个步骤分别对应三个接口。

接口注意事项

  1. ADX 的 RTB API参考通用OpenRTB规范:iab techlab openrtb-spec。大体遵循该规范,但对一些字段有调整.
  2. 协议采用 HTTP POST,开启keep-alive,消息格式为ProtoBuf。目前 timeout 设为 250ms。请求头中需要设 Content-Type 为 application/x-protobuf。
  3. 不出价可以返回HTTP 状态码204 (No Content)。
  4. 展示通知impression-notice、点击通知click-notice均是GET请求。
  5. 字段中所有中文必须使用UTF-8编码。

协议描述

参考:中文万维rtb协议规范

 

231 | 232 | -------------------------------------------------------------------------------- /iwanvi-adx RTB协议规范.md: -------------------------------------------------------------------------------- 1 | 2 | # PB接口协议 3 | 4 | ## 接口说明 5 | 6 | Adx RTB 总共包含三个步骤。 7 | 8 | 1. Adx向DSP发送广告询价请求(Bid Request) 9 | 10 | 2. DSP或者第三方广告平台向Adx返回出价结果及广告代码 11 | 12 | 13 | 这三个步骤分别对应三个接口。 14 | 15 | ## 接口注意事项 16 | 17 | 1. ADX 的 RTB API参考通用OpenRTB规范:[iab techlab openrtb-spec](https://iabtechlab.com/wp-content/uploads/2016/07/OpenRTB-API-Specification-Version-2-5-FINAL.pdf)。大体遵循该规范,但对一些字段有调整. 18 | 19 | 2. 协议采用 HTTP POST,开启keep-alive,消息格式为ProtoBuf。目前 timeout 设为 250ms。请求头中需要设 Content-Type 为 application/x-protobuf。 20 | 21 | 3. 不出价可以返回HTTP 状态码204 (No Content)。 22 | 23 | 4. 展示通知impression-notice、点击通知click-notice均是GET请求。 24 | 25 | 5. 字段中所有中文必须使用UTF-8编码。 26 | 27 | ## 协议描述 28 | 29 | 参考:[中文万维rtb协议规范](rtb.proto) 30 | 31 | -------------------------------------------------------------------------------- /iwanvi-adx RTB协议规范.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi-adx RTB协议规范.pdf -------------------------------------------------------------------------------- /iwanvi-adx广告主和素材审核接口.md: -------------------------------------------------------------------------------- 1 | # 总体说明 2 | 本文档作为 DSP 与程序化交易平台进行对接的指引文档。主要包括2个部分: 3 | 4 | 1. **接入步骤** 5 | 6 | 阅读对象为 DSP 的商务人员。该部分说明了 DSP 与 Ad Exchange 对接的流程和步骤。 7 | 2. **Buyer API** 8 | 9 | 阅读对象为 DSP 的产品和开发人员。该部分详细描述了DSP向ADX上传/修改广告主/广告信息以及查询广告主/广告审核状态的接口。 10 | 11 | # 接入步骤 12 | # Buyer API 13 | 本章节将详细介绍 DSP 如何使用 Buyer API 与 Ad Exchange 进行交互,提交/修改广告主/广告信息,查询广告主/广告审核状态。为确保广告内容的有效性与合法性,所有参与Ad Exchange竞价的 DSP平台必须将广告主和广告信息提前上传到 Ad Exchange 进行审核,审核通过后方可正常投放,如果DSP返回未经审核通过的广告,将直接被过滤不会被展现。 14 | 15 | ## 联调接口地址 16 | 17 | http://47.95.131.26/adx/v1/ 18 | 19 | ## 权限认证 20 | API 通过用户授权令牌(token)来做权限验证,授权信息需要包含在 API 请求数据头中。 21 | 22 | ## 编码方式 23 | 参数编码使用 UTF-8编码 24 | 25 | ## URL定义 26 | API URL格式定义如下: 27 | http://{host}/adx/{api_version}/${resource_name}/${resource_action} 28 | 29 | 其中api_version是版本(目前是v1),resource_name表示要操作的资源,resource_action表示对资源的操作方法。 30 | 31 | resource_name目前包括两种资源: 32 | 33 | |操作资源|说明| 34 | |-----|-----| 35 | |advertiser|广告主| 36 | |creative|广告| 37 | 38 | resource_action目前包含的基本的操作方法有: 39 | 40 | |操作|说明| 41 | |------|----------------| 42 | |add | 新增 | 43 | |update| 修改 | 44 | |audit_status|获取审核状态| 45 | 46 | ## API请求 47 | API 使用 JSON消息格式,通过 RESTFUL 的HTTP协议进行数据交换。 48 | 所有请求,使用POST方式,同时在Http header中需要设置Content_Type和鉴权信息,如下例: 49 | 50 | Content-Type: application/json 51 | Authorization: /* auth token here */ 52 | 53 | 所有请求,参数均以JSON格式设置在 HTTP 请求的Body内,如下例: 54 | 55 | ``` 56 | { 57 | "data": request_data 58 | } 59 | ``` 60 | 61 | ## API响应 62 | 63 | HTTP 返回码为200则请求成功,否则可能客户端或服务端产生了异常,可根据 HTTP 状态码判断错误的类型。 64 | 65 | HTTP响应中包含了头部信息:`Content-Type: application/json`。 66 | 响应信息包含在返回的JSON 数据中,包含本次操作的返回码和具体错误信息。响应信息分三部分内容,分别为状态码、说明和数据区。 67 | 68 | 对非数组形式的API请求,返回数据如下所示: 69 | 70 | |字段名称|类型|说明| 71 | |-------------|----------|--------| 72 | |code|int|错误码,非0为错误发生 | 73 | |message|string|错误信息,若没有错,此字段返回success | 74 | |data|json array或json object|返回信息| 75 | 76 | ## 广告主 77 | 78 | ### 广告主创建 79 | URL: http://{host}/adx/v1/advertiser 80 | 81 | 请求字段: 82 | 83 | |类型 |是否数组类型 |说明| 84 | |-------|:-----------:|---------| 85 | |Advertiser |否| 广告主信息| 86 | 87 | 请求类型Advertiser: 88 | 89 | |字段名称|类型|是否必填| 说明| 90 | |-------|-------|:------:|------| 91 | |advertiserId|string|是|dsp平台广告主唯一id| 92 | |name|string|是|广告主名称| 93 | |businessLicense|string|是|广告主营业执照| 94 | |qualification|string|否|其他资质文件,多个资质文件需打包成压缩文件| 95 | |industryType |int |是|广告主行业类型,行业类型定义参见:[行业定义](#industry_dic)| 96 | 97 | 应答字段: 98 | 99 | |字段名称|类型|是否必填| 说明| 100 | |-------|-------|:------:|------| 101 | |code|int|是|响应码,0为操作成功,非0操作异常| 102 | |message|string|否|响应说明,如果code非0返回错误原因| 103 | |data|object|否|批量操作响应信息| 104 | 105 | ### 广告主更新 106 | 107 | URL: http://{host}/adx/v1/advertiser/update 108 | 109 | 请求字段: 110 | 111 | |类型 |是否数组类型 |说明 | 112 | |-------|:----:|--------| 113 | |Advertiser |否|广告主信息| 114 | 115 | 请求类型Advertiser: 116 | 117 | |字段名称|类型|是否必填| 说明| 118 | |-------|-------|:------:|-------------| 119 | |advertiserId|string|是|dsp平台广告主唯一id| 120 | |name|string|否|广告主名称| 121 | |businessLicense|string|否|广告主营业执照| 122 | |qualification|string|否|其他资质文件,多个资质文件需打包成压缩文件| 123 | |industryType |int |否|广告主行业类型,行业类型定义参见:[行业定义](#industry_dic)| 124 | 125 | ### 广告主审核状态获取 126 | 127 | URL: http://{host}/adx/v1/advertiser/audit_status 128 | 129 | 请求字段: 130 | 131 | |类型 |是否数组类型 |说明 | 132 | |-------|:----:|------- | 133 | |string |是|dsp广告主id | 134 | 135 | ## 广告 136 | 137 | ### 广告创建 138 | 139 | URL: http://{host}/adx/v1/creative 140 | 141 | 请求字段: 142 | 143 | |类型|是否数组类型|说明| 144 | |---|:------:|------| 145 | |Creative|否|广告信息| 146 | 147 | 请求类型Creative: 148 | 149 | |字段名称|类型| 是否必填 | 说明 | 150 | |-------|-------|:------:|----------------------| 151 | |creativeId|string|是|素材id, dsp平台唯一| 152 | |advertiserId|string|是|dsp平台广告主id, dsp平台唯一| 153 | |name|string|是|广告名称| 154 | |creativeType|int|是|广告类型, 广告类型定义参见: [广告类型字典](#creative_type_dic)| 155 | |creativeUrl|string|否|素材url,非原生广告必填| 156 | |~~clickUrl~~|string|是| 广告点击url | 157 | |landingPage|string|是| 广告落地页地址| 158 | |nativeAd|object|否|原生广告对象,广告类型为原生广告必填, 参见:[NativeAd](#native_ad)| 159 | 160 | NativeAd: 161 | 162 | | 字段名称 | 类型 | 是否必填 | 说明 | 163 | | -------- | ------------ | :------: | ---------------- | 164 | | title | string | 是 | 广告名称 | 165 | | icon | string | 是 | 广告icon | 166 | | desc | string | 否 | 广告描述 | 167 | | images | string array | 是 | 原生广告图片素材 | 168 | 169 | ### 广告更新 170 | 171 | URL: http://{host}/adx/v1/creative/update 172 | 173 | 请求字段: 174 | 175 | |类型|是否数组类型|说明| 176 | |---|:------:|------| 177 | |Creative|否|广告信息| 178 | 179 | 请求类型Creative: 180 | 181 | |字段名称|类型| 是否必填 | 说明 | 182 | |-------|-------|:------:|----------------------| 183 | |creativeId|string|是|素材id, dsp平台唯一| 184 | |advertiserId|string|是|dsp平台广告主id, dsp平台唯一| 185 | |name|string|否|广告名称| 186 | |creativeType|int|否|广告类型, 广告类型定义参见: [广告类型字典](#creative_type_dic)| 187 | |creativeUrl|string|否|素材url,非原生广告必填| 188 | |~~clickUrl~~|string|否| 广告点击url | 189 | |landingPage|string|否| 广告落地页地址| 190 | |nativeAd|object|否|原生广告对象,广告类型为原生广告必填| 191 | 192 | ### 广告审核状态获取 193 | 194 | URL: http://{host}/adx/v1/creative/audit_status 195 | 196 | 请求字段: 197 | 198 | |类型 |是否数组类型 |说明 | 199 | |-------|:----:|------- | 200 | |string |是|dsp广告主id | 201 | 202 | # 字典值定义 203 | ## 行业类型 204 | 205 | |行业类型|类型id| 206 | |:----------:|----| 207 | |不限|1| 208 | 209 | 210 | ## 广告类型 211 | 212 | |广告类型名称|类型id| 213 | |:----------:|----| 214 | |图片(Banner) |2| 215 | |贴片(Video)|5| 216 | |信息流(Native)|7| 217 | 218 | ## 审核状态 219 | 220 | | 审核状态 | 说明 | 221 | | :------: | -------- | 222 | | 1 | 审核通过 | 223 | | 2 | 审核拒绝 | 224 | | 3 | 待审核 | 225 | 226 | # API请求/响应样例 227 | 228 | ## 广告主请求响应 229 | ### 广告主创建 230 | 231 | ``` 232 | { 233 | "advertiserId":"105", 234 | "name":"乐元素12", 235 | "businessLicense":"http://image.google.com/x.jpg", 236 | "qualification": "http://qulification.url", 237 | "industryType": 5 238 | } 239 | ``` 240 | 241 | 242 | ``` 243 | { 244 | "code":1, 245 | "msg":"广告主名称不能为空" 246 | } 247 | ``` 248 | 249 | ### 广告主更新 250 | 251 | ``` 252 | { 253 | "advertiserId":"105", 254 | "name":"完美世界" 255 | } 256 | ``` 257 | 258 | 259 | ``` 260 | { 261 | "code":1, 262 | "msg":"广告主名称不能为空" 263 | } 264 | ``` 265 | 266 | ### 广告主审核状态获取 267 | ```javascript 268 | [ 269 | "105", 270 | "103", 271 | "1110" 272 | ] 273 | ``` 274 | 275 | ```javascript 276 | { 277 | "code":0, 278 | "data": 279 | [ 280 | {"103":{"autidStatus":3,"auditMsg":"审核备注/拒绝原因"}}, 281 | {"105":{"autidStatus":3, "auditMsg":"xxxxxx"}} 282 | ], 283 | "msg":"success" 284 | } 285 | ``` 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | -------------------------------------------------------------------------------- /iwanvi-adx广告主和素材审核接口.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi-adx广告主和素材审核接口.pdf -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI广告平台上线部署要求.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi广告系统安装部署文档/IWANVI广告平台上线部署要求.pdf -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI广告竞价引擎部署.md: -------------------------------------------------------------------------------- 1 | # 广告竞价引擎部署 2 | 项目模块:nvwa-adserv-ngx/nvwa-adserv-ngx-server 3 | ## 修改环境配置文件 4 | src/main/assembly/filters/${env.id}/filter.properties, 其中env.id环境变量参见pom.xml中的profile配置,目前包括dev,test,prod三个 5 | 6 | ## 配置文件说明 7 | ```java 8 | db.path=/data/nvwa/db/ 9 | notify.msg.topic=minerva 10 | env.dev=0 11 | 12 | local.file.path=/data/nvwa/pub 13 | media.dspid=M7nuyi 14 | media.internal.uuid=M7nuyi 15 | dsp.router.threadpool.min-size=1024 16 | dsp.router.threadpool.max-size=1024 17 | 18 | //dsp超时时间 19 | dsp.timeout=250 20 | //默认redis服务器相关配置 21 | redis.default.host=r-2zemcvnzvf8a27hv6p.redis.rds.aliyuncs.com:6379 22 | redis.default.maxActive=20 23 | redis.default.connectTimeout=3000 24 | redis.default.soTimeout=10 25 | redis.default.auth=2019@iwanvi_redis 26 | redis.default.db=0 27 | //限速redis相关配置 28 | redis.ratelimit.host=r-2zemcvnzvf8a27hv6p.redis.rds.aliyuncs.com:6379 29 | redis.ratelimit.maxActive=5 30 | redis.ratelimit.connectTimeout=3000 31 | redis.ratelimit.soTimeout=5 32 | redis.ratelimit.auth=2019@iwanvi_redis 33 | redis.ratelimit.db=0 34 | 35 | //各家对接dsp相关配置 36 | toutiao.dspid=toutiao 37 | toutiao.appid=5014839 38 | toutiao.ekey=1c3c324024e3457b8573fdf26d31a903 39 | toutiao.ikey=40ef1bdcbd7b410e1407ebdd0ed49574 40 | 41 | 360.dspid=360 42 | 43 | ruangao.dspid=NFbqiu 44 | ruangao.mediaid=800156 45 | ruangao.medianame=\u4E2D\u6587\u4E07\u7EF4 46 | ruangao.interfaceversion=1.6.3 47 | 48 | iflytek.dspid=2MFfYj 49 | iflytek.ekey=5120aba7dd8880ba 50 | 51 | youdao.dspid=qiU3U3 52 | inmobi.dspid=IJJJRf 53 | adview.dspid=6jE3Mv 54 | adngx.server.count=10 55 | 56 | maihan.dspid=neQj22 57 | maihan.apiver=V2.1 58 | 59 | adwo.dspid=nmiqIb 60 | 61 | liebao.dspid=2UvmIj 62 | liebao.ekey=vl7z58b6vegfe3f3oaialx6oun4yxmkl 63 | 64 | ``` 65 | 66 | ## 打包部署 67 | ```bash 68 | mvn clean package -P${env.id} -pl nvwa-adserv-ngx/nvwa-adserv-ngx-server -am 69 | ``` 70 | 71 | 到nvwa-adserv-ngx/nvwa-adserv-ngx-server/target目录下面,拷贝nvwa-adserv-ngx-server-${env.id}.tar.gz到服务器的指定目录下,如:/data/apps/nvwa-adserv-ngx-server 72 | 73 | ## 启动 74 | 75 | ```bash 76 | cd /data/apps/nvwa-adserv-ngx-server 77 | tar xzvf nvwa-adserv-ngx-server-${env.id}.tar.gz 78 | cd nvwa-adserv-ngx-server-${env.id} 79 | bash ./run.sh 80 | 81 | ``` 82 | 83 | # nvwa-openapi-adx模块部署 84 | 项目模块:nvwa-openapi/nvwa-openapi-adx 85 | ## 环境相关配置文件: 86 | src/main/resources/application-${env.id}.properties 87 | 88 | ## 配置文件说明 89 | 90 | ``` 91 | spring.datasource.url=mysql数据库地址 92 | spring.datasource.username=数据库用户名 93 | spring.datasource.password=数据库密码 94 | spring.datasource.driver-class-name=com.mysql.jdbc.Driver 95 | spring.datasource.max-active=连接池大小 96 | 97 | //redis相关配置,按照具体环境进行配置 98 | redis.host=182.92.173.117 99 | redis.port=2917 100 | redis.database=7 101 | redis.timeout=60000 102 | redis.auth=2917 103 | //服务端口地址,默认18888 104 | dorado.server.port=18888 105 | ``` 106 | 107 | ## 打包部署 108 | 109 | ``` 110 | mvn clean package -P${env.id} -pl nvwa-openapi/nvwa-openapi-adx -am 111 | ``` 112 | 到nvwa-adserv-ngx/nvwa-adserv-ngx-server/target目录下面,拷贝nvwa-openapi-adx-${env.id}.tar.gz到服务器的指定目录下,如:/data/apps/nvwa-openapi-adx 113 | 114 | ## 启动 115 | 116 | ```bash 117 | cd /data/apps/nvwa-openapi-adx 118 | tar xzvf nvwa-openapi-adx-${env.id}.tar.gz 119 | cd nvwa-openapi-adx-${env.id} 120 | bash ./run.sh 121 | ``` 122 | 123 | ## 124 | 125 | -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI广告竞价引擎部署.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi广告系统安装部署文档/IWANVI广告竞价引擎部署.pdf -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI广告系统同步模块部署说明.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi广告系统安装部署文档/IWANVI广告系统同步模块部署说明.pdf -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI广告系统接口服务说明文档.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi广告系统安装部署文档/IWANVI广告系统接口服务说明文档.docx -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI广告系统接口服务部署文档.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi广告系统安装部署文档/IWANVI广告系统接口服务部署文档.pdf -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI广告系统架构&交互流程.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi广告系统安装部署文档/IWANVI广告系统架构&交互流程.pdf -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI数据库说明文档.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi广告系统安装部署文档/IWANVI数据库说明文档.pdf -------------------------------------------------------------------------------- /iwanvi广告系统安装部署文档/IWANVI权限认证系统&管理系统部署说明.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/iwanvi广告系统安装部署文档/IWANVI权限认证系统&管理系统部署说明.pdf -------------------------------------------------------------------------------- /rtb.proto: -------------------------------------------------------------------------------- 1 | //Copyright 2019 iwanvi.com All right reserved. 2 | syntax = "proto2"; 3 | 4 | option java_outer_classname = "NvwaRtb"; 5 | option java_package = "com.iwanvi.nvwa.rtb.proto"; 6 | 7 | package com.iwanvi.nvwa.rtb.proto; 8 | 9 | //竞价请求对象 10 | message BidRequest { 11 | required string id = 1; //竞价请求id, 由adx自动生成 12 | 13 | repeated Imp imp = 2; 14 | //站点对象, 网站流量使用 15 | optional Site site = 3; 16 | //移动应用,移动app流量使用 17 | optional App app = 4; 18 | //设备对象 19 | optional Device device = 5; 20 | //用户对象 21 | optional User user = 6; 22 | 23 | optional bool test = 7; 24 | //竞价方式:1-一价;2-二价 25 | optional uint32 at = 8; 26 | //扩展字段 27 | //map ext = 9; 28 | 29 | //保留扩展,扩展协议字段编号 30 | extensions 200 to 299; 31 | 32 | message Imp { 33 | required string id = 1; 34 | optional Banner banner = 2; 35 | optional Video video = 3; 36 | 37 | //oneof ad { 38 | // Banner banner = 2; //Banner广告(图片广告) 39 | // Video video = 3; //视频广告 40 | //} 41 | 42 | optional Pmp pmp = 6; //私有竞价相关定义 43 | optional string tagid = 7; //媒体广告位id,由Ad-Exchange定义 44 | optional float bidfloor = 8; //媒体广告位底价 45 | optional string bidfloorcur = 9; 46 | //是否使用https, 0-不启用安全链接, 1-启用安全链接 47 | optional uint32 secure = 10; 48 | optional bool is_native_ad = 12; //是否原生广告,原生广告dsp平台可以根据tagid来进行匹配 49 | //map ext = 11; //扩展字段 50 | optional NativeAd nativeAd = 13; //原生广告请求 51 | 52 | //protobuf扩展 53 | extensions 200 to 299; 54 | 55 | //图片广告位请求定义 56 | message Banner { 57 | optional uint32 w = 1; //banner广告位宽 58 | optional uint32 h = 2; //banner广告位高 59 | optional uint32 pos = 3; //广告位置 60 | repeated string mimes = 4; //广告位支持mime类型 61 | //如:image/jpeg 62 | //协议扩展定义 63 | extensions 200 to 299; 64 | } 65 | 66 | //视频广告位请求定义 67 | message Video { 68 | repeated string mimes = 1; //支持媒体类型 69 | optional uint32 minduration = 2; //视频最小时长 70 | optional uint32 maxduration = 3; //视频最大时长 71 | optional uint32 w = 4; //视频宽 72 | optional uint32 h = 5; //视频高 73 | 74 | //协议保留扩展 75 | extensions 200 to 299; 76 | } 77 | 78 | message NativeAd { 79 | //原生广告位规格id, 同一个原生广告广告位同时可能支持多种广告样式 80 | repeated string template_id = 1; 81 | } 82 | 83 | //私有竞价定义 84 | message Pmp { 85 | repeated Deal deals = 1; 86 | //协议扩展定义 87 | extensions 200 to 299; 88 | 89 | message Deal { 90 | //私有化交易id 91 | required string id = 1; 92 | } 93 | } 94 | } 95 | //end imp 96 | 97 | message App { 98 | optional string id = 1; //appid, 由Ad-Exchange定义 99 | optional string name = 8; 100 | optional string bundle = 2; //应用包名,对安卓是应用包名,如:com.iqiyi,ios为appstore id 101 | repeated string cat = 3; //App分类列表 102 | optional string ver = 4; //App版本 103 | optional Content content = 6; //App内容相关 104 | optional string keywords = 7; //app关键字,多个关键字逗号分隔 105 | 106 | extensions 200 to 299; 107 | } 108 | 109 | //站点对象定义 110 | message Site { 111 | optional string id = 1; //站点id 112 | optional string name = 2; //站点名称 113 | optional string domain = 3; //站点域名 114 | repeated string cat = 4; //站点分类 115 | 116 | optional Content content = 8; //网站内容 117 | optional string keywords = 9; //网站关键字,多个关键字逗号分隔 118 | 119 | extensions 200 to 299; 120 | } 121 | 122 | message Content { 123 | optional string id = 1; 124 | optional string title = 2; 125 | optional string keywords = 3; 126 | } 127 | 128 | //设备对象 129 | message Device { 130 | optional string ua = 1; //设备ua 131 | optional Geo geo = 2; //地理位置对象 132 | optional string ip = 3; //设备ip 133 | optional string ipv6 = 4; //ipv6地址 134 | optional uint32 devicetype = 5; //设备类型, 1-phone,2-pad,3-pc,4-tv 135 | optional string make = 6; //设备制造商 136 | optional string model = 7; //设备型号, 如:iPhone 137 | optional string os = 8; //操作系统,如:ios/Android 138 | optional string osv = 9; //操作系统版本 139 | optional string carrier = 10; //运营商, 0-未知,1-移动,2-联通,3-电信 140 | 141 | optional uint32 connectiontype = 11; //网络连接类型, 1-wifi; 2-2G;3-3G;4-4G;5-5G; 0-未知 142 | optional string ifa = 12; //明文设备码,如安卓的imei或ios的idfa 143 | optional string didmd5 = 13; //md5设备码 144 | optional string mac = 14; //mac地址明文 145 | optional string macmd5 = 15; //md5 mac地址 146 | optional string adid = 16; //安卓id 147 | optional uint32 h = 17; //设备屏幕高 148 | optional uint32 w = 18; //设备屏幕宽 149 | 150 | //协议保留扩展 151 | extensions 200 to 299; 152 | } 153 | 154 | message Geo { 155 | optional float lat = 1; //纬度 156 | optional float lon = 2; //经度 157 | optional string country = 3; //国家编码 158 | optional string region = 4; //地区编码 159 | optional string city = 5; //城市编码 160 | //6位地域码 161 | optional uint32 area_code = 6; //6位地域码 162 | 163 | extensions 200 to 299; 164 | } 165 | 166 | message User { 167 | optional string id = 1; //Ad-Exchange用户标识 168 | 169 | extensions 200 to 299; 170 | } 171 | } 172 | 173 | message BidResponse { 174 | //竞价请求id, 和BidRequest的id保持一致 175 | required string id = 1; 176 | repeated SeatBid seatbid = 2; //针对单个广告位的竞价响应 177 | required string bidid = 3; //dsp生成的竞价响应id 178 | 179 | //协议保留扩展 180 | extensions 200 to 299; 181 | 182 | message NativeAdResponse { 183 | optional string icon = 1; 184 | optional string title = 2; 185 | optional string desc = 3; 186 | repeated string imgs = 4; 187 | optional string ctatext = 5; 188 | //原生广告模板id 189 | optional string template_id = 6; 190 | } 191 | 192 | message SeatBid { 193 | repeated Bid bid = 1; //同一个广告位的多个出价 194 | optional string seat = 2; //广告位名称 195 | 196 | message Bid { 197 | required string id = 1; //dsp平台参与出价id 198 | required string impid = 2; //曝光id, 关联竞价请求中Imp中id 199 | required float price = 3; //广告出价, 单位是分 200 | required string crid = 4; //dsp平台创意id 201 | optional string dealid = 5; //请求pmp dealid 202 | 203 | repeated string imptrackers = 6; //曝光监测 204 | repeated string clktrackers = 7; //点击监测 205 | repeated string dltrackers = 17; //下载监测 206 | repeated string dpstrackers = 18; //deeplink成功监测 207 | repeated string dpftrackers = 19; //deeplink失败监测 208 | 209 | optional string ldp = 8; //广告落地页 210 | optional string creative_url= 9; //广告创意地址 211 | optional uint32 click_type = 10; //点击类型:1-浏览器打开 2-安卓应用下载 3-deeplink,4-ios应用 212 | 213 | //安卓应用包名或者ios的appid, 点击类型为安卓应用下载和ios应用时候,bundle必填 214 | optional string bundle = 11; 215 | optional string adm = 12; //动态广告代码 216 | optional NativeAdResponse nativeAd = 13; //原生广告响应 217 | optional string app_download_url = 14; //应用下载地址 218 | optional string app_name = 15; //应用名称 219 | optional string deeplink = 16; //deeplink链接 220 | 221 | //协议保留扩展 222 | extensions 200 to 299; 223 | } 224 | } 225 | } -------------------------------------------------------------------------------- /spec/OpenRTB-API-Specification-Version-2-5-FINAL.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/spec/OpenRTB-API-Specification-Version-2-5-FINAL.pdf -------------------------------------------------------------------------------- /spec/OpenRTB-Native-Ads-Specification-Final-1.2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/spec/OpenRTB-Native-Ads-Specification-Final-1.2.pdf -------------------------------------------------------------------------------- /万维广告平台上线部署要求.md: -------------------------------------------------------------------------------- 1 | # 万维广告平台上线部署要求 2 | 3 | ## ECS虚拟主机方式部署 4 | 5 | **服务器所在区域尽量选择在华北区域,最好是北京,我们adx所对接dsp平台大多数服务器都在北京,为了最大限度的降低网络延时,** 6 | 7 | **建议aws主机所选区域尽量在华北区域*** 8 | 9 | ### 服务器配置要求 10 | 11 | #### 广告引擎 12 | 13 | 8核+16G内存 4台, 1T数据盘 14 | 15 | #### 广告管理平台 16 | 17 | 4核+8G内存 1台, 1T数据盘 18 | 19 | #### 广告接口服务 20 | 21 | 8核+16G 4台, 1T数据盘 22 | 23 | ### 服务器权限要求 24 | 25 | 提供一台服务器远程ssh的权限,所有服务器内部可以互相访问 26 | 27 | 服务器提供root登录权限 28 | 29 | 服务器对外开放80端口 30 | 31 | ### 基础服务配置要求 32 | 33 | 负载均衡服务(SLB) -- 按峰值计费方式 34 | 35 | Redis集群服务 -- 内存要求8G,主从结构,一主一从 36 | 37 | #### RDS(mysql)服务 38 | 39 | mysql版本: 5.6+, 最大连接数:1000+, 存储空间: 100G+, (主从结构,一主一从) 40 | 41 | 内存:4G+, CPU: 8核 42 | 43 | OSS -- 分布式文件存储服务,用来保存广告素材使用 44 | 45 | CDN服务 -- 提供对外访问素材的缓存服务 46 | 47 | ### 域名要求 48 | 49 | 管理平台域名一个,建议使用adx开头,如:adx.iwanvi.com 50 | 51 | 广告接口域名一个,建议使用api开头,如: api.adx.iwanvi.com 52 | 53 | 所有域名要支持https 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /万维广告平台上线部署要求.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/万维广告平台上线部署要求.pdf -------------------------------------------------------------------------------- /万维广告平台问题整理.md: -------------------------------------------------------------------------------- 1 | # 万维广告平台问题整理 2 | 3 | ## 新接入dsp流程 4 | 5 | ### 有自有协议的dsp 6 | 7 | 有自有协议的dsp平台,如头条、360、广点通、讯飞这样的广告联盟平台,本身对外提供api接口来获取广告,这样的平台在对接过程中无需进行广告主和素材提审, 8 | 9 | 只需要在代码中增加一个DspBroker的实现来完成广告请求和响应的数据转换工作即可,具体代码参见:com.iwanvi.adserv.ngx.router.broker.toutiao.ToutiaoDspBroker 10 | 11 | ### 使用通用协议的dsp 12 | 13 | `通用协议的dsp就简单很多,只需要把我们的接口规范:包括广告主和素材上传审核文档以及RTB规范` 14 | 15 | 广告主提审 16 | 17 | 素材提审 18 | 19 | 获取广告主/素材审核状态 20 | 21 | 实现RTB接口 22 | 23 | 24 | 25 | 26 | 27 | dx_model -- 定向机型 28 | 29 | dx_channel -- 定向渠道 30 | 31 | dx_app -- 定向app 32 | 33 | dx_bookcat -- 定向图书分类 34 | 35 | dx_app_version -- 定向app版本 36 | 37 | -------------------------------------------------------------------------------- /中文万维广告平台项目迁移.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/中文万维广告平台项目迁移.pdf -------------------------------------------------------------------------------- /安装部署文档/广告竞价引擎部署.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/安装部署文档/广告竞价引擎部署.pdf -------------------------------------------------------------------------------- /广告平台操作手册 V1.0.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/广告平台操作手册 V1.0.docx -------------------------------------------------------------------------------- /广告平台操作手册 V1.1.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/广告平台操作手册 V1.1.docx -------------------------------------------------------------------------------- /广告平台数据库文档.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/广告平台数据库文档.docx -------------------------------------------------------------------------------- /广告平台测试用例.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/广告平台测试用例.xlsx -------------------------------------------------------------------------------- /广告平台需求说明书 v2.01.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/广告平台需求说明书 v2.01.docx -------------------------------------------------------------------------------- /广告平台需求说明书 v2.1.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/广告平台需求说明书 v2.1.docx -------------------------------------------------------------------------------- /广告测试流程.md: -------------------------------------------------------------------------------- 1 | # 广告测试流程 2 | ## 基础数据准备 3 | ### 客户(广告主) 4 | ## 精准投放测试流程 5 | ### 创建投放计划 6 | ### 创建投放单元 7 | ### 上传投放创意 8 | ### 审核创意 9 | ### 获取appid&广告位id 10 | ### 通过接口获取广告 11 | 12 | ## 订单广告测试流程 13 | ## 抄底广告测试流程 14 | ## 第三方广告平台测试 -------------------------------------------------------------------------------- /广告系统架构&交互流程.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/广告系统架构&交互流程.pdf -------------------------------------------------------------------------------- /线上广告服务器运行指标.md: -------------------------------------------------------------------------------- 1 | # 线上广告服务器运行指标 2 | 3 | | 运行指标 | 指标值 | 4 | | :--------: | :----: | 5 | | CPU负载 | <0.5 | 6 | | 内存占用率 | <20% | 7 | | 网络超时率 | <5% | 8 | 9 | -------------------------------------------------------------------------------- /线上广告服务器运行指标.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/javagossip/programmatic-ad-tech/dc197b778fe865e89b7b1d754885e06163a2bae6/线上广告服务器运行指标.pdf --------------------------------------------------------------------------------