Dados estruturados de ações relacionadas a livros (Book)

As ações relacionadas a livros fazem da Pesquisa Google um ponto de entrada para descobrir autores e livros. Isso permite que os usuários os comprem ou peguem emprestados diretamente nos resultados da Pesquisa de maneira rápida. Por exemplo, um usuário pode pesquisar A menina e o porquinho e receber resultados que permitam comprar o livro ou pegá-lo emprestado. Para fornecedores de livros, é possível enviar um feed ao Google com o esquema de dados estruturados mostrado aqui. Nossa especificação inclui ReadAction para permitir que os usuários comprem um livro e BorrowAction para que o peguem emprestado.

Uma ação relacionada a livros nos resultados da Pesquisa

As ações relacionadas a livros incorporadas aos painéis exibem opções para adquirir o livro ou pegá-lo emprestado em uma biblioteca. Elas enviam os usuários diretamente do Painel de informações e de outras plataformas do Google à página do livro em seu site ou app pelos links que você informar.

A ordem dos provedores no Painel de informações é dinâmica e personalizada para cada usuário. Isso significa que cada um deles vê uma ordem diferente e que a ordem talvez mude para o mesmo usuário dependendo do momento. Há vários fatores que determinam isso. Por exemplo, se um usuário clicar com frequência nos links de determinado provedor no Painel de informações, esse provedor terá mais chances de ser mais bem posicionado. Não é possível controlar essa ordem.

Primeiros passos

Para implementar ações relacionadas a livros, crie o feed de acordo com as definições dos respectivos tipos de dados estruturados. Porém, examine as seguintes seções antes:

Diretrizes

Para garantir que os livros possam ser exibidos de forma consistente na Pesquisa, é importante se familiarizar com alguns detalhes e conceitos importantes. Além disso, o feed precisa atender a algumas especificações de formato padronizadas.

Para fazer isso, siga as instruções descritas aqui, além das regras gerais de dados estruturados e dos Fundamentos da Pesquisa. Elas são as seguintes:

Obras e edições

Nesta documentação, usamos dois termos distintos quando falamos sobre um livro:

  • Obra: é o conceito abstrato de um livro. Especificamente, metadados como título, autor e idioma original são atributos de uma obra.
  • Edição: é uma cópia concreta do livro. Especificamente, metadados como ano da publicação, nome da edição e International Standard Book Number (ISBN) são atributos da edição.

Por exemplo, A menina e o porquinho é uma obra, mas cada versão diferente é uma edição. Neste caso, a obra A menina e o porquinho pode ter uma primeira edição, uma segunda edição, uma edição resumida, uma edição traduzida em francês e assim por diante.

Essa distinção é especialmente importante no feed, onde ela pode não ser tão óbvia. Há duas entidades Book:

  • Book (Work) é a entidade Book de "nível superior":
    • workExample é uma propriedade de Work e especifica uma única instância de Book (Edition).
    • É preciso haver pelo menos um workExample para cada Work.
  • Book (Edition) é a entidade Book de "nível inferior".

É importante lembrar que pode haver várias edições de uma obra. Recomendamos que você as agrupe o máximo possível. Isso ajuda os sistemas do Google a aproveitarem todas as informações relevantes sobre um livro e exibi-lo na Pesquisa. Se necessário, segmente tais informações em vários registros de obra, cada um com o seguinte:

  • Um @id diferente
  • Pelo menos uma edição com ISBN ou outro identificador compatível

Sistemas e membros de bibliotecas

O Library entity é o tipo de entidade Library de "nível superior". É uma construção abstrata, que consiste em uma entidade LibrarySystem e em cada entidade Library (member) de "nível inferior" do sistema da biblioteca.

A entidade LibrarySystem é uma abstração e representa uma rede colaborativa de bibliotecas que são membros. Por exemplo, a Biblioteca Pública de Austin, nos Estados Unidos, pode ser especificada como uma entidade LibrarySystem. O site da Biblioteca Pública de Austin (em inglês) a descreve como um sistema de bibliotecas públicas que atende Austin, no estado do Texas. Ele consiste em 20 bibliotecas afiliadas, ou membros.

