Toplu feed'lerde sürüm 1 sürümü

Toplu feed'lerinizde bir varlığın sürümü, feed'in zarfındaki dateModified alanında belirlenir:

{
  "@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 alanında listelenen tüm öğeler, zarfta listelenen zaman damgasına sahip olacak.

Örneğin, iki varlığı olan aşağıdaki feed'iniz olabilir:

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

Hem menü hem de restoran varlıkları, alınıp işlendiklerinde ayrı ayrı "&t;2018-12-28T06:30:00:123-07:00&quot" olarak üretilir.

Sürüm güncellemeleriyle birlikte sürüm oluşturma

Envanter güncellemelerini kullanarak bir varlığı gönderirken, sürüm update_time alanı (ekleme/güncelleme çağrısı durumunda) veya delete_time alanı (silinme çağrısı durumunda) üzerinden ayarlanır. Bu alanlar isteğe bağlı olduğundan varsayılan zaman damgası, Google'ın aramayı aldığı zamanı gösterecek şekilde ayarlanmıştır.

1. Örnek: update_time açık şekilde ayarlandı

Tamamen yeni bir restoran için aşağıdaki ek çağrının 2018-12-28T06:30:10:123-07:00 ayarında alındığını varsayalım. Veri feed'inin v1 envanter şemasını kullandığı varsayılırsa kimliği http://www.provider.com/somerestoran&quot olan bir varlık için HTTP POST isteği şöyledir:

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

Aşağıda JSON yükü gövdesi update_time alanını içerir. "http://www.provider.com/somerestoran" kimliğine sahip tüzel kişi, alındığı sırada değil, 6:30:00 olarak yönlendirilmesine neden olur (on saniye sonra 6:30:10'da):

{
// 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. Örnek: dolaylı_güncelleme

Tamamen yeni bir restoran için aşağıdaki ek çağrının 2018-12-28T06:30:10:123-07:00 ayarında alındığını varsayalım. Feed'in v1 envanter şemasını kullandığı varsayılarak, bu varlık için http://www.provider.com/somerestoran&quot kimliğine sahip HTTP POST isteği burada gösterilmektedir:

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

Aşağıda JSON yükü gövdesi update_time alanını içermez. Dolayısıyla, "http://www.provider.com/somerestoran&quot kimliğine sahip tüzel kişilik bu sürümle 6:30:10 sürümüne dönüştürülür:

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

Toplu ve artımlı arasında sürüm oluşturma

Google'a gönderilen bir varlık yalnızca en son sürüme sahipse işlenir ve sunulur. Toplu işlem aracılığıyla gönderilen öğelerin işlenmesinin genellikle birkaç gün sürdüğünü, ancak ek API aracılığıyla gönderilen varlıkların hemen işlendiğini unutmayın.

En iyi uygulamalar

  • update_time ve dateModified alanlarını, varlığın sistemlerinizde değiştirildiği tarihe göre sırasıyla, artımlı ve toplu olarak ayarlayın.
  • Bir toplu feed'de (dosya) birden fazla üst düzey öğe listeleniyorsa (örneğin, restoranlarınızı hizmetler ve menülerle eşliyorsanız) bir varlığın verileri güncellendiğinde zaman damgasını güncelleyin.
  • Artımlı aramalarda update_time alanını açık bir şekilde ayarlamanızı önemle tavsiye ederiz.
  • Artımlı arama yapıldığında ilgili Google zaman damgasının (dateModified) Google'ı tekrar getirmeden önce güncellenmesi de zorunludur.

Örnek

Google, 28.12.2018 tarihinde saat 11:00'de yepyeni bir restoran için şu dosyayı getirir:

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

Bu varlıklar başarıyla işlenir ve ""2018-12-28T06:30:00-07:00" Toplu feed'lerin işlenmesi zaman aldığı için bu feed'ler genellikle 2 gün sonra yayınlanır.

Ancak saat 13:00'da iş ortağının sisteminde restoranın telefon numarasında bir güncelleme var. Bu güncelleme Google'ın 13:05'te (5 saniye sonra) alacağı aşağıdaki ek çağrıyla sonuçlanıyor:

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 açıkça sağlanır ve önceki sürümden (aynı gün 06:30) daha büyüktür (daha yeni). Bu nedenle restoran varlığı artık "2018-12-28T13:00:00-07:00" sürümü olarak kullanılır. Ancak, menü ve hizmet varlıkları hâlâ “2018-12-28T06:30:00-07:00"

Artımlı bir çağrı gerçekleşmiş olduğundan toplu feed, yeni karşılık gelen zaman damgasıyla güncellenir. Ayrıca, ilgili değişiklikler ilgili tüzel kişilere uygulanır (restoranın tüzel kişisinin telefon numarası güncellenir).

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

Bir sonraki gün (29.02.2018) saat 23:00'da feed tekrar getirilir. Restoran hâlâ aynı sürüme (28 Aralık 13:00) sahip olduğundan bu varlık atlanıyor ve mevcut sürüm korunuyor. Ancak Menü ve Hizmet varlıkları yeni bir sürümle güncellenir.

Site haritası zaman damgaları

Site haritasındaki last-modified yanıt başlığı bir varlığın sürümünü etkilemez. Feed'in Google tarafından ne zaman getirileceğini etkiler.

En iyi uygulamalar

  • Yanıt başlığını yalnızca tüm dosyalar güncel ve getirilmeye hazır olduğunda güncelleyin.
  • update_time ve delete_time değerlerini açıkça artımlı olarak kullanın.
  • update_time, delete_time ve dateModified alanlarını, veriler sizin tarafınızda değiştiğinde ayarlayın.