エンティティのバージョニング

フィードまたはリアルタイム更新を介して Google に送信される各エンティティには、バージョンが関連付けられています。このバージョンはタイムスタンプの形式で返されます。フィードでは、dateModified 属性を使用してエンティティごとにタイムスタンプを指定できます。この属性がフィード エンティティに含まれていない場合、バージョンはフィード取り込みの開始時間に設定されます。リアルタイム更新 batchPushbatchDelete では、バージョンの設定に generation_timestamp フィールドと delete_time フィールドが使用されます。このフィールドが含まれていない場合、バージョンはリクエストを受信した時刻に設定されます。リレーショナル広告枠スキーマの時間値の形式をご覧ください。

Google は、最後に承認されたバージョン以降のバージョンのエンティティ(レストラン、メニュー、サービスなど)のみを処理します。それ以外の場合、エンティティは取り込まれず、古いエンティティエラーが記録されます。エンティティが新しいバージョンで更新されると、最終更新タイムスタンプは更新された現在の時刻に更新されます。

6 月 16 日 01:10 UTC にフィードが生成され、次の例のエンティティが含まれているとします。

{
  "@type": "Restaurant",
  "@id": "restaurant12345",
  "dateModified": "2022-06-16T01:10:00.000Z",
  ...
}

フィードは Google にまだ取り込まれていません。その日の 2022-06-16T01:22:00.000Z に、Google は次のエンティティを含むリアルタイム更新 batchPush リクエストを受信します。

{
  "records": [
    {
      "data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
      "generation_timestamp": "2022-06-16T01:20:00.000Z"
    }
  ]
}

レストラン エンティティ ID restaurant12345 のバージョンが 2022-06-16T01:20:00.000Z になり、エンティティの最終更新タイムスタンプが 2022-06-16T01:22:00.000Z に設定されました。要約すると、最終更新日時は Google の広告枠でエンティティが更新された日時で、バージョンはリアルタイム更新リクエストの generation_timestamp 値またはフィードの dateModified 値です。

フィードの取り込みは 6 月 16 日午前 2 時(UTC)に開始されます。この場合、バージョン 2022-06-16T01:10:00.000Z でフィードで受信されたエンティティは古いと見なされ、取り込まれません。したがって、Google はリアルタイム更新リクエストからバージョン 2022-06-16T01:20:00.000Z のエンティティを引き続き配信します。

おすすめの方法:

  • エンティティごとにフィードにタイムスタンプを実装します。
  • リアルタイム更新の変更を次のフィードに適用し、フィード エンティティの dateModified タイムスタンプを、フィードを作成した現在の時刻に設定します。