Cada entidade LibrarySystem requer pelo menos uma entidade Library (member), mesmo que, na verdade, a biblioteca não faça parte de qualquer sistema. Nesse cenário, para fins de implementação de ações relacionadas a livros, a biblioteca é o único membro do próprio sistema. Para esse mesmo propósito, ao contrário de um sistema de bibliotecas, um membro não é uma abstração e, portanto, tem um endereço físico.

Por outro lado, cada entidade Library (member) precisa pertencer a pelo menos uma entidade LibrarySystem.

ISBN e outros identificadores compatíveis

O ISBN é o principal sinalizador que a Pesquisa Google usa para reconciliar os dados do feed aos dados do Google. É necessário informar um ISBN ou outro identificador compatível para cada livro que você quer exibir nos resultados da Pesquisa. Sem ele, é provável que não seja possível fazer a correspondência entre os dados e, portanto, os livros não sejam exibidos.

A Pesquisa Google recomenda o uso do ISBN-13, mas também é possível fornecer o seguinte:

  • Número da Online Computer Library Center (OCLC)
  • Número de controle da Biblioteca do Congresso (LCCN, na sigla em inglês)
  • Código eletrônico JP

Para garantir aos usuários a melhor experiência ao encontrar seus livros, os links no feed precisam seguir estas diretrizes:

  • Se você tiver páginas duplicadas para o mesmo conteúdo, o link precisará ser o URL canônico que contém o título e outras informações do livro.
  • Quando um usuário clicar em um link de ação relacionada a livros, ele precisará ser enviado para uma página que possibilite a compra ou o empréstimo do livro diretamente. Especificamente, não direcione links de ação a páginas com outros links que precisam ser clicados para comprar ou fazer o empréstimo do conteúdo. Por exemplo, não direcione os usuários a uma página de resultados de pesquisa ou de resumo do produto.

Criar um feed

Caso seu site venda livros aos usuários, faça upload do feed Book. Entre em contato com o representante do Google e verifique os detalhes sobre como e onde fazer esse upload.

Caso o site empreste livros ao usuário, faça upload de dois feeds diferentes: o Book e o Library. Entre em contato com o representante do Google e verifique os detalhes sobre como e onde fazer esse upload.

Obedecer aos requisitos de tamanho, quantidade e formato de arquivo do feed

Os requisitos são os seguintes:

  • Requisitos de tamanho do arquivo do feed:
    • Os arquivos de feed não compactados precisam ter menos de 1 GB.
    • Para compactar esses arquivos, eles precisam obedecer a esse limite de tamanho. Se o arquivo do feed descompactado exceder 1 GB, será necessário dividi-lo primeiro.
  • É possível compactar arquivos de feed. Eles precisam estar no formato zip, gz, tar, tar.gz, JAR, ar, arj, cpio ou dump.
  • Se você tiver vários arquivos de feed, é possível enviá-los diretamente ou, se preferir, incluí-los em um arquivo de índice de sitemaps.
  • Os feeds em arquivo único precisam ter a extensão de nome de arquivo .json.

Obedecer aos requisitos de conteúdo do feed

Preste atenção especialmente aos seguintes requisitos de conteúdo do feed que você precisa observar:

  • O feed não pode conter entidades desatualizadas. Entidades desatualizadas são entidades com availabilityEnds definido para uma data passada ou que não estão mais disponíveis no site.
  • Todos os links diretos, como urlTemplate, e todos os URLs, como url, que forem incluídos no feed precisam apontar para a versão de produção. Não use URLs de controle de qualidade, desenvolvimento ou qualquer outro tipo.
  • Todos os URLs, como url, precisam ser canônicos.
  • Cada entidade no feed precisa especificar as seguintes propriedades:
    • Um ID exclusivo: @id
    • Um URL exclusivo: url
    • Um link direto exclusivo: urlTemplate

Testar o feed com a ferramenta de validação do feed de dados

Recomendamos as seguintes etapas de solução de problemas para resolver erros e avisos comuns na ferramenta de validação do feed de dados:

  • Verifique se a opção correta está selecionada no campo Validate on. Selecione Books Action para a entidade Book.

  • Verifique se o valor de @type está digitado corretamente.
  • Verifique se o valor de @context está definido corretamente. Defina "@context": "https://schema.org" para ReadAction e BorrowAction.

Hospedar o arquivo do feed

