You are currently viewing Tất tần tật về personalize email subject trong MC

Tất tần tật về personalize email subject trong MC

Đầu tiên nói về cá nhân hóa một thứ gì đó trong Marketing Cloud ta sẽ nghĩ ngay đến dùng ngôn ngữ AMPscript. Liệu bạn đã biết thứ tự mà AMPscript xử lý trong email như thế nào chưa?

Order of Operations

  1. *Preheader
  2. HTML body
  3. Text body
  4. Subject line

Theo thứ tự thì phần tiêu đề của email sẽ được xử lý sau cùng. Phần Preheader thì có khó hiểu một chút. Ở đây Gâu Đần sẽ dùng AMPscript để chứng minh Marketing Cloud sẽ xử lý theo thứ tự này.

Ta có dữ liệu mẫu sau:

Gaudan products DE

DealtypeDealCode
Televisiontv44
Ipadip44
Iphonesm44

Gaudan customers DE

CustomerKeyDealCode
duc123tv44
duc234ip44
duc345sm44

Mục đích của ta là sẽ khi gửi email đến “Gaudan customers” DE thì thông tin sẽ được cá nhân hóa  với sản phẩm tương ứng.

Đặt đoạn code sau ở body với các personalization strings như trong hình

Body:

%%[
set @DealCode = AttributeValue("DealCode")
set @product = Lookup("Gaudan products", "DealType", "DealCode", @DealCode)
set @subject = Concat("Check out our latest ", @product, " now!")
]%%

%%=v(@subject)=%%

Subject và Preheader cũng dùng %%=v(@subject)=%%

Kết quả khi render ra:

Ta thấy ở cả 3 biến ở Body, Subject, Pre-header đều ra cùng một kết quả, Body và Subject chung kết quả thì dễ hiểu bởi, đoạn code được bỏ vào body và theo thứ tự như mình đã đề cập ở ban đầu thì Subject được xử lý cuối cùng nên biến ở khu vực Subject render theo giá trị từ body. Vậy còn Preheader nó đứng đầu tiên cơ mà?

Để hiểu được điều này thì ta phải hiểu Pre-header là gì, nó đơn thuần là dòng đầu tiên mà email client quét được, được sử dụng trong html email, và để kiểm soát được preview text hiện trong Inbox. Có dạng kiểu như sau:

<div style="display: none; max-height: 0px; overflow: hidden;">
Preheader text goes here
</div>

Và trong hệ thống của MC khi mà ta đặt biến AMPscript trên UI thì nó sẽ chèn đoạn này vào sau body rồi mới ghi ngược lại trong email (đặt ở trên đầu), lý giải cho việc biến từ preheader lại được render từ body.

Hệ thống trên MC ghi chú cho phần pre-header như sau:

Giờ Gâu Đần thử assign giá trị cho biến AMPscript từ email template

Và đặt preheader trên UI bây giờ là Welcome %%=v(@firstname)=%%

Kết quả là trong preview mode, hệ thống đã render được giá trị như ta mong đợi

Vậy là để personalize pre-header mình phải vào template và chèn giá trị vào trước thẻ <body>?

Đây chỉ là ví dụ của Gâu Đần để cho thấy nó hoạt động thế nào thôi, thực tế vì email template có thể tái sử dụng trong nhiều email khác nhau nên chẳng ai lại đi assign một biến với giá trị vào email template cả. Nếu bạn muốn personalize pre-header thì hãy tận dụng cơ chế hoạt động của MC, đó là đặt biến và assign giá trị ngay trong body thì sẽ bớt nhọc hơn rất nhiều.

Personalize email subject trong MC

Nếu bạn đã hiểu về thứ tự hoạt động của email trong Marketing Cloud thì bạn cũng đoán ra được rồi đấy, để Personalize email subject ta sẽ để biến và assign giá trị ở block nằm trong body.

Chỉ cần một số điều cần chú ý sau đây:

SFMC sẽ không xử lý nested AMPscript trong email subject từ ngày 21/2/2023 trở đi, thật ra thì mình thấy họ đã áp dụng được hơn 2 tháng kể từ bài viết này rồi đấy.

Vậy nghĩa là sao? Chẳng hạn bạn có body và subject thế này

Body:

%%[
set @DealCode = AttributeValue("DealCode")
set @product = Lookup("Gaudan products", "DealType", "DealCode", @DealCode)
set @subject = "Check out our latest %%=V(@product)=%% now!"
]%%

Subject: %%=v(@subject)=%%

Thì output lại không render ra product được: Check out our latest %%=V(@product)=%% now!

Resolution

Dùng Concat function

Giải pháp là dùng Concat function như mình đã dùng ở ví dụ đầu:

%%[
set @DealCode = AttributeValue("DealCode")
set @product = Lookup("Gaudan products", "DealType", "DealCode", @DealCode)
set @subject = Concat("Check out our latest ", @product, " now!")
]%%

Dùng TreatAsContent function

Hoặc một cách khác nữa là dùng TreatAsContent function cho subject

Subject: %%=TreatAsContent(@subject)=%%

Kết quả sẽ render được trên subject

Dùng personalization string

Vậy nếu giá trị cần personalize cho email subject có sẵn trong data customer rồi thì sao?

Đây là trường hợp dễ nhất vì bạn chẳng còn gì để làm nữa, cứ bỏ thẳng personalization string trên subject là được. Chẳng hạn trong data customer có sẵn product cho từng customer rồi, lúc này subject line đơn thuần chỉ cần bỏ vào dòng này: Check out our latest %%product%% now!

Tham khảo thêm ở ĐÂY

Leave a Reply