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"" 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" 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" 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" 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
vedateModified
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
vedelete_time
değerlerini açıkça artımlı olarak kullanın.update_time
,delete_time
vedateModified
alanlarını, veriler sizin tarafınızda değiştiğinde ayarlayın.