Quando o arquivo do feed estiver pronto, hospede-o em um local seguro. O Google busca o feed regularmente para garantir que o conteúdo esteja atualizado.

Métodos de hospedagem

Os seguintes métodos de hospedagem do feed são compatíveis:

Hosting Suporte para autenticação
Google Cloud Storage Permissão Storage Object Viewer
HTTPS Nome de usuário + senha ou certificados do cliente HTTP
SFTP Senha, chave + frase ou ambos
AWS S3 ID da chave + chave de acesso

Enviar o arquivo do feed para revisão

Para que o conteúdo seja disponibilizado na Pesquisa Google, uma equipe do Suporte do Google analisa a qualidade dos links diretos do feed. Recomendamos que você teste manualmente alguns dos links diretos para confirmar se eles abrem a página em que os usuários podem comprar ou pegar os livros emprestados.

Para solicitar uma revisão do feed, forneça as seguintes informações:

  • Local da hospedagem: o URL do arquivo do feed.
  • Autenticação de hospedagem, se aplicável: as credenciais de autenticação que permitem que o Google acesse o arquivo do feed no local de hospedagem.

Atualizar o feed conforme necessário

Recomendamos que você atualize o feed diariamente, mas isso depende da frequência em que seu catálogo muda. Atenção às seguintes condições e dicas:

  • A Pesquisa Google não é compatível com atualizações em tempo real.
  • A Pesquisa Google busca o feed uma vez por dia e normalmente indexa o conteúdo em dois dias.
  • Se houver uma mudança prevista na disponibilidade de uma edição, use availabilityStarts e availabilityEnds para definir as datas exatas. Se a entidade não estiver mais disponível, remova-a completamente.

Definições de tipos de dados estruturados

É necessário incluir as propriedades obrigatórias listadas aqui para que o conteúdo esteja qualificado para exibição nos resultados de pesquisa estruturados. Também é possível incluir as propriedades recomendadas para dar mais informações sobre o conteúdo, o que pode proporcionar uma melhor experiência ao usuário.

Entidade DataFeed

Cada arquivo do feed de dados do schema.org enviado ao Google precisa conter uma única entidade de DataFeed no nível raiz (todos os links de schema.org estão em inglês). Todas as entidades Book e Library precisam ser listadas no campo dataFeedElement da entidade DataFeed.

Confira as propriedades aceitas pelo Google:

Propriedades obrigatórias
@context

Text

Defina como https://schema.org.

@type

Text

Defina como DataFeed.

dataFeedElement

Book ou LibrarySystem

Defina como uma única entidade Book ou LibrarySystem. Caso contrário, defina como uma matriz de apenas entidades Book ou LibrarySystem. Não defina como uma matriz que inclua entidades Book e LibrarySystem simultaneamente.

Exemplo de uso em um feed Book:

{
  "@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"
}

Exemplo de uso em um feed LibrarySystem:

