全部產品
Search
文件中心

Direct Mail:如何開啟資料跟蹤功能?

更新時間:May 16, 2025

本文介紹如何開啟開啟和點擊資料跟蹤功能。

前置條件

1.選擇狀態為 驗證通過 的網域名稱所建立的發信地址發信。

2.埋點行為強依賴標籤。在設定郵件標籤,建立標籤,後續發信使用該標籤。

注意點

  1. 開啟和點擊行為資料會即時採集並輸出到控制台。

約束

  1. 發信必須使用郵件標籤,且郵件標籤需要真實存在。

  2. 僅支援內容為html的埋點,郵件內容需要含文檔主體元素,形如<body>您的發信內容</body>

  3. 對於點擊行為,待埋點的超連結需要以html引用的方式存在,即在html內容<html><body><a href="待埋點超連結"></body></html>這種形式,使用者待埋點超連結需要是互連網訪問的連結,首碼是http://或者https://的。點擊行為的實現原理是檢測到符合上述規範的待埋點連結,然後替換為我們採集服務的連結,待埋點連結會作為採集服務鏈結接的一個參數,發出去的郵件會帶上採集服務鏈結接。當收信人點選連結的時候,首先跳轉到我們的採集服務,採集服務對連結做合法性檢測、解析參數、行為搜集等,然後重新導向跳轉到您的埋點連結服務。

使用方式

1.控制台發信

1.在建立發送郵件- 任務時,並勾選 開啟 郵件跟蹤,會包含開啟和行為資料。

image

2.內容需符合上述約束

2.API或者SDK發信

  1. API或者SDK發信時,設定Tag為真實存在的Tag,ClickTrace設定為字串”1”。

  2. 利用setHtmlBody設定發信內容,內容需符合上述約束

3.SMTP發信

參照SMTP發信支援按照Tag埋點統計開啟郵件資料設定頭X-AliDM-Trace,其中Tag需要必須真實存在,OpenTrace對應值是字串"1",LinkTrace對應值是字串"1"。

說明

若需要排除某個連結的點擊統計,可以給內容html中的a標籤加上屬性 data-alidm-traceoff,來關閉這個連結的追蹤埋點。如:

<a href = "http://www.aliyun.com" data-alidm-traceoff>阿里雲</a>

限制

  1. smtp發信的郵件內文mime類型為”text/html;charset=UTF-8”,建議將內容傳輸編碼頭Content-Transfer-Encoding設定為”quoted-printable”。內容需符合上述約束

Python樣本:

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
msg = MIMEMultipart('alternative')
texthtml = MIMEText('''<html><body><a href="https://www.aliyun.com">郵件跟蹤</a></body></html>''', _subtype='html',
                    _charset='UTF-8')
if 'Content-Transfer-Encoding' in msg:
    # 如果已設定,則選擇第一個值進行替換(通常情況下,這個頭只會有一個值)
    msg.replace_header('Content-Transfer-Encoding', 'quoted-printable')
else:
    # 如果未設定,則添加
    msg['Content-Transfer-Encoding'] = 'quoted-printable'
msg.attach(texthtml)

SMTP 之 Python3.6 及以上調用樣本

Java樣本:

import javax.mail.internet.MimeBodyPart;
// 假設 msg 是你要操作的 MimeMessage 對象,這裡以 MimeBodyPart 為例進行示範

// 建立訊息主體部分
MimeBodyPart textPart = new MimeBodyPart();
textPart.setContent("<html><body><a href=\"https://www.aliyun.com\">郵件跟蹤</a></body></html>", "text/html; charset=UTF-8");
// 檢查是否已設定'Content-Transfer-Encoding'
String[] cte = textPart.getHeader("Content-Transfer-Encoding");
if (cte == null || cte.length == 0) {
    // 如果未設定,則添加
    textPart.addHeader("Content-Transfer-Encoding", "quoted-printable");
} else {
    // 如果已設定,則選擇第一個值進行替換(通常情況下,這個頭只會有一個值)
    textPart.setHeader("Content-Transfer-Encoding", "quoted-printable");
}

SMTP 之 Java 調用樣本