Toplu feed'lerde v1 sürüm oluşturma

Toplu feed'lerinizde bir öğenin sürümü Feed'in zarfındaki dateModified alanı:

{
  "@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 varlıklar aynı zaman damgasına sahip olur. e-postada belirtildiği gibi gönderin.

Örneğin, iki öğe içeren 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şlendikten sonra şeklinde olacaktır.

Artımlı güncellemelerle sürüm oluşturma

Envanter güncellemelerini kullanarak bir varlık gönderirken sürüm update_time alanını (ekleme/güncelleme çağrısında) veya delete_time alanına dokunun (silme çağrısı durumunda). Bu alanlar isteğe bağlı olduğundan, varsayılan zaman damgası, Google'ın aramayı aldığı zamana ayarlanır.

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

2018-12-28T06:30:10:123-07:00 tamamen yeni bir restoran için. Bu varlık için HTTP POST isteği "http://www.provider.com/somerestoran" kimliğiyle, veri feed'inin v1 envanter şeması:

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çermektedir. İlgili varlık Kimlik "http://www.provider.com/restoran" bu varlığın bu sürüm 6:30:00 olarak oluşturulur ve alındığında (on saniye sonra) 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. Örnek: Update_time dolaylı yoldan ayarlandı

2018-12-28T06:30:10:123-07:00 tamamen yeni bir restoran için. Bu varlık için HTTP POST isteği "http://www.provider.com/birrestoran" kimliğiyle (feed'in v1'i kullandığı varsayılarak) envanter şeması:

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ğıdaki JSON yük gövdesi, update_time alanını içermez. İlgili içeriği oluşturmak için kullanılan "http://www.provider.com/restoran" kimliğine sahip varlık Bu nedenle, 6:30:10 olarak sürüm oluşturulan bu varlık:

{
// 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ı sürümler arasında sürüm oluşturma

Google'a gönderilen bir varlık, yalnızca en güncel sürümünü değil. Toplu taşıma işlemiyle gönderilen varlıkların alınmasının genellikle birkaç gün sürdüğünü unutmayın işlenir. Artımlı API üzerinden gönderilen öğeler ise işlenir. hemen teslim edebilirsiniz.

En iyi uygulamalar

  • update_time ve dateModified alanlarını artımlı ve toplu olarak ayarlayın. değişiklik yapıldığından emin olun.
  • Bir toplu feed'de (dosya) birden fazla üst düzey öğe listeleniyorsa (örneğin, restoranlarınızı hizmetler ve menülerle eşleştirin) ardından zaman damgasını bir öğeye ait verilerin güncellenmesini sağlar.
  • Artımlı çağrılarda, update_time alanı boş bırakılamaz.
  • Artımlı bir çağrı yapıldıktan sonra ilgili feed'in Google tarafından tekrar gelmeden önce zaman damgası (dateModified) da güncellenir.

Örnek

Google, aşağıdaki dosyayı 28.12.2018 tarihinde saat 11:00'de getirir ve tamamen restoran:

{
  "@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ığından genellikle 2 gün sonra yayınlanır.

Ancak 13:00'te iş ortağının sistemi, restoranın telefonuna ilişkin bir güncelleme yapar. Bu da Google'ın aldığı aşağıdaki artımlı çağrıyla sonuçlanır 13:05'te (5 saniye sonra):

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 bir şekilde sağlanmış ve aynı günün 06:30'u gibi). Böylece restoran varlığı sürümü "2018-12-28T13:00:00-07:00" şeklinde görünür. Ancak menü ve hizmet varlıkları sürümü de "2018-12-28T06:30:00-07:00" şeklinde olacak.

Artımlı bir çağrı olduğundan toplu feed, yeni ekleyebilirsiniz. Ayrıca, ilgili değişiklikler (restoran tüzel kişisinin telefon numarası güncellenmiş olmalıdır).

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

Ertesi gün (29.12.2018) saat 23:00'te feed tekrar getirilir. Restoran hâlâ aynı sürüme sahip olduğundan (28 Aralık, 13:00) bu varlık atlanıyor ve geçerli sürüm korunur. Bununla birlikte, menü ve hizmet varlıkları yeni bir sürümle güncellendi.

Site haritası zaman damgaları

Site haritasındaki last-modified yanıt üstbilgisi, bir öğe sürümü olabilir. 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 güncellenmeye hazır olduğunda güncelleyin. getirildiğinden emin olun.
  • update_time ve delete_time öğelerini açık bir şekilde artımlı olarak kullanın.
  • update_time, delete_time ve dateModified özelliklerini verilerin değiştiği zamana ayarlayın tercih edebilirsiniz.