You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AMPscript在Salesforce中记录邮件打开时间至数据扩展?

解决方案:记录邮件打开时间到数据扩展

你的问题根源在于:邮件内的AMPscript默认在发送阶段执行,所以NOW()获取的是邮件发送时间,而非用户打开时间。要实现记录打开时间,需要利用「邮件打开触发的事件」或「像素追踪触发后端逻辑」,以下是两种可靠方案:

方案一:使用触发型自动化(官方推荐)

这是Marketing Cloud中记录打开事件的标准方式,依赖系统内置的_Open数据视图:

  1. 确保你的Limited Time Offer数据扩展已配置:

    • SubscriberKey:文本类型,设置为主键
    • FirstOpenTimestamp:日期时间类型
  2. 在Automation Studio创建触发型自动化:

    • 触发条件选择「Email Open」,并指定目标邮件
    • 添加「SQL Query」活动,编写查询语句将首次打开时间写入数据扩展:
      INSERT INTO [Limited Time Offer] (SubscriberKey, FirstOpenTimestamp)
      SELECT 
        o.SubscriberKey,
        o.EventDate AS FirstOpenTimestamp
      FROM _Open o
      LEFT JOIN [Limited Time Offer] lo ON o.SubscriberKey = lo.SubscriberKey
      WHERE 
        o.JobID = 12345 -- 替换为你的邮件JobID
        AND o.IsUnique = 1 -- 仅记录首次打开
        AND lo.FirstOpenTimestamp IS NULL -- 避免重复更新已记录的用户
      
    • 运行自动化,后续用户打开邮件时,系统会自动触发该逻辑更新数据扩展。

方案二:使用CloudPage隐形像素(自定义场景)

适合需要灵活扩展逻辑的场景,通过邮件中的隐形图片触发CloudPage的AMPscript:

  1. 创建CloudPage,添加以下代码:

    %%[
      VAR @SubscriberKey, @OpenTimestamp
      SET @SubscriberKey = RequestParameter("sk")
      SET @OpenTimestamp = NOW()
    
      // 仅当SubscriberKey存在且未记录过打开时间时更新
      IF NOT Empty(@SubscriberKey) THEN
        VAR @existingTimestamp
        SET @existingTimestamp = Lookup("Limited Time Offer", "FirstOpenTimestamp", "SubscriberKey", @SubscriberKey)
        IF Empty(@existingTimestamp) THEN
          UPSERTDE("Limited Time Offer", 1, "SubscriberKey", @SubscriberKey, "FirstOpenTimestamp", @OpenTimestamp)
        ENDIF
      ENDIF
    ]%%
    <!-- 1x1透明隐形像素 -->
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="1" height="1" border="0" alt="" />
    
  2. 在邮件中插入该CloudPage的链接作为隐形图片:

    <img src="https://your-cloudpage-domain.com/your-page-path?sk=%%=v(_SubscriberKey)=%%" 
         width="1" 
         height="1" 
         border="0" 
         alt="" 
         style="display: none; visibility: hidden;" />
    

    用户打开邮件时,浏览器会加载该像素,触发CloudPage中的AMPscript,记录当前打开时间。

注意事项

  • 方案一需确保目标邮件已开启「Open Tracking」(默认开启)
  • 方案二可能受邮件客户端图片拦截影响,导致部分打开行为无法被记录
  • 两种方案都加入了「仅记录首次打开」的逻辑,若需记录所有打开时间,可移除对应判断条件

内容的提问来源于stack exchange,提问作者Monowar Hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:33:24