일괄 피드의 v1 버전 관리

일괄 피드에서 항목 버전은 dateModified 입력란에 값을 입력합니다.

{
  "@context": "http://schema.googleapis.com",
  "dateModified": "2018-12-28T06:30:00:123-07:00",
  "@type": "DataFeed",
  "dataFeedElement": [
    /* All the items that are part of this feed go here */
  ]
}

dataFeedElement 필드에 나열된 모든 항목의 타임스탬프가 동일합니다. 봉투에 표시된 대로 할 수 있습니다.

예를 들어 항목이 두 개인 다음 피드가 있을 수 있습니다.

{
  "@context": "http://schema.googleapis.com",
  "@type": "DataFeed",
  "dateModified": "2018-12-28T06:30:00:123-07:00",
  "dataFeedElement": [
    {
      "@type": "Restaurant",
      "@id": "http://www.provider.com/somerestaurant",
      ...
    },
    {
      "@type": "Menu",
      "@id": "http://www.provider.com/somerestaurant/menu/1"
      ...
    }
  ]
}

메뉴와 식당 항목 모두 일단 수신되고 처리되면 '2018-12-28T06:30:00:123-07:00'으로 개별 버전이 지정됩니다.

증분 업데이트를 사용한 버전 관리

인벤토리 업데이트를 사용하여 항목을 전송할 때 버전은 다음을 통해 설정됩니다. update_time 필드 (추가/업데이트 호출의 경우) 또는 delete_time 필드 (delete 호출의 경우)입니다. 이러한 필드는 선택사항이므로 기본 타임스탬프는 Google에서 전화를 받은 시간으로 설정됩니다.

예시 1: update_time이 명시적으로 설정됨

