使用 亚马逊云科技 边缘服务跟踪像素驱动的 Web 分析:第 1 部分

作者: 马修·德安达 尼克·麦考德 | 2023

能够分析网络流量和用户行为对于了解新功能、内容更新或当前产品迭代对网站和应用程序的影响至关重要。跟踪网站活动可以深入了解谁访问了您的网站、他们来自哪里以及他们查看了哪些内容。网络信标是用于跟踪用户行为的常用技术。通过嵌入一小段 HTML,公司可以提高对用户如何与其产品交互的可见性。网络信标跟踪的常见指标包括每小时事件数、访客数量、用户代理、异常事件、汇总事件数、反向链接和最近事件。尽管有许多类型的HTML元素可以用作信标,但图像是最早使用的网络信标,也是本文的重点。

跟踪像素包括使用 1×1 像素图像利用图像加载调用将跟踪信息发送到后端服务器。这些信息不是使用传统的 JavaScript API 调用,而是通过图像 GET 请求的参数和 HTTP 标头本身发送的,因此可以将其包含在任何支持 HTML 的组件中,例如网页甚至电子邮件。

我们在帖子 “在 亚马逊云科技 中 构建无服务器跟踪像素解决方案” 中介绍了如何构建跟踪像素 。这篇文章介绍了如何使用围绕 亚马逊 API Gateway 亚马逊云科技 Lambda 构建的无服务器架构。如果您熟悉使用 API Gateway 构建的无服务器架构,那么我们建议您考虑该解决方案。这篇文章重点介绍使用 亚马逊云科技 边缘服务 亚马逊 CloudFront 建立像素跟踪。如果您已经在使用 CloudFront 作为内容分发网络 (CDN),则可以更轻松地完成此操作。使用 CloudFront 的客户可以将此功能添加到其现有的 CloudFront 发行版 中, 并最大限度地减少向其当前架构引入其他服务的次数。

架构概述

像素跟踪解决方案的架构始于 CloudFront,这是一项专为高性能和安全性而构建的 CDN 服务。1×1 像素图像存储在 亚马逊 Simple Storage Service (Amazon S3) 存储桶 中。CloudFront 缓存并提供来自 S3 存储桶的像素图像。创建 CloudFront 分配时,会指定 CloudFront 发送文件请求的 来源 。发行版可以使用几种不同的来源。使用亚马逊 S3 作为分配源可让 CloudFront 传输存储在 S3 存储桶中的文件。当发出获取像素图像的请求时,所识别的数据将随请求一起传递。有关此请求的信息由 CloudFront 实时日志 收集和存储。您可以使用实时日志来监控、分析向分配发出的请求并采取行动。要配置实时日志,请将采样率设置为 100% 以包括每个查看者请求,并指定要记录的字段,例如 c -ip 时间戳 cs-uri-query 等。采样率用于控制要接收的日志记录的百分比。对于像素跟踪用例,应设置 100%。然后,将实时日志配置附加到发行版的缓存行为中。

使用实时日志,您可以自定义收集的信息及其交付地点。实时日志与 Amazon Kinesis Data Streams 集成,允许 使用亚马逊 Kinesis Data Fi rehos e 将这些日志传输到通用 HTTP 端点。 Amazon Kinesis Data Streams 允许以稳健的方式摄取大量数据流。Kinesis 收集 Cloudfront 实时日志,以便进行进一步处理。 Kinesis 数据流 是一组 分片 ,默认情况下可存储 24 小时的记录,最多 365 天。每个分片最多每秒可提取 2 MB,每秒最多发出 1,000 条记录,总量不超过每秒 1 MB。例如,使用 30 个分片将以每秒 60 MB 的峰值提取,并以每秒 30 MB 的速度每秒发出 30,000 条记录。Kinesis 数据流是为一个消费者 Kinesis Data Firehose 配置的。

Amazon Kinesis Data Firehose 是一项流媒体ETL服务,用作将流数据加载到数据存储和分析工具的最简单方法。流式传输信息缓冲到 15 分钟,以便将信息整合为更少的文件以存储在数据湖中。这有助于最大限度地降低存储和未来查询的成本。数据湖有助于打破数据孤岛,最大限度地提高端到端的数据洞察力。Amazon S3 是构建数据湖的最佳场所,因为它具有无与伦比的耐久性、可用性、可扩展性、安全性、合规性和审计能力。数据目录用于提供存储在数据湖中的数据的搜索和查询功能。 亚马逊云科技 Glu e 是一项数据集成服务,可以更轻松地发现、准备、移动和集成数据。Glue 的组件之一是 G lue 数据目录 ,它是一个中央元数据存储库。 Glue Crawlers 用于自动创建目录的架构表。 Amazon Athena 开箱即用地与数据目录集成,用于分析编目跟踪数据。Athena 提供了一种简化、灵活的方法来分析其所在位置的千兆字节数据。

Architecture of pixel tracking solution using AWS Edge services with Amazon CloudFront.

成本优化