{
  "@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

DateTime

É a data e a hora da atualização mais recente do feed no formato ISO 8601.

Entidade Book

A definição completa de Book está disponível em schema.org/Book, mas você só precisa considerar as propriedades a seguir. Defina as propriedades obrigatórias para cada livro a ser incluído no feed. Também é possível definir as propriedades recomendadas para dar mais informações sobre o conteúdo, o que pode proporcionar uma melhor experiência do usuário.

Book (Work)

Esta entidade Book é o tipo de entidade de nível superior. Ela representa uma obra.

Confira as propriedades aceitas pelo Google:

Propriedades obrigatórias
@context

Text

Defina como https://schema.org.

@id

Text

É um ID globalmente exclusivo do livro no formato de URL. Ele precisa ser exclusivo à organização. O ID precisa ser estável e não pode mudar ao longo do tempo. Recomendamos o uso do formato de URL, mas isso não é obrigatório. Não precisa ser um link funcional. O domínio usado para o valor @id precisa ser de propriedade da organização.

@type

Text

Defina como Book.

author

Person ou Organization

São os autores do livro.

name

Text

É o título do livro.

url

URL

É o URL do site em que o livro é apresentado ou descrito. Esse link ajuda a reconciliar com precisão o conteúdo do feed com as informações dos bancos de dados do Google. Pode ser igual a workExample.target.urlTemplate.

Para a página de destino a ser exibida de fato, a Pesquisa Google usa o URL informado em workExample.target.urlTemplate.

workExample

Book (Edition)

São as edições da obra.

Propriedades recomendadas
sameAs

URL

É o URL de uma página de referência que identifica a obra. Por exemplo, uma página do livro na Wikipédia, Wikidata, VIAF ou Biblioteca do Congresso.

Book (Edition)

A propriedade workExample usa esta entidade Book. Representa uma edição de uma obra.

Confira as propriedades aceitas pelo Google:

Propriedades obrigatórias
@id

Text

É um ID globalmente exclusivo do livro no formato de URL. Ele precisa ser exclusivo à organização. O ID precisa ser estável e não pode mudar ao longo do tempo. Recomendamos o uso do formato de URL, mas isso não é obrigatório. Não precisa ser um link funcional. O domínio usado para o valor @id precisa ser de propriedade da organização.

@type

Text

Defina como Book.

bookFormat

Enum

É o formato da edição. Ele precisa ter um dos seguintes valores:

  • https://schema.org/AudiobookFormat
  • https://schema.org/EBook
  • https://schema.org/Hardcover
  • https://schema.org/Paperback
inLanguage

Text

É o idioma principal do conteúdo da edição. Use um dos códigos de duas letras da lista de códigos de alfa-2 ISO 639-1 (link em inglês).

isbn

Text

É o ISBN-13 da edição. Se ela tiver apenas ISBN-10, converta-o para ISBN-13.

potentialAction

ReadAction ou BorrowAction

É a ação a ser ativada para que os usuários comprem ou façam o download do livro. Para ver mais detalhes, consulte ReadAction ou BorrowAction.

Propriedades recomendadas
author

Person ou Organization

São os autores da edição.

bookEdition

Text

São as informações da edição do livro. Por exemplo, 2nd Edition.

datePublished

Date

É a data de publicação da edição no formato YYYY-MM-DD ou YYYY. Pode ser uma data específica ou apenas um ano.

identifier

PropertyValue

É o ID externo ou outro ID que identifica claramente esta edição. Vários identificadores são permitidos. Para ver mais detalhes, consulte PropertyValue (identifier).

Esta propriedade pode ser repetida.

name

Text

É o título da edição. Use esta opção somente quando ele for diferente do título da obra.

sameAs

URL

É o URL de uma página da Web de referência que indica claramente a edição. Por exemplo, uma página da Wikipédia sobre esta edição específica. Não reutilize o sameAs do Work.

url

URL

É o URL do site que apresenta ou descreve a edição. Pode ser igual a workExample.target.urlTemplate.

Exemplo de 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": {...}
        }

Exemplo de Book (Edition) com várias propriedades 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 ou Organization (author)

A propriedade author do livro usa a entidade Person ou Organization.

Propriedades obrigatórias
@type

Text

Defina como Person ou Organization.

name

Text

É o nome da pessoa ou organização.

Propriedades recomendadas
sameAs

URL

É o URL de uma página da Web de referência que indica claramente a identidade da pessoa ou da organização. Por exemplo, uma página da Wikipédia sobre ela.

authorExemplo

"author": {
  "@type": "Person",
  "name": "William Shakespeare"
}

Exemplo com várias propriedades author:

"author": [
  {
    "@type": "Person",
    "name": "William Shakespeare"
  },
  {
    "@type": "Person",
    "name": "Victor Hugo",
    "sameAs": "https://en.wikipedia.org/wiki/Victor_Hugo"
  }
]

PropertyValue (identificador)

A propriedade identifier de Edition usa a entidade PropertyValue.

Propriedades obrigatórias
@type

Text

Defina como PropertyValue.

propertyID

Text

É o tipo de ID. Conforme descrito em ISBN e outros identificadores compatíveis, ele precisa ser de um dos seguintes tipos:

  • OCLC_NUMBER
  • LCCN
  • JP_E-CODE
value

Text

É o valor do ID. É o ID externo que identifica claramente esta edição. Remova todos os prefixos não numéricos.

identifierExemplo

    "identifier": {
      "@type": "PropertyValue",
      "propertyID": "OCLC_NUMBER",
      "value":  "110123456"
    }

