我们如何与亚马逊网络服务(AWS)建立广告交换优德88备用网

到场的平台,定制开发和集成

我们如何与亚马逊网络服务(AWS)建立广告交换优德88备用网

2019年9月26日发布,2020年11月10日更新,

快速构建和测试新解决方案的能力是任何科技公司成功的关键决定因素。

云服务提供商AWS使我们——软件工程师和DevOps——能够以非常快的速度开发和实现新的应用程序。

我们的开发团队最近进行了一个内部项目构建一个可工作的最小可行产品(MVP)广告交换——一种广告技术,通过它可以方便在线广告的买卖实时竞价拍卖

实时竞价(RTB)是如何运作的
广告交换促进了广告商(通过dsp)和出版商(通过ssp)之间在线媒体的买卖。

随着实时竞价(RTB)的引入,广告交易出现在2000年代后期。起初,它们是位于需求方平台(需求方)及供应方平台(ssp)

然而,在过去的几年中,许多SSPs已经将交换能力整合到他们的产品中,许多广告交易所也添加了SSPs中的功能(例如库存管理和产量优化)。

在本文中,我们将广告交换称为SSP的一个组成部分,但它也可以作为一个独立的平台运行。

建立SSP或广告交换?

告诉我们你的项目,看看我们能提供什么帮助

建立SSP或广告交换?

请填写下面的表格,了解我们的AdTech开发如何帮助您



关于我们的项目

有几件事需要强调:

  • 我们只使用AWS服务,并在可能的情优德88备用网况下选择托管服务。
  • 我们使用尽可能少的代码创建了广告交换平台。
  • 我们希望能够通过应用任何日期范围和属性过滤器(例如设备、域等)来运行报表,并通过添加子维度的选项将它们按可用的任何维度(任何属性)分解。
  • 日志在S3上以拼花格式存储。
  • 数据量为每天100 - 200亿次拍卖。
  • 不包括实时报告。
  • 我们尽可能优化成本。
  • 我们载入并报告部分数据(例如,当周、当月),然后我们存档数据以节省成本。

为了解释我们是如何做到这一点的,我们将本文分为四个部分:

  • 参观者:收集关于访问者操作的数据。
  • 处理:基于访问者生成的内容,我们创建一个补充业务需求的数据模型。所有的浓缩都在这里进行。
  • 跟踪像素:从广告请求中收集数据。
  • 后期处理:将收集到的数据提供给外部工具。

游客

这一部分,顾名思义,与访问者以及在他们访问网页时向他们展示广告的决策过程有关。

当网页开始加载时,关于访问者的信息(地理位置,设备模型等)通过直接从发布者的网站收集或通过一个供应平台(SSP)

然后广告交换器将这些信息传递给需求方平台(dsp)。这就是所谓的投标请求。

如果操作DSP的广告客户希望向该用户显示广告,他们将向广告交换返回一个出价响应。如果他们的出价最高,他们的广告就会显示给用户。

互联网用户可能会注意到广告和其他内容同时显示,给人一种错误的印象广告服务流程有点简单。

然而,向访问者提供广告是一个非常时间敏感的过程——通常,广告交易所需要在50毫秒内向其他AdTech平台发送投标请求。

将这些请求实时发送到外部系统(例如dsp)需要一个非常快的处理应用程序。

以下是此过程的详细描述,以及它与AWS服务的关系:优德88备用网

使用AWS的广告交换中的访问者流

以下是所发生事情的概述:

  • 当用户访问一个网页(例如。http://example.com,它通常通过CDN或负载均衡器提供),一个带有配置AdUnitID的JavaScript SDK被激活。
  • 配置的DNS记录将SDK请求指向负载均衡器(如ALB),负载均衡器再将请求发送给EC2实例(推荐使用C或R实例类型)。
  • 为了加快广告服务进程,我们将使用一个ElastiCache实例和内存缓存一起使用。
  • 交换系统(一个EC2实例)通过回退到ElastiCache来查询内存缓存。
  • 当没有找到AdUnitID时,一些回退广告被发回并显示给访问者。
  • 如果找到AdUnitID, EC2实例将在有限的时间内(通常小于250ms)在定义的供应商(通常是dsp和广告网络)之间执行拍卖。可以是一个供应商,也可以是多个供应商。
  • 然后获胜的供应商将广告标记发送到浏览器,并将广告显示给访问者。
  • 当广告被显示时,所有收集到的关于访问者和广告本身的信息都被传递给Kinesis进行进一步处理。

处理

在这一部分中,我们收集访问者提供的数据(从投标请求中),并对其进行充实,以满足各种业务需求。

使用AWS的广告交换中的处理流

我们首先将AWS Kinesis的数据保存在S3桶中,这是分批完成的。

此外,每当在这个桶中创建一个新文件时,就会触发一个新的对象创建事件并启动一个AWS Lambda函数。此函数用于处理新创建的文件。

根据业务需求,可以是一个Lambda函数,也可以是多个Lambda函数。无论函数的数量如何,过程都是一样的:从一个桶中获取数据,通过Lambda处理它,然后将其移动到另一个桶中。

每个Lambda函数都可以有自己的逻辑和处理数据的方式。

例如,一个进程可以查询数据库(例如RDS)来获取与ssp相关的信息,而另一个进程可以基于访问者请求的数据(地理位置、设备信息等)访问外部API。

最后,处理后的数据存储在S3桶中。

从那里,可以像普通的SQL查询一样从Amazon Athena查询数据。

并行地,同样的数据可以存储在DynamoDB表中,以加快下一步所需的访问速度。

配置TTL的表应该用来将数据的可用性限制在某个时间范围内(例如一周),以优化成本。

跟踪像素

在此步骤中,我们将验证获得的有关访问者的信息,这些信息与他们的真实行为、交互以及在SSP中执行的业务相关流程有关。

使用AWS跟踪广告交换中的像素流

当访问者看到一个广告时,一个像素被触发(通常来自CloudFront),请求的数据(在URL中)作为访问日志存储在S3桶中。

与上一步一样,我们使用Lambda函数。

但是,这个Lambda函数试图获取有关广告请求的所有信息,这些信息存储在上一步中。

印象日志再次存储在另一个S3桶中,然后可以从Amazon Athena查询。

后置处理

最后一步涉及到分析数据并使其对外部工具可用。

使用AWS的广告交换中的后处理流

为了实现这一点,我们必须将所有数据从Athena(以聚合的形式)移动到Redshift,这对于聚合和处理大量数据非常有用。

从那里,可以从SSP接口查询数据,允许发布者和采访者在SSP的仪表板上或在其他数据可视化工具中查看报告。

同样,我们使用AWS Lambda函数,每一分钟启动一次。

关键的外卖

作为这篇文章的结束语,我想告诉你一些主要的要点:

  • AWS是快速处理大量数据而无需进行大量编码的理想解决方案。它的托管服务也大大减轻了优德88备用网开发人员的维护负担。
  • 根据我们的经验,这是最理想的选择建筑到场平台因为您可以轻松地扩展应用程序(通过自动扩展),并且可以更快地将新产品推向市场。

想要建立一个广告交换或SSP?

我们的全方位服务AdTech开发团队可以帮助您设计和建立一个定制的广告交换或SSP

查看我们的发展服务优德88备用网

免费AdTech & MarTech资源w88优德中文

通过我们的双月刊时事通讯,成千上万的c级高管、软件工程师、营销人员和广告商都可以了解AdTech和MarTech的内部工作原理——你也可以!今天就订阅,获得最新最好的文章、视频和指南!