SFMC中Hotel Reservation Markup在Gmail未正常展示问题排查
SFMC酒店预订标记未在Gmail中展示的排查要点
以下是你可能遗漏的关键检查项:
JSON-LD语法必须完全合规
动态变量为空值会破坏JSON结构(比如电话号码为空时,属性末尾的逗号会导致语法错误)。建议给所有可能为空的字段添加判断,或者用AMPscript的IIF函数处理空值,确保JSON格式有效。另外,用Google结构化数据测试工具验证最终渲染后的JSON代码。Gmail要求发件域名完成身份验证
Gmail仅对通过SPF、DKIM、DMARC验证的发件域名展示结构化标记,且邮件必须是真实交易类邮件(非营销邮件)。测试邮件若未通过域名验证,或被归类为营销邮件,标记不会生效。reservationStatus必须使用标准枚举值
schema.org规定reservationStatus必须是完整的URL格式枚举值,比如:- 已确认:
"http://schema.org/Confirmed" - 已取消:
"http://schema.org/Canceled" - 待确认:
"http://schema.org/Pending"
不能使用自定义字符串(如"Confirmed"或"已确认"),否则Gmail无法识别。
- 已确认:
脚本放置位置需正确
JSON-LD脚本应放在邮件<head>标签内,或<body>的最顶部,避免被其他HTML元素嵌套。建议直接写入script标签,无需用AMPscript拼接,减少转义错误:<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "LodgingReservation", "reservationNumber": "%%=v(@ReservationNumber)=%%", "reservationStatus": "%%=IIF(@reservation_Status == 'Confirmed', 'http://schema.org/Confirmed', 'http://schema.org/Pending')=%%", "underName": { "@type": "Person", "name": "%%=v(@contact_Name)=%%" }, "reservationFor": { "@type": "LodgingBusiness", "name": "%%=v(@ListingID)=%%", "address": { "@type": "PostalAddress", "streetAddress": "%%=v(@streetAddress)=%%", "addressLocality": "%%=v(@city)=%%", "addressRegion": "%%=v(@stateShort)=%%", "postalCode": "%%=v(@Zip)=%%", "addressCountry": "%%=v(@Country_Short)=%%" }, "telephone": "%%=IIF(Empty(@Guest_Contact_Phone), '', @Guest_Contact_Phone)=%%" }, "checkinDate": "%%=FormatDate(@checkindate, 'ISO')=%%", "checkoutDate": "%%=FormatDate(@checkoutdate, 'ISO')=%%" } </script>避免测试环境的限制
Gmail对测试邮件(如发送给自己的邮件)可能不会展示标记,建议使用真实收件地址,通过SFMC正式发送流程测试。同时,确保邮件内容符合交易邮件的特征(无营销话术,仅包含预订确认信息)。
内容的提问来源于stack exchange,提问作者Susan Bonee
相关产品推荐
相关产品推荐