Exemplo com várias propriedades identifier:

    "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "OCLC_NUMBER",
      "value":  "110123456"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "LCCN",
      "value":  "220123456"
    },{
      "@type": "PropertyValue",
      "propertyID": "JP_E-CODE",
      "value":  "12345678901234567890"
    }]

Exemplo de arquivo JSON do feed ReadAction Book

{
  "@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"
}

Exemplo de arquivo JSON do feed BorrowAction Book

{
  "@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)

A propriedade potentialAction usa a entidade ReadAction. ReadAction define os links diretos para acessar o livro, o varejista que o mantém em estoque e os critérios que os usuários precisam atender. Isso pode incluir status de assinatura ou de login, localização ou qualquer informação necessária para acessar o livro.

Propriedades obrigatórias
@type

Text

Defina como ReadAction.

expectsAcceptanceOf

Offer

É a definição dos requisitos que o usuário precisa atender para acessar esta entidade. Se houver várias propriedades Offer, um usuário que atenda a qualquer um dos critérios Offer conseguirá acessar o conteúdo.

Esta propriedade pode ser repetida.

expectsAcceptanceOf.@type

Text

Defina como Offer.

expectsAcceptanceOf.category

Text

É o tipo de Offer. Precisa ser um dos seguintes valores:

  • nologinrequired: a ação está disponível aos usuários sem necessidade de compra ou login para acessar o conteúdo.
  • free: a ação está disponível aos usuários sem necessidade de compra ou assinatura paga. No entanto, a ação exige que eles façam login.
  • subscription: o livro está incluso em uma assinatura paga do serviço.
  • purchase: o livro é acessível por uma compra.
  • rental: o livro é acessível por um período limitado após a compra.
expectsAcceptanceOf.eligibleRegion

Country

É o país qualificado para este Offer. Deste modo, é possível controlar o país e a região onde este conteúdo está disponível.

Esta propriedade pode ser repetida.

expectsAcceptanceOf.eligibleRegion.@type

Text

Defina como Country.

expectsAcceptanceOf.eligibleRegion.name

Text

É o código de país no formato ISO 3166-1 alfa-2.

target

EntryPoint

São as especificações do link direto, que inclui as informações sobre plataformas compatíveis. Pode haver várias propriedades EntryPoint para definir links diretos para diferentes conjuntos de plataformas.

Esta propriedade pode ser repetida.

target.@type

Text

Defina como EntryPoint.

target.actionPlatform

Text

São as plataformas em que este link direto é válido. Use um dos seguintes valores:

  • https://schema.org/DesktopWebPlatform
  • https://schema.org/AndroidPlatform
  • https://schema.org/IOSPlatform

Esta propriedade pode ser repetida.

target.urlTemplate

URL

É o link que leva os usuários diretamente ao conteúdo da página de destino do livro.

Propriedades recomendadas
expectsAcceptanceOf.availabilityEnds

DateTime

É a hora de término do período de disponibilidade. Deste modo, é possível controlar a hora exata em que este livro não será mais exibido aos usuários.

expectsAcceptanceOf.availabilityStarts

DateTime

É a hora de início do período de disponibilidade. Deste modo, é possível controlar a hora exata em que este livro será exibido aos usuários.

expectsAcceptanceOf.price

Number

É o preço de compra do livro. Isto é necessário quando o category da propriedade Offer é definido como purchase ou rental.

expectsAcceptanceOf.priceCurrency

Text

É a moeda do preço no formato de três letras ISO 4217.

ReadActionExemplo

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

Exemplo de ReadAction com várias propriedades 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)

A propriedade potentialAction usa a entidade BorrowAction. BorrowAction define os links diretos para acessar o livro, a biblioteca que o tem no catálogo e os critérios que os usuários precisam atender. Isso pode incluir status de assinatura ou de login, localização ou qualquer informação necessária para acessar o livro.

Propriedades obrigatórias
@type

Text

Defina como BorrowAction.

lender

LibrarySystem

É o sistema de bibliotecas que concede acesso a esta edição.

lender.@id

URL

São as referências de ID de LibrarySystem, que precisam ser descritas no todo e separadamente no feed da biblioteca.

lender.@type

Text

Defina como LibrarySystem.

target

EntryPoint

