การใช้เทมเพลต Liquid
เทมเพลต Liquid ขยายขีดความสามารถในการปรับแต่งเฉพาะบุคคลของ Pushwoosh ได้อย่างมีนัยสำคัญ โดยการนำตรรกะที่ซับซ้อนมาใช้เพิ่มเติมจากการใช้งานเนื้อหาไดนามิก ทั่วไป
การปรับแต่งข้อความเฉพาะบุคคลใน Pushwoosh นั้นใช้ แท็ก (ข้อมูลผู้ใช้) เป็นพื้นฐาน Pushwoosh มี แท็กเริ่มต้น และ แท็กที่กำหนดเอง ที่หลากหลาย คุณสามารถใช้แท็กเหล่านี้เพื่อระบุชื่อ, เมือง, ประวัติการซื้อของผู้ใช้ ฯลฯ เพื่อส่งข้อความที่เป็นส่วนตัวมากขึ้น ตัวอย่างเช่น: สวัสดี {First_name} ขอบคุณที่สั่งซื้อ {item}
เทมเพลต Liquid เพิ่มตรรกะให้กับเนื้อหาไดนามิกมากขึ้น ตัวอย่างเช่น หากแท็กการสมัครสมาชิกของผู้ใช้มีคำว่า “free” คุณสามารถส่งข้อความถึงพวกเขาว่า: “รับส่วนลด 10% ของคุณไปเลย”
การปรับเปลี่ยนเนื้อหาข้อความตาม ID, พฤติกรรม และความชอบของผู้ใช้เป็นวิธีที่มีประสิทธิภาพที่สุดในการเพิ่มความเกี่ยวข้องและได้รับผลลัพธ์ที่น่าประทับใจยิ่งขึ้นจากแคมเปญการตลาดของคุณ
ไวยากรณ์
Anchor link toเทมเพลตเนื้อหาที่ใช้ Liquid by Shopify เป็นพื้นฐานนั้นใช้การผสมผสานระหว่าง แท็ก (tags), อ็อบเจกต์ (objects), และ ฟิลเตอร์ (filters) เพื่อโหลดเนื้อหาไดนามิก เทมเพลตเนื้อหาช่วยให้สามารถเข้าถึงตัวแปรบางอย่างจากภายในเทมเพลตและแสดงผลข้อมูลของตัวแปรเหล่านั้นได้โดยไม่จำเป็นต้องทราบอะไรเกี่ยวกับข้อมูลนั้นเลย
อ็อบเจกต์ (Objects)
Anchor link toobjects
กำหนดเนื้อหาที่จะแสดงให้ผู้ใช้เห็น objects
ควรถูกครอบด้วยวงเล็บปีกกาคู่: {{ }}
ตัวอย่างเช่น เมื่อปรับแต่งข้อความส่วนบุคคล ให้ส่ง {{Name}}
ในเนื้อหาของข้อความเพื่อเพิ่มชื่อผู้ใช้ลงในเนื้อหาของข้อความ ชื่อของผู้ใช้ (ค่าแท็ก Name) จะมาแทนที่อ็อบเจกต์ Liquid ในข้อความที่ผู้ใช้จะเห็น
อินพุต | ผลลัพธ์ |
---|---|
สวัสดี {{Name}}! เราดีใจที่คุณกลับมา! | สวัสดีแอนนา! เราดีใจที่คุณกลับมา! |
แท็ก (Tags)
Anchor link totags
สร้างตรรกะและโฟลว์การควบคุมสำหรับเทมเพลต ตัวคั่นวงเล็บปีกกาและเครื่องหมายเปอร์เซ็นต์ {%
และ %}
รวมถึงข้อความที่อยู่ภายใน จะไม่สร้างผลลัพธ์ที่มองเห็นได้เมื่อเทมเพลตถูกเรนเดอร์ ซึ่งช่วยให้คุณสามารถกำหนดค่าตัวแปร สร้างเงื่อนไข หรือลูปได้โดยไม่ต้องแสดงตรรกะ Liquid ใดๆ ให้ผู้ใช้เห็น
ตัวอย่างเช่น การใช้แท็ก if
คุณสามารถเปลี่ยนภาษาของข้อความตามภาษาที่ตั้งค่าไว้ในอุปกรณ์ของผู้ใช้:
อินพุต
{% if Language == 'fr' %}Salut!{% else %}Hello!{% endif %}
ผลลัพธ์ (fr): Salut!
ผลลัพธ์ (es): Hello!
โอเปอเรเตอร์ของแท็ก (Tags operators)
Anchor link toโอเปอเรเตอร์ | คำอธิบาย |
---|---|
== | เท่ากับ |
!= | ไม่เท่ากับ |
> | มากกว่า |
< | น้อยกว่า |
>= | มากกว่าหรือเท่ากับ |
<= | น้อยกว่าหรือเท่ากับ |
or | or ทางตรรกะ |
and | and ทางตรรกะ |
contains | ตรวจสอบการมีอยู่ของสตริงย่อยภายในสตริงหรืออาร์เรย์ของสตริง |
ฟิลเตอร์ (Filters)
Anchor link tofilters
แก้ไขเอาต์พุตของอ็อบเจกต์หรือตัวแปร Liquid ฟิลเตอร์จะใช้ภายในวงเล็บปีกกาคู่ {{ }}
และการกำหนดค่าตัวแปร และคั่นด้วยอักขระไปป์ |
สามารถใช้ฟิลเตอร์หลายตัวกับเอาต์พุตเดียวได้ โดยจะถูกนำไปใช้จากซ้ายไปขวา
อินพุต | ผลลัพธ์ |
---|---|
{{ Name | capitalize | prepend:"Hello " }} | Hello Anna |
Connected content
Anchor link toConnected Content เป็นฟีเจอร์ในเทมเพลต Liquid ที่ช่วยให้คุณสามารถดึงและใช้ข้อมูลจากแหล่งข้อมูลภายนอก เช่น เว็บเซอร์วิส ได้แบบไดนามิกโดยตรงภายในเทมเพลตอีเมลหรือการแจ้งเตือนแบบพุชของคุณ ฟีเจอร์นี้ช่วยให้สามารถปรับแต่งเนื้อหาเฉพาะบุคคลแบบเรียลไทม์ได้โดยการดึงข้อมูล JSON จาก URL ที่ระบุและบันทึกลงในตัวแปรที่สามารถนำไปใช้ในเนื้อหาของคุณได้
ไวยากรณ์
Anchor link to{% connected_content url :save result %}
- url: URL ที่จะดึงข้อมูล
- :save: คำสั่งที่ระบุตำแหน่งที่ควรบันทึก JSON ที่ดึงมา
- result: ชื่อของตัวแปรที่จะใช้เก็บ JSON ที่ดึงมา
เมื่อข้อมูลถูกดึงและจัดเก็บในตัวแปรที่ระบุแล้ว คุณสามารถใช้ตัวแปรนี้ในเนื้อหาของเทมเพลตของคุณได้
ตัวอย่างการใช้งาน
Anchor link toพิจารณาสถานการณ์ที่คุณมีบริการคูปองที่ส่งคืนการตอบกลับแบบ JSON พร้อมรหัสคูปอง โดยบริการจะส่งคืน JSON ต่อไปนี้:
{ "code": "coupon code"}
คุณสามารถดึงรหัสคูปองและนำไปใช้ในเทมเพลตของคุณได้ดังนี้:
{% connected_content https://example.com/couponwebservice.json :save result %}
Your coupon code is {% result.code %}
การใช้เทมเพลต Liquid ในข้อความที่ส่งผ่าน API
Anchor link toใช้ไวยากรณ์ Liquid ในคำขอ createMessage
ของคุณเพื่อใช้งานเทมเพลต Liquid เทมเพลตสามารถใช้ได้กับพารามิเตอร์ “content” ของคำขอ createMessage
รวมถึงพารามิเตอร์อื่นๆ ที่รองรับเนื้อหาไดนามิก โดยเฉพาะพารามิเตอร์เฉพาะแพลตฟอร์มอย่าง “title”, “subtitle”, และ “image”
การใช้เทมเพลตเนื้อหา คุณสามารถระบุข้อมูลในคำขอ API ของคุณ (โดยส่งพารามิเตอร์ “template_bindings”) หรือรับข้อมูลจากค่าแท็กที่จัดเก็บไว้ในอุปกรณ์ของผู้ใช้ (โดยไม่ใช้พารามิเตอร์ “template_bindings”) ด้วยวิธีนี้ คุณจะสามารถสร้างแคมเปญพุชที่อิงตามผู้ใช้ซึ่งมีเนื้อหาที่เกี่ยวข้องอย่างยิ่งได้
หากต้องการกำหนดตรรกะของเทมเพลตโดยใช้แท็กที่มีช่องว่างในชื่อ ให้ใช้เทคนิคต่อไปนี้:
ตัวอย่าง
Anchor link to{% capture my_tag %}{{My Tag}}{% endcapture %}{% if my_tag == 'value' %}Content to send in this case{% else %}Content to send otherwise{% endif %}
กรณีการใช้งานเทมเพลต Liquid
Anchor link toที่นี่คุณจะพบกับกรณีการใช้งานหลายอย่างที่เทมเพลต Liquid มีประโยชน์
พุชหลายภาษา
Anchor link toเทมเพลต Liquid ทำให้สามารถระบุภาษาที่ผู้ใช้ควรได้รับข้อความพุชของคุณได้อย่างชัดเจน ดูตัวอย่างง่ายๆ ของคำขอ API และข้อความที่ได้รับซึ่งขึ้นอยู่กับการเชื่อมโยงเทมเพลตที่ใช้ในคำขอ
อินพุต Liquid
{% if Language == 'es' %}¡Hola!{% else %}Hello!{% endif %}
คำขอ API
{ "request": { "application": "XXXXX-XXXXX", // รหัสแอป Pushwoosh "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จากแผงควบคุม Pushwoosh "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "{% raw %}{% if language == 'es' %}¡Hola!{% else %}hello!{% endif %}{% endraw %}", "template_bindings": { // ไม่บังคับ เมื่อไม่มีการส่ง template_bindings ในคำขอ จะใช้ค่าแท็กจากอุปกรณ์แทน "language" : "es" } } ] }}
ภาษาคือ ‘es’: ¡Hola!
ภาษาคือ ‘en’: Hello!
ข้อความแจ้งให้อัปเกรดการสมัครสมาชิก
Anchor link toกระตุ้นให้ลูกค้าของคุณอัปเกรดการสมัครสมาชิกตามแผนปัจจุบันของพวกเขา
อินพุต Liquid
{% if Subscription == 'Basic' %} Upgrade to Silver for getting more product features and 24/7 support.{% elsif Subscription == 'Silver' %} Upgrade to Gold for priority support and advanced features.{% else %} Please contact your manager to renew your subscription.{% endif %}
คำขอ API
{ "request": { "application": "XXXXX-XXXXX", // รหัสแอป Pushwoosh "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จากแผงควบคุม Pushwoosh "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "{% raw %}{% if Subscription == 'Basic' %}Upgrade to Silver for getting more product features and 24/7 support.{% elsif Subscription == 'Silver' %}Upgrade to Gold for priority support and advanced features.{% else %}Please contact your manager to renew your subscription. {% endif %}{% endraw %}", "template_bindings": { // ไม่บังคับ เมื่อไม่มีการส่ง template_bindings ในคำขอ จะใช้ค่าแท็กจากอุปกรณ์แทน "language" : "es" } } ] }}
ผลลัพธ์ |
---|
สำหรับผู้ใช้ที่มีแผนการสมัครสมาชิกแบบ Basic: อัปเกรดเป็น Silver เพื่อรับฟีเจอร์ผลิตภัณฑ์เพิ่มเติมและการสนับสนุนตลอด 24 ชั่วโมงทุกวัน |
สำหรับผู้ใช้ที่มีแผนการสมัครสมาชิกแบบ Silver: อัปเกรดเป็น Gold เพื่อรับการสนับสนุนระดับพรีเมียมและฟีเจอร์ขั้นสูง |
สำหรับผู้ใช้ที่มีแผนอื่นนอกเหนือจาก Basic หรือ Silver: โปรดติดต่อผู้จัดการของคุณเพื่อต่ออายุการสมัครสมาชิก |
แท็กรายการ (List tags)
Anchor link toเทมเพลตเนื้อหามีประโยชน์อย่างมากในการจัดการแท็กประเภทรายการ (List)
ขนาดของตัวแปร
Anchor link toหนึ่งในกรณีการใช้งานที่เป็นไปได้คือการส่งเนื้อหาที่แตกต่างกันไปขึ้นอยู่กับจำนวนค่าที่แท็กมีอยู่ ตัวอย่างเช่น คุณสามารถให้ส่วนลดที่แตกต่างกันแก่ลูกค้าที่มีพฤติกรรมต่างกัน สมมติว่าลูกค้ามีสินค้าบางอย่างใน WishList ของพวกเขา - กระตุ้นให้พวกเขาซื้อสินค้าด้วยส่วนลดที่เหมาะสมที่สุดโดยพิจารณาจากจำนวนสินค้าที่พวกเขากำลังจะซื้อ!
อินพุต Liquid
{% if WishList.size >= 3 %} Get 20% off your next purchase!{% elsif WishList.size == 2 %} Get a 10% discount on your next purchase!{% else %} Hey, take a look at new outwears!{% endif %}
คำขอ API
{ "request": { "application": "XXXXX-XXXXX", // รหัสแอป Pushwoosh "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จากแผงควบคุม Pushwoosh "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "{% raw %}{% if WishList.size >= 3 %}Get 20% off your next purchase!{% elsif WishList.size == 2 %}Get a 10% discount on your next purchase!{% else %}Hey, take a look at new outwears!{% endif %}{% endraw %}", "template_bindings": { // ไม่บังคับ เมื่อไม่มีการส่ง template_bindings ในคำขอ จะใช้ค่าแท็กจากอุปกรณ์แทน "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}
ขนาด WishList >= 3 | ![]() |
ขนาด WishList = 2 | ![]() |
ตัวแปรมี (contains)
Anchor link toอีกกรณีหนึ่งที่คุณอาจต้องจัดการคือการจัดการกับค่าของแท็กประเภทรายการ (List) และส่งเนื้อหาที่เกี่ยวข้องมากที่สุดโดยอิงจากค่าที่แท็กนั้นมีอยู่
อินพุต Liquid
{% if WishList contains 'Skinny Low Ankle Jeans' %} Get 20% off products in your wishlist!{% else %} Hey, take a look at the brand new Skinny Low Ankle Jeans!{% endif %}
คำขอ API
{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จากแผงควบคุม Pushwoosh "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "{% raw %}{% if WishList contains 'Skinny Low Ankle Jeans' %}Get 20% off your next purchase!{% else %}Hey, take a look at the brand new Skinny Low Ankle Jeans!{% endif %}{% endraw %}", "template_bindings": { // ไม่บังคับ เมื่อไม่มีการส่ง template_bindings ในคำขอ จะใช้ค่าแท็กจากอุปกรณ์แทน "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}
ตัวแปรมีข้อมูล | ![]() |
ตัวแปรไม่มีข้อมูล | ![]() |
พหูพจน์ (Plurals)
Anchor link toด้วยการใช้เทมเพลตเนื้อหา คุณสามารถปรับเนื้อหาข้อความตามพฤติกรรมของผู้ใช้ได้ ตัวอย่างเช่น คุณสามารถแก้ไขข้อความให้มีคำที่เป็นพหูพจน์ในกรณีที่แท็กประเภทรายการ (List) มีค่ามากกว่าหนึ่งค่า
อินพุต Liquid
Get 20% off item{% if WishList.size > 1 %} s in your WishList!{% else %} in your Wishlist!{% endif %}
คำขอ API
{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // โทเค็นการเข้าถึง API จากแผงควบคุม Pushwoosh "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "Get 20% off item{% raw %}{% if WishList.size > 1 %}s in your WishList!{% else %} in your Wishlist!{% endif %}{% endraw %}", "template_bindings": { // ไม่บังคับ เมื่อไม่มีการส่ง template_bindings ในคำขอ จะใช้ค่าแท็กจากอุปกรณ์แทน "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}
พหูพจน์ | ![]() |
เอกพจน์ | ![]() |
ไทม์โซน (Timezone)
Anchor link toเทมเพลตสำหรับไทม์โซนจะแปลงวันที่และเวลาตามไทม์โซนที่ระบุ
{{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}
{ "request" : { "auth" : "3H9bk8w3.....Acge2RbupTB", // โทเค็นการเข้าถึง API จากแผงควบคุม Pushwoosh "application" : "XXXXX-XXXXX", // รหัสแอป Pushwoosh "notifications" : [ // พารามิเตอร์ข้อความพุช { "content": "Current Date: {{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}", "template_bindings": { // ไม่บังคับ เมื่อไม่มีการส่ง template_bindings ในคำขอ จะใช้ค่าแท็กจากอุปกรณ์แทน "MyDate" : "2019-07-23 15:00", "MyTimezone" : "Asia/Dubai" } } ] }}
ผลลัพธ์
