การดำเนินการใน 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 กับแอป ให้ใส่ URL target
เพิ่มเติมที่เข้ารหัสด้วยรูปแบบ 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
ตัวอย่างเช่น คุณสามารถเพิ่มปุ่มยืนยันไปยังอีเมลที่กำหนดให้ผู้ใช้อนุมัติ ยืนยัน และรับทราบบางอย่าง เมื่อผู้ใช้คลิกปุ่ม ระบบจะส่งคำขอ HTTP จาก Google ไปยังบริการของคุณเพื่อบันทึกการยืนยัน โต้ตอบกับ 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>
อ่านเพิ่มเติม
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการดําเนินการได้ที่
- การจัดการคำขอการดำเนินการ
- การรักษาความปลอดภัยของการดำเนินการ
- การทำ Deep Link สำหรับ Android
- การทำ Deep Link สำหรับ iOS