São as especificações do link direto, que inclui as informações sobre plataformas compatíveis. Se quiser definir links diretos para diferentes conjuntos de plataformas, especifique uma matriz EntryPoint.

Esta propriedade pode ser repetida.

target.@type

Text

Defina como EntryPoint.

target.actionPlatform

Text

São as plataformas em que este link direto é válido. Use um dos seguintes valores:

  • https://schema.org/DesktopWebPlatform
  • https://schema.org/AndroidPlatform
  • https://schema.org/IOSPlatform

Esta propriedade pode ser repetida.

target.urlTemplate

URL

É o link que leva os usuários diretamente ao conteúdo da página de destino do livro.

BorrowActionExemplo

"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"
    ]
  }
}

Exemplo de BorrowAction com várias propriedades 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"
      ]
    }
  ]
}

Entidade Library

A definição completa de Library está disponível em schema.org/Library, mas você só precisa considerar as propriedades a seguir. Defina as propriedades obrigatórias para cada biblioteca a ser incluída no feed. Também é possível definir as propriedades recomendadas para dar mais informações sobre o conteúdo, o que pode proporcionar uma melhor experiência ao usuário.

Esta entidade Library é o tipo de entidade Library de nível superior. É uma construção abstrata que consiste em uma entidade LibrarySystem e cada entidade Library (member) de nível inferior da LibrarySystem.

O feed Library é diferente do feed Book. Portanto, qualquer feed Library que você implemente precisa ser totalmente separado do feed Book. Para ver mais informações, consulte Criar um feed.

LibrarySystem

A entidade LibrarySystem representa uma rede colaborativa de membros, que são bibliotecas.

Propriedades obrigatórias
@context Text

Defina como https://schema.org.

@id URL

É um ID globalmente exclusivo para o sistema de bibliotecas no formato de um URL. O ID precisa ser estável e não pode mudar ao longo do tempo. É tratado como uma string opaca e não precisa ser um link funcional. O domínio usado para o valor @id precisa ser de propriedade da organização.

@type Text

Defina como LibrarySystem.

additionalProperty PropertyValue

É a propriedade adicional usada para indicar o tipo de biblioteca.

additionalProperty.@type Text

Defina como PropertyValue.

additionalProperty.name Text

Defina como librarytype.

additionalProperty.value Text

É o tipo da biblioteca. Use um dos seguintes valores:

  • public
  • academic
  • corporate
  • government
  • school
  • special
member Library

São os membros do sistema de bibliotecas.

name Text

É o nome do sistema de bibliotecas. Por exemplo, The Southwestern League of Libraries.

url URL

É o URL que apresenta ou descreve o sistema de bibliotecas. A Pesquisa Google usa este link para reconciliar o conteúdo do feed com as informações dos bancos de dados do Google. Para a página de destino a ser exibida de fato, usamos o URL informado em workExample.target.urlTemplate.

Library (member)

A propriedade member da entidade LibrarySystem usa a entidade Library (member). Library (member) representa uma única biblioteca membro de um determinado sistema de bibliotecas.

Propriedades obrigatórias
@id URL

É um ID globalmente exclusivo para a filial da biblioteca no formato de um URL. O ID precisa ser estável e não pode mudar ao longo do tempo. É tratado como uma string opaca e não precisa ser um link funcional. O domínio usado para o valor @id precisa ser de propriedade da organização.

@type Text

Defina como Library.

location PostalAddress

É o endereço da filial da biblioteca. Nem todas as propriedades se aplicam a todos os países. É preciso incluir todas as que são relevantes para os endereços das suas bibliotecas.

Exemplo de location dos Estados Unidos:

{
  "@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"
  }
}

Exemplo de location do Japão:

{
  "@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

Defina como PostalAddress.

location.addressCountry Text

É o código do país no formato ISO 3166-1. Por exemplo, US.

location.addressLocality Text

É a localidade. Por exemplo, Mountain View.

location.addressRegion Text

É a região. Por exemplo, CA.

location.postalCode Text

É o código postal. Por exemplo, 94043.

location.streetAddress Text

É o endereço. Por exemplo, 1600 Amphitheatre Pkwy.

name Text

É o nome da filial da biblioteca.

Exemplo de arquivo JSON do feed LibrarySystem

{
   "@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"
         }
      }
   ]
}