如何通过添加像素跟踪来跟踪各个收件人的阅读状态

问题描述 投票:0回答:2

我正在构建一个电子邮件应用程序,其功能是在发送电子邮件后查看已读收件人。例如:如果我向 P1 发送了一封电子邮件并抄送 P2 和 P3,那么当 P1 打开电子邮件时,我作为发件人应该能够看到 P1 阅读了他们的电子邮件。

为了实现这一目标,我使用 Individual Track Pixels 方法,其中我将一个像素添加到我发送的 html 中。但挑战在于,我无法向所有收件人发送唯一的跟踪链接,因为电子邮件的 HTML 部分对每个人来说都是相同的,而且我无法控制将哪封电子邮件发送给哪个收件人(此处为 P1、P2 和 P3) ).

email html-email analytics email-client
2个回答
0
投票

将收件人电子邮件/ID 作为参数包含在跟踪像素 URL 中

示例:

http://example.com/[email protected]

您的跟踪服务器可以从 URL 中提取收件人数据


0
投票

我假设您通过充分告知用户跟踪实践来遵守相关隐私法规。通常建议允许用户选择退出跟踪,并且仅将跟踪用于合法目的。

如果您这样做,那么您可能会考虑为每个收件人实施单独的跟踪像素(所谓的“Spy Pixel”):


收件人的独特跟踪链接:该解决方案应有助于为每个收件人生成唯一的跟踪链接或像素,即使电子邮件的 HTML 部分对于所有收件人都是相同的。它应该允许系统识别哪个收件人(P1、P2 或 P3)单独打开了电子邮件。

第 1 步:收件人的独特跟踪链接

1.1 生成唯一标识符

为每个收件人创建唯一的标识符。使用哈希算法(如

hashlib
)使用每个收件人的电子邮件地址和密钥生成唯一的哈希值。

def generate_unique_identifier(email_address):
    import hashlib
    secret_key = "your_secret_key"
    unique_identifier = hashlib.sha256((email_address + secret_key).encode()).hexdigest()
    return unique_identifier

1.2 创建个性化电子邮件

您不需要发送一封嵌入所有像素的电子邮件,而是需要向每个收件人发送个性化的电子邮件,并且仅在电子邮件的 HTML 内容中嵌入其特定的跟踪像素。

<!-- Email HTML for P1 -->
<img src="https://yourtrackingserver.com/track/UNIQUE_IDENTIFIER_FOR_P1" width="1" height="1" alt="" />

<!-- Email HTML for P2 -->
<img src="https://yourtrackingserver.com/track/UNIQUE_IDENTIFIER_FOR_P2" width="1" height="1" alt="" />

<!-- Email HTML for P3 -->
<img src="https://yourtrackingserver.com/track/UNIQUE_IDENTIFIER_FOR_P3" width="1" height="1" alt="" />

技术细节:解决方案应提供有关如何实施拟议系统的分步技术指导,包括必要的代码片段、配置或与现有电子邮件协议或平台的集成。

第 2 步:技术细节

2.1 设置服务器

使用后端框架(例如Flask)设置服务器来处理跟踪。配置路由以使用唯一标识符捕获 GET 请求。

from flask import Flask, request

app = Flask(__name__)

@app.route('/track/<unique_identifier>', methods=['GET'])
def track(unique_identifier):
    # Log the access to the database
    log_access(unique_identifier)
    return send_pixel_response()

2.2 记录访问

在跟踪路线内,在数据库中记录每次访问及其各自的唯一标识符和访问时间。

import datetime

def log_access(unique_identifier):
    access_time = datetime.datetime.now()
    # Log the access time and the unique identifier to a database
    log_to_database(unique_identifier, access_time)

有关更多详细信息,请参阅 Matthew Moisen 的“如何使用 Flask 登录到数据库”。

2.3 发送透明像素

为了保持收件人的无缝体验,服务器应返回 1x1 透明像素图像作为对 GET 请求的响应。

from flask import send_file

def send_pixel_response():
    # Return a 1x1 transparent pixel
    return send_file('path/to/transparent_pixel.png', mimetype='image/png')
© www.soinside.com 2019 - 2024. All rights reserved.