다음과 같은 증분 호출이 2018-12-28T06:30:10:123-07:00에 수신되었다고 가정해 보겠습니다. 완전히 새로운 식당을 찾고 있었습니다. 다음은 해당 항목에 대한 HTTP POST 요청입니다. ID가 'http://www.provider.com/somerestaurant'인 경우(데이터 피드가 살펴보겠습니다

POST v2/apps/provider-project/entities/http%3A%2F%2Fwww.provider.com%2Fnewrestaurant:push
Host: actions.googleapis.com
Content-Type: application/ld+json

아래 JSON 페이로드 본문에는 update_time 필드가 포함되어 있습니다. 이 ID 'http://www.provider.com/somerestaurant' 이 항목은 6:30:00으로 버전이 지정되며 수신 시점이 아닙니다 (10초 후 6:30:10):

{
// This envelope is to be used for incremental.
  "entity": {
    // Note: "data" is not serialized as a string in our example for readability.
    "data": "[entity in JSON format serialized as a string]",
    "vertical": "FOODORDERING"
  },
  "update_time":"2018-12-28T06:30:00:123-07:00"
}

예시 2: update_time이 암시적으로 설정됨

다음과 같은 증분 호출이 2018-12-28T06:30:10:123-07:00에 수신되었다고 가정해 보겠습니다. 완전히 새로운 식당을 찾고 있었습니다. 다음은 해당 항목에 대한 HTTP POST 요청입니다. 피드가 v1 인벤토리 스키마:

POST v2/apps/provider-project/entities/http%3A%2F%2Fwww.provider.com%2Fnewrestaurant:push
Host: actions.googleapis.com
Content-Type: application/ld+json

아래에서 JSON 페이로드 본문에는 update_time 필드가 포함되지 않습니다. 이 ID가 'http://www.provider.com/somerestaurant'인 항목 그렇기 때문에 다음 항목은 6:30:10으로 버전이 지정됩니다.

{
// This envelope is to be used for incremental.
  "entity": {
    //Note: "data" is not serialized as a string in our example for readability.
    "data": "[entity in JSON format serialized as a string]",
    "vertical": "FOODORDERING"
  }
}

일괄 및 증분 간 버전 관리

Google로 전송된 개체는 최신 정보가 포함된 경우에만 처리되고 게재됩니다. 있습니다. 배치를 통해 전송된 항목은 일반적으로 증분 API를 통해 전송된 항목은 즉시 삭제할 수 있습니다

권장사항

  • 증분 및 배치로 update_timedateModified 필드를 설정합니다. 시스템에서 항목이 수정된 시점을 기준으로 합니다.
  • 일괄 피드 (파일)에 두 개 이상의 최상위 항목이 나열되는 경우 (예: 식당을 서비스 및 메뉴와 짝지은 다음 타임스탬프를 항목의 데이터가 업데이트됩니다
  • 증분 호출에서는 update_time 필드
  • 증분 호출이 일단 이루어지면 해당 피드는 반드시 타임스탬프 (dateModified)도 Google이 다시 가져오기 전에 업데이트됩니다.

Google은 2018년 12월 28일 오전 11시에 음식점:

{
  "@context": "http://schema.googleapis.com",
  "@type": "DataFeed",
  "dateModified": "2018-12-28T06:30:00-07:00",
  "dataFeedElement": [
    {
      "@type": "Restaurant",
      "@id": "http://www.provider.com/newrestaurant",
      ...
    },
    {
      "@type": "Menu",
      "@id": "http://www.provider.com/newrestaurant/menu/1"
      ...
    }
    {
      "@type": "Service",
      "@id": "http://www.provider.com/newrestaurant/service/1"
      ...
    }
  ]
}

이러한 항목은 성공적으로 처리되며 "2018-12-28T06:30:00-07:00". 일괄 피드를 처리하는 데 시간이 걸리기 때문에 일반적으로 2일 후에 게재됩니다

하지만 오후 1시에 파트너의 시스템에서 레스토랑의 휴대전화로 업데이트됩니다. 이를 통해 Google이 수신하는 다음 추가 호출이 발생합니다. 13:05 (5초 후):

POST v2/apps/provider-project/entities/http%3A%2F%2Fwww.provider.com%2Fnewrestaurant:push
Host: actions.googleapis.com
Content-Type: application/ld+json
{
// This envelope is to be used for incremental.
  "entity": {
    //Note: "data" is not serialized as a string in our example for readability.
    "data": "[entity in JSON format serialized as a string]",
    "vertical": "FOODORDERING"
  },
  "update_time":"2018-12-28T13:00:00-07:00"
}

update_time가 명시적으로 제공되며 이전 버전 (같은 날의 오전 6:30)이므로 레스토랑 항목은 이제 '2018-12-28T13:00:00-07:00'으로 버전이 지정됩니다. 하지만 메뉴 및 서비스 개체는 여전히 '2018-12-28T06:30:00-07:00'으로 버전이 지정됩니다.

증분 호출이 있었으므로 일괄 피드가 새 해당하는 타임스탬프입니다. 또한 해당하는 변경사항이 관련 항목 (음식점 법인의 전화번호가 업데이트된 경우)

{
  "@context": "http://schema.googleapis.com",
  "@type": "DataFeed",
  "dateModified": "2018-12-28T13:00:00-07:00",
  "dataFeedElement": [
    {
      "@type": "Restaurant",
      "@id": "http://www.provider.com/newrestaurant",
      ...
    },
    {
      "@type": "Menu",
      "@id": "http://www.provider.com/newrestaurant/menu/1"
      ...
    }
    {
      "@type": "Service",
      "@id": "http://www.provider.com/newrestaurant/service/1"
      ...
    }
  ]
}

다음 날 (2018년 12월 29일) 오후 11시에 피드를 다시 가져옵니다. 식당 여전히 동일한 버전 (12월 28일 오후 1시)을 가지고 있으므로 이 항목은 삭제됩니다. 현재 버전은 유지됩니다 하지만 메뉴 및 서비스 개체는 새 버전으로 업데이트되었습니다.

사이트맵 타임스탬프

사이트맵의 last-modified 응답 헤더는 사용할 수 있습니다 Google에서 피드를 가져오는 시점에 영향을 미칩니다.

권장사항

  • 모든 파일이 최신 상태이고 업데이트할 준비가 된 경우에만 응답 헤더를 업데이트합니다. 가져올 수 있습니다
  • 명시적으로 update_timedelete_time를 증분 방식으로 사용합니다.
  • update_time, delete_time, dateModified를 데이터 변경 시로 설정합니다. 도움이 될 수 있습니다