ข้ามไปยังเนื้อหา

การใช้เทมเพลต Liquid

เทมเพลต Liquid ขยายขีดความสามารถในการปรับแต่งเฉพาะบุคคลของ Pushwoosh ได้อย่างมีนัยสำคัญ โดยการนำตรรกะที่ซับซ้อนมาใช้เพิ่มเติมจากการใช้งานเนื้อหาไดนามิก ทั่วไป

การปรับแต่งข้อความเฉพาะบุคคลใน Pushwoosh นั้นใช้ แท็ก (ข้อมูลผู้ใช้) เป็นพื้นฐาน Pushwoosh มี แท็กเริ่มต้น และ แท็กที่กำหนดเอง ที่หลากหลาย คุณสามารถใช้แท็กเหล่านี้เพื่อระบุชื่อ, เมือง, ประวัติการซื้อของผู้ใช้ ฯลฯ เพื่อส่งข้อความที่เป็นส่วนตัวมากขึ้น ตัวอย่างเช่น: สวัสดี {First_name} ขอบคุณที่สั่งซื้อ {item}

เทมเพลต Liquid เพิ่มตรรกะให้กับเนื้อหาไดนามิกมากขึ้น ตัวอย่างเช่น หากแท็กการสมัครสมาชิกของผู้ใช้มีคำว่า “free” คุณสามารถส่งข้อความถึงพวกเขาว่า: “รับส่วนลด 10% ของคุณไปเลย”

การปรับเปลี่ยนเนื้อหาข้อความตาม ID, พฤติกรรม และความชอบของผู้ใช้เป็นวิธีที่มีประสิทธิภาพที่สุดในการเพิ่มความเกี่ยวข้องและได้รับผลลัพธ์ที่น่าประทับใจยิ่งขึ้นจากแคมเปญการตลาดของคุณ

ไวยากรณ์

Anchor link to

เทมเพลตเนื้อหาที่ใช้ Liquid by Shopify เป็นพื้นฐานนั้นใช้การผสมผสานระหว่าง แท็ก (tags), อ็อบเจกต์ (objects), และ ฟิลเตอร์ (filters) เพื่อโหลดเนื้อหาไดนามิก เทมเพลตเนื้อหาช่วยให้สามารถเข้าถึงตัวแปรบางอย่างจากภายในเทมเพลตและแสดงผลข้อมูลของตัวแปรเหล่านั้นได้โดยไม่จำเป็นต้องทราบอะไรเกี่ยวกับข้อมูลนั้นเลย

อ็อบเจกต์ (Objects)

Anchor link to

objects กำหนดเนื้อหาที่จะแสดงให้ผู้ใช้เห็น objects ควรถูกครอบด้วยวงเล็บปีกกาคู่: {{ }}

ตัวอย่างเช่น เมื่อปรับแต่งข้อความส่วนบุคคล ให้ส่ง {{Name}} ในเนื้อหาของข้อความเพื่อเพิ่มชื่อผู้ใช้ลงในเนื้อหาของข้อความ ชื่อของผู้ใช้ (ค่าแท็ก Name) จะมาแทนที่อ็อบเจกต์ Liquid ในข้อความที่ผู้ใช้จะเห็น

อินพุตผลลัพธ์
สวัสดี {{Name}}! เราดีใจที่คุณกลับมา!สวัสดีแอนนา! เราดีใจที่คุณกลับมา!

แท็ก (Tags)

Anchor link to

tags สร้างตรรกะและโฟลว์การควบคุมสำหรับเทมเพลต ตัวคั่นวงเล็บปีกกาและเครื่องหมายเปอร์เซ็นต์ {% และ %} รวมถึงข้อความที่อยู่ภายใน จะไม่สร้างผลลัพธ์ที่มองเห็นได้เมื่อเทมเพลตถูกเรนเดอร์ ซึ่งช่วยให้คุณสามารถกำหนดค่าตัวแปร สร้างเงื่อนไข หรือลูปได้โดยไม่ต้องแสดงตรรกะ Liquid ใดๆ ให้ผู้ใช้เห็น

ตัวอย่างเช่น การใช้แท็ก if คุณสามารถเปลี่ยนภาษาของข้อความตามภาษาที่ตั้งค่าไว้ในอุปกรณ์ของผู้ใช้:

อินพุต

{% if Language == 'fr' %}
Salut!
{% else %}
Hello!
{% endif %}

ผลลัพธ์ (fr): Salut!

ผลลัพธ์ (es): Hello!

โอเปอเรเตอร์ของแท็ก (Tags operators)

Anchor link to
โอเปอเรเตอร์คำอธิบาย
==เท่ากับ
!=ไม่เท่ากับ
>มากกว่า
<น้อยกว่า
>=มากกว่าหรือเท่ากับ
<=น้อยกว่าหรือเท่ากับ
oror ทางตรรกะ
andand ทางตรรกะ
containsตรวจสอบการมีอยู่ของสตริงย่อยภายในสตริงหรืออาร์เรย์ของสตริง

ฟิลเตอร์ (Filters)

Anchor link to

filters แก้ไขเอาต์พุตของอ็อบเจกต์หรือตัวแปร Liquid ฟิลเตอร์จะใช้ภายในวงเล็บปีกกาคู่ {{ }} และการกำหนดค่าตัวแปร และคั่นด้วยอักขระไปป์ | สามารถใช้ฟิลเตอร์หลายตัวกับเอาต์พุตเดียวได้ โดยจะถูกนำไปใช้จากซ้ายไปขวา

อินพุตผลลัพธ์
{{ Name | capitalize | prepend:"Hello " }}Hello Anna

Connected content

Anchor link to

Connected 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\" }}

ผลลัพธ์