Dữ liệu có cấu trúc cho Thao tác với sách (Book
)
Các thao tác với sách khiến người dùng tìm đến Google Tìm kiếm để khám phá sách và tác giả mới. Điều này cho phép người dùng có thể nhanh chóng mua hoặc mượn sách mà họ tìm thấy ngay từ kết quả trên Tìm kiếm.
Ví dụ: Khi tìm cuốn Mạng nhện của Charlotte, người dùng sẽ nhìn thấy kết quả tìm kiếm và có thể mua hoặc mượn cuốn sách đó thông qua các kết quả. Là nhà cung cấp sách, bạn có thể cung cấp nguồn cấp dữ liệu cho Google bằng mã schema dữ liệu có cấu trúc như dưới đây. Phần đặc tả của chúng tôi cung cấp thuộc tính ReadAction
để người dùng mua sách và BorrowAction
để người dùng mượn sách.
![Một thao tác với sách trong kết quả của Tìm kiếm](https://developers-dot-devsite-v2-prod.appspot.com/static/search/docs/images/books01.png?authuser=5&hl=vi)
Các thao tác đọc và mượn (được tích hợp trong các bảng tri thức) sẽ cho thấy các lựa chọn để mua hoặc mượn sách. Thông qua các đường liên kết bạn cung cấp, các thao tác đọc và mượn sẽ chuyển người dùng trực tiếp từ bảng tri thức và các nền tảng khác của Google tới một trang thông tin về sách trên trang web hoặc ứng dụng của bạn.
Thứ tự của các nhà cung cấp trong bảng tri thức được cá nhân hoá và thay đổi linh hoạt theo từng người dùng. Điều này có nghĩa là mỗi người dùng sẽ thấy một thứ tự riêng, và cùng một người dùng có thể thấy thứ tự khác nhau ở những thời điểm khác nhau. Có nhiều yếu tố ảnh hưởng tới một thứ tự nhất định. Ví dụ: nếu một người dùng thường nhấp vào đường liên kết của một nhà cung cấp nhất định trong bảng tri thức, thì nhà cung cấp đó có khả năng cao sẽ xuất hiện ở vị trí cao hơn. Không có cách nào để kiểm soát thứ tự này.
Bắt đầu
Để triển khai thành công các thao tác với Sách, bạn phải xây dựng nguồn cấp dữ liệu của mình theo đúng định nghĩa các loại dữ liệu có cấu trúc về thao tác với Sách. Nhưng trước hết, hãy tham khảo các phần sau:
- Nguyên tắc
- Tạo nguồn cấp dữ liệu
- Kiểm tra nguồn cấp dữ liệu bằng công cụ xác thực nguồn cấp dữ liệu
- Lưu trữ tệp nguồn cấp dữ liệu
- Gửi tệp nguồn cấp dữ liệu để xem xét
- Cập nhật nguồn cấp dữ liệu nếu cần
Nguyên tắc
Để đảm bảo sách của bạn có thể xuất hiện ổn định trên Tìm kiếm, bạn cần phải nắm chắc một số chi tiết quan trọng và khái niệm chính. Ngoài ra, nguồn cấp dữ liệu của bạn phải đáp ứng một số thông số kỹ thuật đối với các định dạng chuẩn.
Để giúp bạn làm điều đó, hãy tuân thủ những nguyên tắc nêu trong bài viết này, ngoài nguyên tắc chung về dữ liệu có cấu trúc và Yêu cầu cơ bản của Tìm kiếm. Những nguyên tắc này bao gồm:
- Tác phẩm và ấn bản
- Hệ thống thư viện và thư viện thành viên
- ISBN và các giá trị nhận dạng được hỗ trợ khác
- Đường liên kết
Tác phẩm và ấn bản
Xuyên suốt tài liệu này, chúng tôi sử dụng hai thuật ngữ riêng biệt khi nói về sách:
- Tác phẩm: Khái niệm trừu tượng về một cuốn sách. Cụ thể, siêu dữ liệu như tiêu đề, tác giả và ngôn ngữ gốc là các thuộc tính của một tác phẩm.
- Ấn bản: Một cuốn sách hữu hình. Cụ thể, siêu dữ liệu như năm xuất bản, tên ấn bản và Mã số tiêu chuẩn quốc tế cho sách (ISBN) là các thuộc tính của ấn bản.
Ví dụ: Mạng nhện của Charlotte là một tác phẩm, nhưng mọi phiên bản của sách đều là ấn bản. Trong trường hợp này, tác phẩm Mạng nhện của Charlotte có thể có ấn bản thứ nhất, ấn bản thứ hai, ấn bản rút gọn, ấn bản dịch sang tiếng Pháp, v.v.
Trong nguồn cấp dữ liệu, sự khác biệt này đặc biệt quan trọng nhưng lại khó nhận ra. Có hai thực thể Book
:
Book
(Work
) là thực thểBook
"cấp cao nhất":workExample
là một thuộc tính củaWork
và chỉ định một phiên bản duy nhất củaBook
(Edition
).- Phải có ít nhất một
workExample
cho mỗiWork
.
Book
(Edition
) là thực thểBook
"cấp thấp hơn" .
Hãy nhớ rằng một tác phẩm có thể có nhiều ấn bản. Bạn nên tạo nhiều nhóm nhất có thể cho các ấn bản này. Điều này giúp các hệ thống của Google tận dụng tất cả thông tin liên quan về một cuốn sách và trình bày cuốn sách đó trong Tìm kiếm. Nếu cần thiết, bạn có thể tách các ấn bản này thành nhiều hồ sơ tác phẩm, nhưng mỗi hồ sơ tác phẩm phải có:
@id
riêng biệt.- Ít nhất một ấn bản có ISBN hoặc giá trị nhận dạng được hỗ trợ khác.
Hệ thống thư viện và thư viện thành viên
Library entity
là loại thực thể Library
"cấp cao nhất". Đây là một hệ thống trừu tượng bao gồm một thực thể LibrarySystem
và từng thực thể Library (member)
"cấp thấp hơn" của hệ thống thư viện đó.
Thực thể LibrarySystem
là khái niệm tượng trưng cho mạng lưới cộng tác của các thư viện thành viên. Ví dụ: Thư viện công cộng Austin có thể được coi là một thực thể
LibrarySystem
. Trang web của Thư viện công cộng
Austin tự giới thiệu là hệ thống thư viện công cộng phục vụ vùng Austin,
Texas. Hệ thống này bao gồm 20 thư viện liên kết, hay còn gọi là thư viện thành viên.
Mỗi thực thể LibrarySystem
yêu cầu ít nhất một thực thể Library (member)
,
kể cả khi thư viện đó không thuộc hệ thống thư viện nào trong thực tế. Trong trường hợp này, để phục vụ mục đích triển khai thao tác với Sách, thư viện đó sẽ là thư viện thành viên duy nhất trong hệ thống thư viện. Để phục vụ mục đích triển khai thao tác với Sách, khác với một hệ thống thư viện, thư viện thành viên không phải là thực thể trừu tượng nên sẽ có địa chỉ thực.
Ngược lại, mọi thực thể Library (member)
phải thuộc ít nhất một thực thể
LibrarySystem
.
ISBN và các giá trị nhận dạng được hỗ trợ khác
ISBN là tín hiệu đối chiếu chính khi Google Tìm kiếm so khớp dữ liệu trong nguồn cấp của bạn với dữ liệu của Google. Bạn phải cung cấp ISBN hoặc các giá trị nhận dạng khác mà hệ thống hỗ trợ cho mọi cuốn sách bạn muốn đưa vào kết quả trên Tìm kiếm. Nếu không có những giá trị này, chúng tôi có thể sẽ không so khớp được sách của bạn và kết quả là những cuốn sách đó sẽ không xuất hiện.
Google Tìm kiếm ưu tiên ISBN-13, nhưng bạn cũng có thể cung cấp các giá trị nhận dạng sau:
- Mã số của Trung tâm Thư viện Máy tính Trực tuyến (OCLC)
- Mã số kiểm soát của Thư viện Quốc hội (LCCN)
- Mã điện tử JP
Đường liên kết
Để đảm bảo người dùng có trải nghiệm tốt nhất khi tìm sách của bạn, đường liên kết trong nguồn cấp dữ liệu của bạn phải tuân thủ những nguyên tắc sau:
- Nếu bạn có các trang trùng lặp chứa nội dung giống nhau, thì đường liên kết đó phải là URL chính tắc chứa tên sách và thông tin khác về sách.
- Sau khi người dùng nhấp vào đường liên kết dẫn tới thao tác đọc hoặc mượn, đường liên kết phải chuyển người dùng tới một trang hỗ trợ việc mua hoặc mượn sách trực tiếp. Cụ thể là đừng dùng đường liên kết dẫn tới thao tác để chuyển người dùng đến các trang yêu cầu phải nhấp vào các đường liên kết khác thì mới mua hoặc mượn được nội dung. Ví dụ: đừng chuyển người dùng tới trang kết quả tìm kiếm hoặc trang tóm tắt sản phẩm.
Tạo nguồn cấp dữ liệu
Nếu trang web của bạn bán sách cho người dùng, thì bạn phải tải nguồn cấp dữ liệu
Book
lên. Hãy liên hệ với đại diện của Google
và xác minh thông tin về cách thức và vị trí tải nguồn cấp dữ liệu lên.
Nếu trang web của bạn cho người dùng mượn sách, bạn phải tải hai nguồn cấp dữ liệu riêng biệt lên: nguồn cấp dữ liệu Book
và nguồn cấp dữ liệu Library
. Hãy liên hệ với người đại diện của Google và xác nhận thông tin về cách và vị trí bạn cần tải nguồn cấp dữ liệu lên.
Tuân thủ yêu cầu về kích thước, số lượng và định dạng của nguồn cấp dữ liệu
Các yêu cầu này bao gồm:
- Yêu cầu về kích thước tệp nguồn cấp dữ liệu:
- Kích thước của tệp nguồn cấp dữ liệu chưa nén phải nhỏ hơn 1 GB.
- Kích thước của tệp nguồn cấp dữ liệu cần nén phải nhỏ hơn 1 GB. Nếu tệp nguồn cấp dữ liệu chưa nén của bạn lớn hơn 1 GB, bạn phải chia tệp nguồn cấp dữ liệu chưa nén đó thành nhiều tệp nhỏ.
- Bạn có thể nén các tệp nguồn cấp dữ liệu. Các tệp này phải có định dạng zip, gz, tar, tar.gz, JAR, ar, arj, cpio hoặc định dạng tệp lưu trữ dump.
- Nếu có nhiều tệp nguồn cấp dữ liệu, bạn có thể tải ngay các tệp đó lên, hoặc cũng có thể gộp vào một tệp chỉ mục sơ đồ trang web nếu muốn.
- Các tệp nguồn cấp dữ liệu đơn lẻ phải có đuôi tệp là
.json
.
Tuân thủ yêu cầu về nội dung nguồn cấp dữ liệu
Hãy đặc biệt lưu ý những yêu cầu sau đây về nội dung nguồn cấp dữ liệu mà bạn phải tuân thủ:
- Nguồn cấp dữ liệu không được chứa các thực thể cũ. Các thực thể cũ là các thực thể có
availabilityEnds
mang giá trị là một ngày trong quá khứ hoặc các thực thể mà trang web của bạn đã ngừng cung cấp. - Tất cả đường liên kết sâu (chẳng hạn như
urlTemplate
) và tất cả URL (chẳng hạn nhưurl
) mà bạn đưa vào nguồn cấp dữ liệu phải là URL chính thức. Đừng sử dụng URL kiểm soát chất lượng, URL phát triển hoặc các URL chưa chính thức. - Tất cả URL, chẳng hạn như
url
, đều phải là URL chính tắc. - Mỗi thực thể trong nguồn cấp dữ liệu của bạn phải chỉ định các thuộc tính sau:
- Một giá trị nhận dạng duy nhất:
@id
- Một URL duy nhất:
url
- Một đường liên kết sâu duy nhất:
urlTemplate
- Một giá trị nhận dạng duy nhất:
Kiểm tra nguồn cấp dữ liệu bằng công cụ xác thực nguồn cấp dữ liệu
Bạn nên thực hiện các bước khắc phục sự cố sau đây để giải quyết các lỗi và cảnh báo thường gặp trên công cụ xác thực nguồn cấp dữ liệu:
-
Đảm bảo rằng bạn đã chọn đúng lựa chọn trong trường Validate on (Xác thực cho). Chọn Books Action (Thao tác với sách) cho thực thể
Book
. - Xác minh rằng giá trị của
@type
đúng chính tả. - Đảm bảo rằng giá trị của
@context
được thiết lập đúng cách. Thiết lập"@context": "https://schema.org"
cho cảReadAction
vàBorrowAction
.
Lưu trữ tệp nguồn cấp dữ liệu
Khi tệp nguồn cấp dữ liệu của bạn đã sẵn sàng, hãy lưu trữ tệp tại một vị trí an toàn. Google thường xuyên tìm nạp nguồn cấp dữ liệu để đảm bảo rằng nội dung của bạn được cập nhật.
Phương thức lưu trữ
Google hỗ trợ các phương thức lưu trữ nguồn cấp dữ liệu sau đây:
Lưu trữ | Hỗ trợ việc xác thực | |
---|---|---|
Google Cloud Storage | Quyền Storage Object Viewer (Xem đối tượng lưu trữ) | |
HTTPS | Tên người dùng + mật khẩu hoặc chứng chỉ máy khách HTTP | |
Giao thức truyền tệp bảo mật (SFTP) | Mật khẩu, Khoá + cụm từ, hoặc cả hai | |
AWS S3 | Mã khoá + khoá truy cập |
Gửi tệp nguồn cấp dữ liệu để xem xét
Để nội dung của bạn xuất hiện trên Google Tìm kiếm, nhóm hỗ trợ Google sẽ xem xét chất lượng của các đường liên kết sâu trong nguồn cấp dữ liệu của bạn. Bạn nên tự kiểm tra một số đường liên kết sâu để xác nhận xem các đường liên kết này có chuyển hướng người dùng tới một trang cho phép họ mua hoặc mượn sách không.
Để yêu cầu xem xét nguồn cấp dữ liệu của bạn, hãy cung cấp các thông tin sau:
- Vị trí lưu trữ: URL của tệp nguồn cấp dữ liệu.
- Thông tin xác thực máy chủ lưu trữ, nếu có: Thông tin xác thực cho phép Google lấy tệp nguồn cấp dữ liệu từ vị trí máy chủ lưu trữ của bạn.
Cập nhật nguồn cấp dữ liệu nếu cần
Bạn nên cập nhật nguồn cấp dữ liệu hằng ngày, nhưng sau cùng thì việc này vẫn phụ thuộc vào tần suất thay đổi của danh mục sách. Hãy lưu ý các điều kiện và mẹo sau:
- Google Tìm kiếm không hỗ trợ cập nhật theo thời gian thực.
- Google Tìm kiếm sẽ tìm nạp nguồn cấp dữ liệu của bạn một lần mỗi ngày và thường tiến hành lập chỉ mục nội dung trong vòng hai ngày.
- Nếu bạn dự định thay đổi thời gian mà người dùng có thể đọc một ấn bản, hãy dùng
availabilityStarts
vàavailabilityEnds
để đặt ngày chính xác. Nếu một thực thể không còn tồn tại, hãy xoá hoàn toàn thực thể đó
Định nghĩa các loại dữ liệu có cấu trúc
Bạn phải sử dụng các thuộc tính bắt buộc mà chúng tôi liệt kê trong bài viết này để nội dung của bạn đủ điều kiện xuất hiện trong kết quả tìm kiếm có cấu trúc. Bạn cũng có thể thêm các thuộc tính mà chúng tôi khuyên dùng để bổ sung thông tin về nội dung nhằm mang lại trải nghiệm tốt hơn cho người dùng.
Thực thể DataFeed
Mỗi tệp nguồn cấp dữ liệu schema.org bạn gửi đến Google phải chứa một thực thể duy nhất của DataFeed
ở cấp độ gốc. Tất cả thực thể Book
và Library
phải được liệt kê trong trường dataFeedElement
của thực thể DataFeed
.
Sau đây là các tài sản được Google hỗ trợ:
Thuộc tính bắt buộc | |
---|---|
@context |
Đặt thành |
@type |
Đặt thành |
dataFeedElement |
Đặt thành một thực thể Ví dụ về cách sử dụng trong nguồn cấp dữ liệu { "@context": "https://schema.org", "@type": "DataFeed", "dataFeedElement": [ { "@context": "https://schema.org", "@type": "Book", "@id": "https://example.com/work/the_catcher_in_the_rye", "url": "https://example.com/work/the_catcher_in_the_rye", "name": "The Catcher in the Rye", "author": { "@type": "Person", "name": "J.D. Salinger" }, "sameAs": "https://en.wikipedia.org/wiki/The_Catcher_in_the_Rye", "workExample": [ { "@type": "Book", "@id": "https://example.com/edition/the_catcher_in_the_rye_paperback", "isbn": "9787543321724", "bookEdition": "Mass Market Paperback", "bookFormat": "https://schema.org/Paperback", "inLanguage": "en", ... }, ... ] } ], "dateModified": "2018-09-10T13:58:26.892Z" } Ví dụ về cách sử dụng trong nguồn cấp dữ liệu { "@context": "https://schema.org", "@type": "DataFeed", "dataFeedElement": [ { "@context": "https://schema.org", "@type": "LibrarySystem", "@id": "https://example.com/library-systems/100", "name": "Santa Clara County Library District", "additionalProperty": [ { "@type": "PropertyValue", "name": "librarytype", "value": "public" } ], ... }, ... ], "dateModified": "2018-09-10T13:58:26.892Z" } |
dateModified |
Ngày và giờ cập nhật nguồn cấp dữ liệu gần đây nhất, ở định dạng ISO 8601. |
Thực thể Book
Bạn có thể xem định nghĩa đầy đủ về Book
tại schema.org/Book. Tuy vậy, bạn chỉ cần chú ý đến những thuộc tính sau. Bạn phải xác định các thuộc tính bắt buộc cho mọi cuốn sách bạn chọn đưa vào nguồn cấp dữ liệu của mình. Bạn cũng có thể xác định các thuộc tính mà chúng tôi khuyên dùng để thêm thông tin về nội dung nhằm mang lại trải nghiệm tốt hơn cho người dùng.
Book
(Work
)
Thực thể Book
này là loại thực thể cấp cao nhất và đại diện cho một tác phẩm.
Sau đây là các tài sản được Google hỗ trợ:
Thuộc tính bắt buộc | |
---|---|
@context |
Đặt thành |
@id |
Một giá trị nhận dạng duy nhất trên toàn cầu cho sách ở định dạng URL. Giá trị này phải dành riêng cho tổ chức của bạn. Giá trị này cũng phải ổn định và không thay đổi theo thời gian. Bạn nên sử dụng định dạng URL (mặc dù định dạng này là không bắt buộc). URL này không cần phải là một đường liên kết đang hoạt động. Miền mà bạn dùng cho giá trị |
@type |
Đặt thành |
author |
(Các) tác giả của cuốn sách. |
name |
Tên sách. |
url |
URL trên trang web của bạn nơi có thông tin giới thiệu hoặc mô tả về cuốn sách. Liên kết này giúp điều chỉnh nội dung trong nguồn cấp dữ liệu của bạn sao cho khớp với nội dung trong cơ sở dữ liệu của Google. URL này có thể giống như Đối với trang đích trong thực tế, Google Tìm kiếm sử dụng URL được cung cấp trong |
workExample |
(Các) ấn bản của tác phẩm. |
Thuộc tính nên có | |
---|---|
sameAs |
URL của một trang tham chiếu giúp xác định tác phẩm. Ví dụ: một trang của Wikipedia, Wikidata, VIAF hoặc Thư viện Quốc hội Hoa Kỳ cho cuốn sách đó. |
Book
(Edition
)
Thuộc tính workExample
sử dụng thực thể Book
này. Thuộc tính này đại diện cho một ấn bản của tác phẩm.
Sau đây là các tài sản được Google hỗ trợ:
Thuộc tính bắt buộc | |
---|---|
@id |
Một giá trị nhận dạng duy nhất trên toàn cầu cho sách ở định dạng URL. Giá trị này phải dành riêng cho tổ chức của bạn. Giá trị này cũng phải ổn định và không thay đổi theo thời gian. Bạn nên sử dụng định dạng URL (mặc dù định dạng này là không bắt buộc). URL này không cần phải là một đường liên kết đang hoạt động. Miền mà bạn dùng cho giá trị |
@type |
Đặt thành |
bookFormat |
Định dạng của ấn bản. Thuộc tính này phải có một trong các giá trị sau:
|
inLanguage |
Ngôn ngữ chính của nội dung trong ấn bản. Sử dụng một mã gồm hai ký tự trong danh sách mã ISO 639-1 alpha-2. |
isbn |
Giá trị ISBN-13 của ấn bản. Nếu bạn có ISBN-10, hãy chuyển đổi giá trị đó thành ISBN-13. |
potentialAction |
Thao tác cần kích hoạt để người dùng mua hoặc tải sách xuống. Để biết thêm chi tiết, hãy tham khảo |
Thuộc tính nên có | |
---|---|
author |
(Các) tác giả của ấn bản. |
bookEdition |
Thông tin về ấn bản của cuốn sách. Ví dụ: |
datePublished |
Ngày xuất bản ấn bản ở định dạng YYYY-MM-DD hoặc YYYY. Đây có thể là một ngày cụ thể hoặc chỉ là một năm cụ thể. |
identifier |
Giá trị nhận dạng bên ngoài hoặc mã khác giúp nhận dạng ấn bản này. Google cho phép sử dụng nhiều giá trị nhận dạng. Để biết thêm chi tiết, hãy tham khảo
Bạn có thể dùng lại thuộc tính này. |
name |
Tên ấn bản. Chỉ sử dụng khi tên ấn bản khác với tên tác phẩm. |
sameAs |
URL của một trang web tham khảo nêu rõ thông tin định danh ấn bản đó. Ví dụ: trang Wikipedia cho ấn bản cụ thể này. Không sử dụng lại thuộc tính |
url |
URL trên trang web của bạn nơi có thông tin giới thiệu hoặc mô tả về ấn bản. URL này có thể giống như |
Ví dụ về Book
(Edition
):
"workExample": { "@type": "Book", "@id": "https://example.com/book/100", "inLanguage": "en", "isbn": "9787543321724", "bookEdition": "20 Anniversary Edition", "datePublished": "2000-02-26", "bookFormat": "https://schema.org/Hardcover", "potentialAction": {...} }
Ví dụ: Book
(Edition
) với nhiều thuộc tính workExample
:
"workExample": [ { "@type": "Book", "@id": "https://example.com/book/200", "inLanguage": "zh", "isbn": "9787543321721", "bookEdition": "2nd Edition", "bookFormat": "https://schema.org/Hardcover", "potentialAction": {...} }, { "@type": "Book", "@id": "https://example.com/book/300", "inLanguage": "zh", "isbn": "9787543321722", "bookEdition": "1st Edition", "bookFormat": "https://schema.org/EBook", "potentialAction": {...} } ]
Person
hoặc Organization
(author
)
Thuộc tính author
của sách sử dụng thực thể Person
hoặc Organization
.
Thuộc tính bắt buộc | |
---|---|
@type |
Đặt thành |
name |
Tên của người hoặc tổ chức đó. |
Thuộc tính nên có | |
---|---|
sameAs |
URL của một trang web tham khảo nêu rõ thông tin định danh người hoặc tổ chức đó. Ví dụ: trang Wikipedia cho người hoặc tổ chức đó. |
Ví dụ author
:
"author": { "@type": "Person", "name": "William Shakespeare" }
Ví dụ về nhiều thuộc tính author
:
"author": [ { "@type": "Person", "name": "William Shakespeare" }, { "@type": "Person", "name": "Victor Hugo", "sameAs": "https://en.wikipedia.org/wiki/Victor_Hugo" } ]
PropertyValue (giá trị nhận dạng)
Thuộc tính identifier
của Edition
sử dụng thực thể PropertyValue
.
Thuộc tính bắt buộc | |
---|---|
@type |
Đặt thành |
propertyID |
Loại giá trị nhận dạng. Như đã mô tả trong phần ISBN và các giá trị nhận dạng được hỗ trợ khác, giá trị nhận dạng phải là một trong hai thuộc tính sau:
|
value |
Giá trị nhận dạng. Giá trị nhận dạng bên ngoài có chức năng xác định rõ ràng ấn bản này. Hãy xoá tất cả các tiền tố không phải dạng số của giá trị nhận dạng bên ngoài. |
Ví dụ identifier
:
"identifier": { "@type": "PropertyValue", "propertyID": "OCLC_NUMBER", "value": "110123456" }
Ví dụ về nhiều thuộc tính identifier
:
"identifier": [ { "@type": "PropertyValue", "propertyID": "OCLC_NUMBER", "value": "110123456" }, { "@type": "PropertyValue", "propertyID": "LCCN", "value": "220123456" },{ "@type": "PropertyValue", "propertyID": "JP_E-CODE", "value": "12345678901234567890" }]
Ví dụ về nguồn cấp dữ liệu ReadAction
Book
ở định dạng JSON
{ "@context": "https://schema.org", "@type": "DataFeed", "dataFeedElement": [ { "@context": "https://schema.org", "@type": "Book", "@id": "https://example.com/work/the_catcher_in_the_rye", "url": "https://example.com/work/the_catcher_in_the_rye", "name": "The Catcher in the Rye", "author": { "@type": "Person", "name": "J.D. Salinger" }, "sameAs": "https://en.wikipedia.org/wiki/The_Catcher_in_the_Rye", "workExample": [ { "@type": "Book", "@id": "https://example.com/edition/the_catcher_in_the_rye_paperback", "isbn": "9787543321724", "bookEdition": "Mass Market Paperback", "bookFormat": "https://schema.org/Paperback", "inLanguage": "en", "url": "https://example.com/edition/the_catcher_in_the_rye_paperback", "datePublished": "1991-05-01", "identifier": { "@type": "PropertyValue", "propertyID": "OCLC_NUMBER", "value": "1057320822" }, "potentialAction": { "@type": "ReadAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://example.com/store/9787543321724", "actionPlatform": [ "https://schema.org/DesktopWebPlatform", "https://schema.org/AndroidPlatform", "https://schema.org/IOSPlatform" ] }, "expectsAcceptanceOf": { "@type": "Offer", "category": "purchase", "price": 6.99, "priceCurrency": "USD", "availabilityStarts": "2020-01-01T11:0:00-04:00", "availabilityEnds": "2050-06-30T23:59:00-04:00", "eligibleRegion": { "@type": "Country", "name": "US" } } } }, { "@type": "Book", "@id": "https://example.com/edition/the_catcher_in_the_rye_hardcover", "isbn": "9780316769532", "bookEdition": "Hardcover", "bookFormat": "https://schema.org/Hardcover", "inLanguage": "en", "url": "https://example.com/edition/the_catcher_in_the_rye_hardcover", "datePublished": "1951-07-16", "potentialAction": { "@type": "ReadAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://example.com/store/9780316769532", "actionPlatform": [ "https://schema.org/DesktopWebPlatform", "https://schema.org/AndroidPlatform", "https://schema.org/IOSPlatform" ] }, "expectsAcceptanceOf": [ { "@type": "Offer", "category": "nologinrequired", "availabilityStarts": "2020-01-01T11:0:00-04:00", "availabilityEnds": "2050-06-30T23:59:00-04:00", "eligibleRegion": [ { "@type": "Country", "name": "US" }, { "@type": "Country", "name": "GB" } ] }, { "@type": "Offer", "category": "Subscription", "availabilityStarts": "2020-01-01T11:0:00-04:00", "availabilityEnds": "2050-06-30T23:59:00-04:00", "eligibleRegion": { "@type": "Country", "name": "IN" } } ] } } ] } ], "dateModified": "2018-09-10T13:58:26.892Z" }
Ví dụ về nguồn cấp dữ liệu BorrowAction
Book
ở định dạng JSON
{ "@context": "https://schema.org", "@type": "DataFeed", "dataFeedElement": [ { "@context": "https://schema.org", "@type": "Book", "@id": "https://example.com/work/the_catcher_in_the_rye", "url": "https://example.com/work/the_catcher_in_the_rye", "name": "The Catcher in the Rye", "author": { "@type": "Person", "name": "J.D. Salinger" }, "sameAs": "https://en.wikipedia.org/wiki/The_Catcher_in_the_Rye", "workExample": [ { "@type": "Book", "@id": "https://example.com/edition/the_catcher_in_the_rye_paperback", "isbn": "9787543321724", "bookEdition": "Mass Market Paperback", "bookFormat": "https://schema.org/Paperback", "inLanguage": "en", "url": "https://example.com/edition/the_catcher_in_the_rye_paperback", "datePublished": "1991-05-01", "identifier": { "@type": "PropertyValue", "propertyID": "OCLC_NUMBER", "value": "1057320822" }, "potentialAction": { "@type": "BorrowAction", "lender": { "@type": "LibrarySystem", "@id": "https://example.com/librarySystem/100" }, "target": { "@type": "EntryPoint", "urlTemplate": "https://example.com/borrowpurchase?bookId=170", "actionPlatform": [ "https://schema.org/DesktopWebPlatform", "https://schema.org/AndroidPlatform", "https://schema.org/IOSPlatform" ] } } }, { "@type": "Book", "@id": "https://example.com/edition/the_catcher_in_the_rye_hardcover", "isbn": "9780316769532", "bookEdition": "Hardcover", "bookFormat": "https://schema.org/Hardcover", "inLanguage": "en", "url": "https://example.com/edition/the_catcher_in_the_rye_hardcover", "datePublished": "1951-07-16", "potentialAction": { "@type": "BorrowAction", "lender": { "@type": "LibrarySystem", "@id": "https://example.com/librarySystem/100" }, "target": [ { "@type": "EntryPoint", "urlTemplate": "https://example.com/borrowpurchase?bookId=170", "actionPlatform": [ "https://schema.org/DesktopWebPlatform" ] }, { "@type": "EntryPoint", "urlTemplate": "https://example.com/mobile/borrowpurchase?bookId=170", "actionPlatform": [ "https://schema.org/AndroidPlatform", "https://schema.org/IOSPlatform" ] } ] } } ] } ], "dateModified": "2018-09-10T13:58:26.892Z" }
ReadAction
(potentialAction
)
Thuộc tính potentialAction
sử dụng thực thể ReadAction
.
ReadAction
xác định các đường liên kết sâu để truy cập sách, nhà bán lẻ cung cấp sách và các tiêu chí mà người dùng phải đáp ứng. Các tiêu chí này có thể bao gồm tư cách thành viên, trạng thái đăng nhập, vị trí hoặc bất kỳ điều kiện nào khác cần đáp ứng để truy cập sách.
Thuộc tính bắt buộc | |
---|---|
@type |
Đặt thành |
expectsAcceptanceOf |
Phần xác định các yêu cầu mà người dùng phải đáp ứng để truy cập vào thực thể này. Nếu có nhiều thuộc tính Bạn có thể dùng lại thuộc tính này. |
expectsAcceptanceOf.@type |
Đặt thành |
expectsAcceptanceOf.category |
Loại
|
expectsAcceptanceOf.eligibleRegion |
Quốc gia đủ điều kiện cho Bạn có thể dùng lại thuộc tính này. |
expectsAcceptanceOf.eligibleRegion.@type |
Đặt thành |
expectsAcceptanceOf.eligibleRegion.name |
Mã quốc gia theo ISO 3166-1 alpha-2. |
target |
Thông tin đặc tả về đường liên kết sâu, bao gồm cả thông tin về nền tảng được hỗ trợ. Bạn có thể sử dụng nhiều thuộc tính Bạn có thể dùng lại thuộc tính này. |
target.@type |
Đặt thành |
target.actionPlatform |
(Các) nền tảng nơi đường liên kết sâu này hoạt động. Hãy sử dụng một trong các giá trị sau:
Bạn có thể dùng lại thuộc tính này. |
target.urlTemplate |
Đường liên kết trực tiếp đưa người dùng đến nội dung trên trang đích của cuốn sách. |
Thuộc tính nên có | |
---|---|
expectsAcceptanceOf.availabilityEnds |
Thời gian kết thúc của khung thời gian được phép đọc. Bạn có thể sử dụng thuộc tính này để kiểm soát thời điểm chính xác khi người dùng không đọc cuốn sách này được nữa. |
expectsAcceptanceOf.availabilityStarts |
Thời gian bắt đầu của khung thời gian được phép đọc. Bạn có thể sử dụng thuộc tính này để kiểm soát thời điểm chính xác khi người dùng có thể bắt đầu đọc cuốn sách này. |
expectsAcceptanceOf.price |
Giá mua sách. Phải có thuộc tính này khi |
expectsAcceptanceOf.priceCurrency |
Đơn vị tiền tệ của giá bán có định dạng ISO 4217 gồm ba chữ cái. |
Ví dụ ReadAction
:
"potentialAction": { "@type": "ReadAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://example.com/purchase?bookId=170", "actionPlatform": [ "https://schema.org/DesktopWebPlatform", "https://schema.org/AndroidPlatform", "https://schema.org/IOSPlatform" ] }, "expectsAcceptanceOf": { "@type": "Offer", "category": "purchase", "price": "9.99", "priceCurrency": "USD", "availabilityStarts": "2018-04-01T11:01:00-04:00", "availabilityEnds": "2018-06-30T23:59:00-04:00", "eligibleRegion": { "@type": "Country", "name": "US" } } }
Ví dụ: ReadAction
với nhiều thuộc tính EntryPoint
:
"potentialAction": { "@type": "ReadAction", "target": [ { "@type": "EntryPoint", "urlTemplate": "https://example.com/purchase?bookId=170", "actionPlatform": [ "https://schema.org/DesktopWebPlatform" ] }, { "@type": "EntryPoint", "urlTemplate": "https://example.com/mobile/purchase?bookId=170", "actionPlatform": [ "https://schema.org/AndroidPlatform", "https://schema.org/IOSPlatform" ] } ], "expectsAcceptanceOf": [ { "@type": "Offer", "category": "noLoginRequired", "availabilityStarts": "2018-04-01T11:01:00-04:00", "availabilityEnds": "2018-06-30T23:59:00-04:00", "eligibleRegion": [ { "@type": "Country", "name": "US" }, { "@type": "Country", "name": "GB" } ] }, { "@type": "Offer", "category": "Subscription", "availabilityStarts": "2018-04-01T11:01:00-04:00", "availabilityEnds": "2018-06-30T23:59:00-04:00", "eligibleRegion": { "@type": "Country", "name": "IN" } } ] }
BorrowAction
(potentialAction
)
Thuộc tính potentialAction
sử dụng thực thể BorrowAction
.
BorrowAction
xác định các đường liên kết sâu để truy cập sách, thư viện cung cấp sách và các tiêu chí mà người dùng phải đáp ứng. Các tiêu chí này có thể bao gồm tư cách thành viên, trạng thái đăng nhập, vị trí hoặc bất kỳ điều kiện nào khác cần đáp ứng để truy cập sách.
Thuộc tính bắt buộc | |
---|---|
@type |
Đặt thành |
lender |
Hệ thống thư viện cung cấp quyền truy cập vào ấn bản này. |
lender.@id |
URL đến giá trị nhận dạng của |
lender.@type |
Đặt thành |
target |
Thông tin đặc tả về đường liên kết sâu, bao gồm cả thông tin về nền tảng được hỗ trợ. Để xác định các liên kết sâu cho các nhóm nền tảng khác nhau, hãy chỉ định một mảng Bạn có thể dùng lại thuộc tính này. |
target.@type |
Đặt thành |
target.actionPlatform |
(Các) nền tảng nơi đường liên kết sâu này hoạt động. Hãy sử dụng một trong các giá trị sau:
Bạn có thể dùng lại thuộc tính này. |
target.urlTemplate |
Đường liên kết trực tiếp đưa người dùng đến nội dung trên trang đích của cuốn sách. |
Ví dụ về BorrowAction
:
"potentialAction": { "@type": "BorrowAction", "lender": { "@type": "LibrarySystem", "@id": "https://example.com/librarySystem/100" }, "target": { "@type": "EntryPoint", "urlTemplate": "https://example.com/borrow?bookId=170", "actionPlatform": [ "https://schema.org/DesktopWebPlatform", "https://schema.org/AndroidPlatform", "https://schema.org/IOSPlatform" ] } }
Ví dụ: BorrowAction
với nhiều thuộc tính EntryPoint
:
"potentialAction": { "@type": "BorrowAction", "lender": { "@type": "LibrarySystem", "@id": "https://example.com/librarySystem/100" }, "target": [ { "@type": "EntryPoint", "urlTemplate": "https://example.com/borrow?bookId=170", "actionPlatform": [ "https://schema.org/DesktopWebPlatform" ] }, { "@type": "EntryPoint", ` "urlTemplate": "https://example.com/mobile/borrow?bookId=170", "actionPlatform": [ "https://schema.org/AndroidPlatform", "https://schema.org/IOSPlatform" ] } ] }
Thực thể Library
Bạn có thể xem định nghĩa đầy đủ về Library
tại schema.org/Library. Tuy vậy, bạn chỉ cần chú ý đến những thuộc tính sau. Bạn phải xác định các thuộc tính bắt buộc cho mọi thư viện bạn chọn đưa vào nguồn cấp dữ liệu của mình.
Bạn cũng có thể xác định các thuộc tính mà chúng tôi khuyên dùng để thêm thông tin về nội dung nhằm mang lại trải nghiệm tốt hơn cho người dùng.
Thực thể Library
này là loại thực thể Library
cấp cao nhất. Đây là một hệ thống trừu tượng, bao gồm một thực thể LibrarySystem
và từng thực thể Library (member)
cấp thấp hơn của thực thể LibrarySystem
đó.
Nguồn cấp dữ liệu Library
khác với nguồn cấp dữ liệu Book
. Do đó, bất kỳ nguồn cấp dữ liệu Library
nào bạn muốn triển khai phải hoàn toàn tách biệt khỏi nguồn cấp dữ liệu Book
.
Để biết thêm thông tin, hãy tham khảo cách Tạo nguồn cấp dữ liệu.
LibrarySystem
Thực thể LibrarySystem
là khái niệm tượng trưng cho mạng lưới cộng tác của các thư viện thành viên.
Thuộc tính bắt buộc | |
---|---|
@context
|
Text
Đặt thành |
@id
|
URL
Giá trị nhận dạng duy nhất trên toàn cầu cho hệ thống thư viện ở định dạng URL. Giá trị này cũng phải ổn định và không thay đổi theo thời gian. URL được coi là một chuỗi nguyên vẹn và không cần phải là một đường liên kết đang hoạt động. Miền mà bạn dùng cho giá trị |
@type
|
Text
Đặt thành |
additionalProperty
|
PropertyValue
Thuộc tính bổ sung dùng để xác định loại thư viện. |
additionalProperty.@type
|
Text
Đặt thành |
additionalProperty.name
|
Text
Đặt thành |
additionalProperty.value
|
Text
Loại thư viện. Hãy sử dụng một trong các giá trị sau:
|
member
|
Library
(Các) thành viên của hệ thống thư viện. |
name
|
Text
Tên hệ thống thư viện. Ví dụ: |
url
|
URL
URL mà tại đó có thông tin giới thiệu hoặc mô tả về hệ thống thư viện. Google Tìm kiếm sử dụng đường liên kết này để đối chiếu nội dung trong nguồn cấp dữ liệu của bạn với nội dung trong cơ sở dữ liệu của Google. Đối với trang đích trong thực tế, Google Tìm kiếm sử dụng URL được cung cấp trong |
Library
(member
)
Thuộc tính member
của thực thể LibrarySystem
sử dụng thực thể Library (member)
.
Library (member)
đại diện cho một thành viên của thư viện trong một hệ thống thư viện nhất định.
Thuộc tính bắt buộc | |
---|---|
@id
|
URL
Giá trị nhận dạng duy nhất trên toàn cầu cho chi nhánh thư viện ở định dạng URL. Giá trị này cũng phải ổn định và không thay đổi theo thời gian. URL được coi là một chuỗi nguyên vẹn và không cần phải là một đường liên kết đang hoạt động. Miền mà bạn dùng cho giá trị |
@type
|
Text
Hãy đặt thành |
location
|
PostalAddress
Địa chỉ đường phố của chi nhánh thư viện. Một số thuộc tính sẽ không được hỗ trợ ở một số quốc gia. Bạn phải sử dụng hết số thuộc tính có thể áp dụng cho địa chỉ của các thư viện. Ví dụ về { "@type": "Library", "@id": "https://example.com/library-branches/1001", "name": "Campbell Library", "location": { "@type": "PostalAddress", "streetAddress": "77 Harrison Ave", "addressLocality": "Campbell", "addressRegion": "CA", "postalCode": "95008", "addressCountry": "US" } } Ví dụ về { "@type": "Library", "@id": "https://example.com/library-branches/1003", "name": "Tokyo Metropolitan Central Library", "location": { "@type": "PostalAddress", "streetAddress": "7-13-5 Minamiazabu, Minato City", "addressLocality": "Tokyo", "postalCode": "106-0047", "addressCountry": "JP" } } |
location.@type
|
Text
Đặt thành |
location.addressCountry
|
Text
Mã quốc gia ở định dạng ISO 3166-1. Ví dụ: |
location.addressLocality
|
Text
Thành phố. Ví dụ: |
location.addressRegion
|
Text
Khu vực. Ví dụ: |
location.postalCode
|
Text
Mã bưu chính. Ví dụ: |
location.streetAddress
|
Text
Địa chỉ đường phố. Ví dụ: |
name
|
Text
Tên của chi nhánh thư viện. |
Ví dụ về nguồn cấp dữ liệu LibrarySystem
ở định dạng JSON
{ "@context": "https://schema.org", "@type":"LibrarySystem", "@id":"https://example.com/library-systems/100", "name":"Santa Clara County Library District", "additionalProperty":[ { "@type":"PropertyValue", "name":"librarytype", "value":"public" } ], "member":[ { "@type":"Library", "@id":"https://example.com/library-branches/1001", "name":"Campbell Library", "location":{ "@type":"PostalAddress", "streetAddress":"77 Harrison Ave", "addressLocality":"Campbell", "addressRegion":"CA", "postalCode":"95008", "addressCountry":"US" } }, { "@type":"Library", "@id":"https://example.com/library-branches/1002", "name":"Gilroy Library", "location":{ "@type":"PostalAddress", "streetAddress":"350 W 6th St", "addressLocality":"Gilroy", "addressRegion":"CA", "postalCode":"95020", "addressCountry":"US" } } ] }