การดำเนินการใน schema.org แสดงถึงคำกริยาหรือกิจกรรมที่สามารถดำเนินการกับข้อมูลที่มีโครงสร้างได้ ระบบรองรับการดำเนินการหลายประเภท และกำหนดการดำเนินการทั้งหมดได้ด้วย Structured Data ที่คล้ายกัน
การดำเนินการที่ควรทำ
หากเพิ่มมาร์กอัปไปยังเนื้อหาด้วยเอนทิตี schema.org คุณจะเพิ่มการดำเนินการ "ไปที่" สำหรับเอนทิตีเหล่านั้นได้ เช่น หากต้องการให้เอนทิตี EmailMessage
มีลิงก์ไปที่ ViewAction
ให้ป้อนข้อมูลพร็อพเพอร์ตี้ potentialAction
ของอีเมล ดังตัวอย่างต่อไปนี้
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://watch-movies.com/watch?movieId=abc123",
"name": "Watch movie"
},
"description": "Watch the 'Avengers' movie online"
}
</script>
Microdata
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
<link itemprop="target" href="https://watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="name" content="Watch movie"/>
</div>
<meta itemprop="description" content="Watch the 'Avengers' movie online"/>
</div>
โปรดทราบว่าไคลเอ็นต์อีเมลอื่นๆ ที่ไม่รองรับสคีมาในอีเมลจะไม่สนใจมาร์กอัปด้านบนโดยอัตโนมัติ
Deep Link บนอุปกรณ์เคลื่อนที่
การดำเนินการ "ไปที่" ยังลิงก์ไปยังเนื้อหาในแอปบนอุปกรณ์เคลื่อนที่ของระบบ
Android และ
iOS ได้โดยตรงด้วย หากต้องการทำ Deep Link ไปยัง
แอป ให้ใส่ target
URL เพิ่มเติมที่เข้ารหัสด้วยรูปแบบ android-app://
และ ios-app://
ตามที่แสดงด้านล่าง
JSON-LD
"target": [
“<web url>”,
“android-app://<android package name>/<scheme>/<host>/<path+query>”,
“ios-app://<App store ID>/<scheme>/<host><path+query>"
]
Microdata
<link itemprop="target" href="<web url>"/>
<link itemprop="target" href="android-app://<android package name>/<scheme>/<host>/<path+query>”/>
<link itemprop="target" href="ios-app://<App store ID>/<scheme>/<host>/<path+query>"/>
ขยายEmailMessage
ตัวอย่างก่อนหน้า
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"name": "Watch movie",
... information about the movie ...
"potentialAction": {
"@type": "ViewAction",
"target": [
"https://watch-movies.com/watch?movieId=abc123",
"android-app://com.watchmovies.app/http/watch-movies.com/watch?movieId=abc123",
"ios-app://12345/movieapp/watch-movies.com/watch?movieId=abc123"
]
}
}
</script>
Microdata
<div itemscope itemtype="http://schema.org/EmailMessage">
<meta itemprop="name" content="Watch movie"/>
... information about the movie ...
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
<meta itemprop="target" content="https://watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="target" content="android-app://com.watchmovies.android/http/watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="target" content="ios://12345/movieapp/watch-movies.com/watch?movieId=abc123"/>
</div>
</div>
หากผู้ใช้ไม่มีแอปของคุณ การดำเนินการจะนำผู้ใช้ไปยัง URL เว็บที่คุณระบุ
การกระทำในแอป
ระบบจะจัดการการดำเนินการในแอปใน Gmail โดยไม่ต้องส่งผู้ใช้ไปยังเว็บไซต์อื่น การดำเนินการในแอปจะประกาศเหมือนการดำเนินการไปที่ แต่มีข้อมูลเพิ่มเติมที่ช่วยให้ User-Agent (เช่น Gmail) จัดการการดำเนินการแบบอินไลน์ได้ง่าย
คุณต้องประกาศ HttpActionHandler
สำหรับการดำเนินการที่มีการกำหนดค่าที่เหมาะสมแทนที่จะประกาศการดำเนินการด้วย target
เช่น คุณสามารถเพิ่มปุ่มยืนยันในอีเมลที่กำหนดให้ผู้ใช้อนุมัติ ยืนยัน และรับทราบบางสิ่ง เมื่อผู้ใช้คลิกปุ่มแล้ว Google จะส่งคำขอ HTTP ไปยังบริการของคุณเพื่อบันทึกการยืนยัน ConfirmAction
จะโต้ตอบได้เพียงครั้งเดียว
ตัวอย่างต่อไปนี้จะเพิ่มปุ่ม ConfirmAction
ลงในอีเมลเกี่ยวกับรายงานค่าใช้จ่าย
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ConfirmAction",
"name": "Approve Expense",
"handler": {
"@type": "HttpActionHandler",
"url": "https://myexpenses.com/approve?expenseId=abc123"
}
},
"description": "Approval request for John's $10.13 expense for office supplies"
}
</script>
Microdata
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
<meta itemprop="name" content="Approve Expense"/>
<div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
<link itemprop="url" href="https://myexpenses.com/approve?expenseId=abc123"/>
</div>
</div>
<meta itemprop="description" content="Approval request for John's $10.13 expense for office supplies"/>
</div>
การดำเนินการที่กำลังจะหมดอายุ
ในหลายกรณี การดำเนินการจะเกี่ยวข้องในช่วงเวลาที่จำกัดเท่านั้น การดำเนินการที่เชื่อมโยงกับเอนทิตีที่มีวันที่ที่ทราบ เช่น การจองการเดินทาง จะหมดอายุโดยอัตโนมัติ Gmail จะไม่แสดงการดำเนินการหลังจากที่การเดินทางสิ้นสุดลง
นอกจากนี้ คุณยังเพิ่มวันหมดอายุลงในการดำเนินการอย่างชัดเจนได้ด้วย เช่น การดำเนินการเพื่อตัดคูปองหรือบันทึกรหัสข้อเสนออาจใช้ได้ในช่วงเวลาจำกัดเท่านั้น หากต้องการตั้งค่ากรอบเวลาที่จะแสดงการดำเนินการ ให้ตั้งค่าพร็อพเพอร์ตี้ startTime
และ endTime
ของการดำเนินการ
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ConfirmAction",
"name": "Save coupon",
"handler": {
"@type": "HttpActionHandler",
"url": "https://my-coupons.com/approve?couponId=abc123"
},
"startTime": "2015-06-01T12:00:00Z",
"endTime": "2015-06-05T12:00:00Z"
}
}
</script>
Microdata
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
<meta itemprop="name" content="Save coupon"/>
<div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
<link itemprop="url" href="https://my-coupons.com/approve?couponId=abc123"/>
</div>
<meta itemprop="startTime" content="2015-06-01T12:00:00Z" />
<meta itemprop="endTime" content="2015-06-05T12:00:00Z" />
</div>
</div>
อ่านเพิ่มเติม
ดูรายละเอียดเพิ่มเติมเกี่ยวกับ Actions ได้ที่
- การจัดการคำขอให้ดำเนินการ
- การรักษาความปลอดภัยของการดำเนินการ
- การทำ Deep Link ใน Android
- การทำ Deep Link ใน iOS