供应侧平台(SSP)案例研究

解决SSP /广告交换的主要技术挑战。

这是ClearCode如何开发解决方案,解决广告交易所的性能和可扩展性挑战,以帮助公司在构建供应侧平台(SSP)或广告交换时降低开发时间。

关键点:

  • 我们旨在解决SSP /广告交换中常见的性能和可扩展性挑战。
  • 我们通过部署与水平缩放模式耦合的微服务架构来解决可扩展性挑战。
  • 我们通过在发布 - 订阅(PUB / sub)层上引入服务间间通信并开发填充者服务来解决性能挑战。
  • 我们发达的解决方案的结果意味着广告交易所的性能稳定,可以扩展到DSP的更多库存,并拥有最新的库存。
  • 我们的解决方案可以作为开发项目的基础,在从零开始构建SSP/广告交换时,可以节省数千美元和数月的开发时间。
Cambio SSP案例通过Clearcode研究

我们选择以可扩展性和性能为中心解决的主要挑战。

ClearCode的Project Manager Filip Dominas

立即下载,稍后阅读

下载本案研究的完整版本,并阅读了我们如何解决SSP /广告交换的主要技术挑战。

立即下载PDF.

我们选择解决的主要挑战

我们选择解决的主要挑战集中在可扩展性和性能

具体来说,我们想建立一个可以的广告交换在没有任何延迟的情况下回应大量广告和出价请求

在我们的初步研究期间,我们确定了以下技术挑战:

  • 为了保持快速响应时间,交换必须迅速缩放。
  • 库存查询可能需要很长时间才能完成并产生大响应。
  • 用户所做的库存更改(例如,操作SSP的发布者或ADOPS)必须传播到所有Exchange实例。
  • 在SSP中的每个更新之后,不能执行传播过程,因为这会导致不可预测的传播操作,这可能阻碍交换的性能。

没有适当的解决这些挑战,SSP /广告交换供应商面临以下业务问题:

  • 出版商无法销售所有可用库存,导致汇率低,广告收入较少。
  • The publisher misses out on being able to display an ad to the visitor and potential ad revenue because the ad exchange doesn’t respond in time – typically, an RTB auction finishes within 250ms, meaning the ad exchange has to receive and respond to ad/bid requests within that time frame.

我们发达的解决方案

基于我们对SSP / AD交换和RTB的知识,以及广泛的研究,我们为上述挑战制定了以下解决方案。

可扩展性挑战的解决方案

为了确保广告交换可以扩展 - 即接收,处理和处理更多的广告/出价请求 - 我们部署了一种与水平缩放模式耦合的微服务架构。

微服务体系结构是一种在软件开发项目中使用的体系结构模式,它将应用程序分解为单独的和相关的服务。优德88备用网

可以从应用程优德88备用网序的其余部分独立开发,部署和维护这些服务,并通过应用程序编程接口(API)彼此进行通信。

采用微服务架构为我们提供以下优惠:

  • 它允许我们实现可扩展性的目标水平,因为每个微服务可以独立地衡量。
  • 我们可以单独部署这些服务,而不是整个服务优德88备用网,从而减少部署时间。
  • 具有微服务架构意味着如果一个微服务发生故障,则将孤立为该服务,不会影响广告交换的其余部分。

解决性能挑战的解决方案

SSP /广告交易所中的主要性能挑战与其有关的能力:

  • 处理SSP中进行的大量库存更改。
  • 将这些更改传播到所有交换实例。
  • 确保广告交换实例能够处理这个资源繁重的任务,而不会导致SSP遇到意外的性能问题。

为解决这些挑战,我们在发布 - 订阅(PUB / SUB)层上引入了交流通信,并开发了一个群体服务。

在发布 - 订阅(PUB / SUB)层上交际通信

Pub / sub是旨在通过订阅特定频道或主题来发布和接收消息的消息传递模式。

要执行PUB / SUB模式,我们选择了NATS,一个开源消息服务。

它在SSP环境中的作用是提供有关任何库存变更的交换实例。

库存中提出了哪些变化?

当我们谈论库存变更或清单的变化时,我们指的是提出的更改:

ad单元的校验和- 例如如果已添加或删除。

广告插槽的大小- 例如方框(250x250)已用垂直矩形(240x400)替换。

广告类别- 例如赞助,保费保证,受众瞄准和残余。

加上许多其他变化。

由于NATS服务的性质,PUB / SUB提供了对消息传递分优德88备用网配挑战的简单,安全和快速的解决方案。

由于Pub / sub是一个可批量解决方案,它消除了与队列相关的许多问题及其限制。

居民服务

通常,当在SSP中进行更改时,每个交换实例都需要在启动时下载清单中的更改。

如果每个Exchange实例都会查询SSP并直接下载库存,则服务于这些请求将需要大量资源,可能会崩溃SSP。w88优德中文

为了克服这一挑战,我们介绍了一个填充者服务,以作为Exchange实例和SSP之间的代理和单点通信,允许我们实现和确保高性能。

群体服务通知Exchange实例有关新更改,请在SET间隔内更新Exchange实例中的库存,并准备库存以便于加载。

这意味着提供新库存的资源繁重任务是以一种可预测的方式执行的,这意味着SSP没有意外的性能问题。

此外,交换也可以始终可靠地下载最新的库存更改,即使SSP无法访问。

人口管理器服务如何工作

居民服务:

  • 查询SSP在启动时的库存。
  • 为响应创建一个唯一的哈希。
  • 将响应存储为对象存储服务中的文件,例如Google云存储。
  • 在发布/订阅主题上发布文件位置。
  • 在计划中查询SSP的库存。
  • 将响应哈希与最后一个进行比较。
  • 如果它与之不同,它会存储响应并在PUB /子主题上发布文件位置。

为了确保它具有最新的库存,交换:

  • 查询启动时的清单文件位置的人群主义者。
  • 订阅发布/订阅主题,以获得新库存文件的通知。
  • 下载新文件并替换其库存。

下载后,信息将由Exchange实例本地存储。

由于此设置,交换机始终具有关于其内存中库存的信息。为了验证其有效性,它不需要下载文件存储,这将需要很多时间和资源;w88优德中文相反,它会侦听填充者(PUB / sub),用于有关库存中的任何变化的注释。

这导致更快的性能,因为每次执行RTB拍卖时都没有需要从SSP从SSP请求ad-sloTID。原因是因为交换已经存储在内存中的数据库中。

更快的性能转化为进行RTB拍卖所需的AD / BID响应时间的总体改进。

我们发达的解决方案的优势

稳定:由于SSP中所做的库存更改仅由群体查询,因此它们是可预测的并且独立于系统中的更新数。

规模:我们的微服务架构允许SSP部署大量的交换实例,最终导致出版商的更多广告收入。

最新库存:交换机只在缩放时查询填充器(在启动时),这意味着所有交换机都会同时通知库存变化。

改进性能:所有交换机都同时下载新库存,而不会对SSP或人口管理器置于任何负担。

我们使用的主要技术,框架和基础设施

我们的SSP / AD Exchange解决方案如何帮助您?

加快自定义SSP的开发阶段。
将其实施到现有的SSP以提高性能和可扩展性。