CloudFront 的数据传出 (DTO) 对于从任何 亚马逊云科技 来源提取原始数据都是免费的。使用 Amazon S3 托管像素图像可确保在获取图像时不产生任何费用。可以做出的进一步改进是添加聚合。聚合是指在 Kinesis 数据流记录中存储多条记录,它增加了每个 API 调用发送的记录数量并提高了生成器吞吐量。这是一项成本优化的改进,因为在本文发布时,Kinesis Data Firehouse 的摄取定价是分层的,每摄入 GB,以 5 KB 为增量计费。您可以使用 K inesis 创建器库 (KPL) 通过聚合将数据写入 到 Kinesis 数据流。KPL 允许您使用自动和可配置的重试逻辑写入一个或多个 Kinesis 流,并聚合用户记录以增加负载大小和吞吐量。使用此数据流作为 Kinesis Data Firehouse 交付流的源时,Kinesis Data Firehose 会在将记录传送到目的地之前对其进行分解。

KPL 目前仅作为围绕 C++ 可执行文件的 Java API 包装器提供,这可能不适用于所有部署环境。 亚马逊 Kinesis 聚合和解聚模块 支持 Java、Python 和 Node.js,它们允许您使用 Lambda 发布汇总的用户记录。CloudFront 实时日志由未汇总的 Kinesis 数据流提取。Lambda 与 Kinesis 数据流进行了本机集成。Kinesis 调用 Lambda 函数,该函数使用聚合模块来合并 Kinesis 记录。Lambda 函数从 最新的 分片迭代器读取,处理传入的记录,并将它们合并到 Kinesis 用户记录中。可以将 Lambda 函数配置为生成包含大约 5KB Kinesis 记录的用户记录。然后,Lambda 函数发布到另一个 Kinesis 数据流,并且该数据与使用 Kin esis 客户端库 (KCL) 或解聚模块 的使用者兼容。

Architecture of pixel tracking solution using AWS Edge services with Amazon CloudFront with aggregation optimization.

潜在用例

广告技术(广告技术)

广告技术交易服务器通过数据收集、跟踪机制和报告系统的组合来跟踪计费信标。Cloudfront 实时日志可以帮助您实时监控和分析传入的信标,提供有关广告效果的宝贵见解并实现快速决策。广告技术平台从各种来源(例如发布商、广告商和第三方提供商)收集数据,包括用户行为、广告曝光量、点击次数、转化率和其他相关指标。网页或移动应用程序中嵌入的 Cookie、像素、标签或 JavaScript 代码等跟踪机制用于监控用户与广告的互动。此外,当用户与广告互动时,信标会被发送到广告技术交换服务器。

个人博客

个人博客会像本文中介绍的那样利用像素跟踪,其原因与广告技术类似,但规模较小,个人层面更高。一个人可以跟踪特定博客主题的活动,也可以更深入地了解观众的地理位置,从而推动他们的内容选择。如果有更多的用户在移动平台上消费他们的内容,那么将博客定制为更简短的内容,以便随时随地轻松消化,也许更有意义。在规模较小的个人博客中,每一次曝光本质上都比大规模曝光量更有价值,使用像素跟踪从这些曝光量中提取所有可能的见解,可以成为增长的差异化因素。

电子商务

以最终吸引用户进行销售为目标,更好地了解用户在线模式和习惯的电子商务平台可以推动销售额的增长。头版没有推荐相关内容然后用户结束浏览会话吗?用户是否在销售周期的特定阶段放弃购物车?通过分析通过跟踪像素收集的信息来回答这些问题,可以为客户创造更加整合和简化的在线购物体验。

结论

在这篇文章中,我们展示了如何使用亚马逊云科技边缘服务将网络信标服务器替换为CloudFront。亚马逊云科技 边缘服务通过将计算、数据处理和存储移到更靠近最终用户设备的地方来提高性能。然后,CloudFront 利用 亚马逊云科技 分析服务 Kinesis Data Streams、Kinesis Data Firehose、亚马逊 S3、Glue Data Catalog 和 Athena 来洞察网站活动。该解决方案使用托管和无服务器服务,通过提供自动扩展和成本节约以及按使用量付费的计费模式,使其比传统的信标服务器更具优势。如果你有兴趣学习在边缘进行自定义的其他方法,请查看我们 关于使用边缘函数进行自定义的 文档

在本系列的第 2 部分中,我们将演示如何使用 CloudFront 实时日志实现像素跟踪解决方案。

Matthew de Anda Solutions Architect

马修·德安达

Matthew 是 亚马逊云科技 的高级解决方案架构师,主要与希望构建和扩展无服务器应用程序的初创企业和客户合作。在加入 亚马逊云科技 之前,Matthew 曾在创业领域担任工程负责人 10 年。他和家人住在德克萨斯州的奥斯汀,喜欢做饭,也喜欢向孩子介绍他在他们这个年龄看过的电影和电视节目。

Nick McCord Solutions Architect

尼克·麦考德

Nick 是 亚马逊云科技 的解决方案架构师,主要关注不同行业的初创客户。他定期与创始人和高管合作,就最佳实践提供技术指导,以推动高效的长期增长。在加入 亚马逊云科技 之前,他曾担任 DevOps 工程师和数据工程顾问,主要从事金融服务行业。他带着三只狗住在弗吉尼亚州,对早期的职业发展充满热情。

Rahul Nammireddy Solutions Architect

Rahul Nammireddy

Rahul 是 亚马逊云科技 的高级解决方案架构师,专注于指导数字原生客户完成云原生转型。他对人工智能/机器学习技术充满热情,与零售和电信等行业的客户合作。在他超过23年的职业生涯中,拉胡尔曾在从初创公司到上市组织的多家公司中担任过重要的技术领导职务,展示了他作为建筑商的专业知识并推动了创新。