web-dev-qa-db-ja.com

同じページ上の別のスキーマを持つ「組織」スキーマ

別のスキーマデータ、たとえばOrganizationがある場合、各ページでEventスキーマを使用する必要がありますか?

同じページでEventOrganizationを使用できますか?

Organizationコード

<script type="application/ld+json">
{
  "@context" : "http://schema.org",
  "@type" : "Organization",
  "name" : "name",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "addr",
    "postalCode": "index",
    "streetAddress": "addr",
    "telephone" : "phone"
  },
  "logo" : {
    "@type": "ImageObject",
    "url": "logo",
    "width": "500",
    "height": "500"
  },
  "email": "email",
  "url" : "url",
  "sameAs" : [
    "link"
  ]
}
</script>

Eventコード

<div itemscope itemtype="http://schema.org/Event" class="tour tour--page">
    <span class="schema_hide" itemprop="startDate" content="date"></span>
    <span class="schema_hide" itemprop="performer" content="performer"></span>
    <span class="schema_hide" itemprop="url" content="url"></span>
    <img itemprop="image" src="tour.avatar" />
    <h1 itemprop="name">name</h1>
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
        <span class="schema_hide" itemprop="telephone" content="phone"></span>
        <span class="schema_hide" itemprop="name" content="name"></span>
        <span class="schema_hide" itemprop="address" content="address"></span>
    </div>
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <span itemprop="validFrom" :content="date"></span>
        <span itemprop="url" content="url"></span>
        <span itemprop="availability" content="http://schema.org/PreOrder"></span>
        <span itemprop="priceCurrency" content="RUB"></span>
        <span itemprop="price" content="price"></span>
    </div>
</div>
4
Viktor

そのような複数のトップレベルエンティティを使用する場合は注意が必要です。 Googleのようなシステムは通常、1つのエンティティをページのメインエンティティとして選択し、その他を無視します。 Googleは、それが組織に関するページ、またはイベントに関するページであると判断しますか?

ページの一部を定義しているエンティティ(WebPageElement BreadcrumbListなど)など、例外があります。

MainEntityまたはmainEntityOfPageプロパティを使用して、物事を明確にすることができます。例えば現在のページのmainEntityOfPageであると言うようにイベントを設定します。

サイト全体がその組織に関連している場合、サイトのすべてのページに組織を配置する必要はありません。たぶんホームページだけ、または私たちについてのページに。組織について説明しているページが最適です。

オーガナイザーの場合は、イベント内に組織を配置することもできます。

1
Tony McCreath

はい、好きなだけスキーマを使用できます。

アイテムを適切なプロパティに接続するのがベストプラクティスです。たとえば、EventOrganizationによって編成されている場合、 organizer プロパティを使用できます。プライマリアイテムを伝えるには、WebPageアイテムを指定して、その mainEntity プロパティ( example )。

ただし、通常は1つの構文を使用しますが、JSON-LDとMicrodataの2つの構文を使用しています。これらのアイテムを接続することもできますが( ネストする代わりにURIを参照することで )、同じ構文を使用すると簡単になり、サポートされる可能性が高くなります。

両方の構文を使用する必要がある場合は、次のようなものを使用できます(組織がイベントオーガナイザーの場合)。

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "@id": "/#this-organization"
</script>

<div itemscope itemtype="http://schema.org/Event">
  <link itemprop="organizer" href="/#this-organization" />
</div>
0
unor