Dizine Ekleme API'sini kullanma

Dizine ekleme API'sini, Google'a Google dizinindeki iş ilanı veya canlı yayın etkinliği sayfalarını güncellemesini ya da kaldırmasını söylemek için kullanabilirsiniz. İsteklerde web sayfasının konumu belirtilmelidir. Ayrıca Google'a gönderdiğiniz bildirimlerin durumunu da alabilirsiniz. Dizine Ekleme API'si yalnızca VideoObject içinde yerleşik JobPosting veya BroadcastEvent bulunan sayfaları tarayabilir.

Yönergeler

Dizine ekleme API'sini kullanırken aşağıdaki yönergeler geçerlidir.

  • Dizine ekleme API'si ile gönderilen içerikler için spam politikalarımız geçerlidir.
  • https://indexing.googleapis.com/v3/UrlNotifications:publish URL'sine yapılan tüm çağrılarda Content-Type başlığı olarak "application/json" kullanılması ZORUNLUDUR.
  • Güncelleme isteğinin gövde bölümünde yalnızca tek bir URL gönderebileceğiniz gibi, isterseniz Toplu dizine ekleme istekleri gönderme bölümünde açıklandığı üzere en fazla 100 isteği birleştirip toplu halde de gönderebilirsiniz. Gönderim sınırlarımızı, birden fazla hesap kullanma gibi yöntemlerle atlatmayın.
  • Bu örneklerdeki isteğin gövde bölümü, erişim jetonu örneklerinde kullanılan content değişkeninin değeridir.

API ile yapabilecekleriniz

Dizine Ekleme API'sine bir istek gönderdiğinizde bağımsız bir web sayfasının konumunu belirtin. Böylece Google bu sayfayı tarayabileceğini veya dizininden kaldırabileceğini bilir.

Aşağıda, Dizine Ekleme API'si ile gerçekleştirebileceğiniz işlemlere örnekler bulabilirsiniz:

Örnekler
URL güncelleme

https://indexing.googleapis.com/v3/urlNotifications:publish uç noktasına aşağıdaki HTTP POST isteğini gönderin. Örneğin:

{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
URL kaldırma

https://indexing.googleapis.com/v3/urlNotifications:publish uç noktasına aşağıdaki HTTP POST isteğini gönderin. Örneğin:

{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_DELETED"
}
Bildirim durumu alma

https://indexing.googleapis.com/v3/urlNotifications/metadata uç noktasına bir HTTP GET isteği gönderin.

Parametreler

Aşağıdaki tabloda, tüm yöntemler (URL güncelleme ve kaldırma) için gerekli alanlar açıklanmaktadır:

Alanlar
url

Zorunlu

Güncellemek veya kaldırmak istediğiniz öğenin tam konumu.

type

Zorunlu

Gönderdiğiniz bildirimin türü.

URL güncelleme

Google'a taranacak yeni bir URL'nin olduğunu veya daha önce gönderilen bir URL'nin içeriğinin güncellendiğini bildirmek için şu adımları uygulayın:

  1. Aşağıdaki uç noktaya bir HTTP POST isteği gönderin:
    https://indexing.googleapis.com/v3/urlNotifications:publish
  2. İsteğin gövde bölümünde, aşağıdaki söz dizimini kullanarak sayfanın konumunu belirtin:
    {
      "url": "CONTENT_LOCATION",
      "type": "URL_UPDATED"
    }
  3. Google, başarılı Dizine Ekleme API'si çağrılarına HTTP 200 ile yanıt verir. HTTP 200 yanıtı, Google'ın bu URL'yi yakında yeniden taramaya çalışabileceği anlamına gelir. Yanıtın gövde bölümünde bir UrlNotificationMetadata nesnesi bulunur. Bu nesnenin alanları, bildirim durumu isteği tarafından döndürülen alanlara karşılık gelir.
  4. Bir HTTP 200 yanıtı almazsanız Dizine Ekleme API'sine özgü hatalar bölümüne bakın.
  5. Sayfanın içeriği değişirse Google'ın sayfayı yeniden taramasını sağlayacak başka bir güncelleme bildirimi gönderin.
  6. Dizine ekleme API'si, test için varsayılan bir kota sağlar. API'yi kullanmak için onay ve kota isteğinde bulunun.

URL kaldırma

Sunucularınızdan bir sayfayı sildikten veya belirli bir sayfanın <head> bölümüne <meta name="robots" content="noindex" /> etiketini ekledikten sonra bunu Google'a bildirin. Böylece sayfayı dizinimizden kaldırabilir ve söz konusu sayfayı tekrar taramaya ve dizine eklemeye çalışmayız. Kaldırma isteğinde bulunmadan önce URL'nin 404 veya 410 durum kodu döndürmesi ya da sayfanın <meta name="robots" content="noindex" /> meta etiketi içermesi gerekir.

Bir sayfanın dizinimizden kaldırılmasını istemek için aşağıdaki adımları uygulayın:

  1. Aşağıdaki uç noktaya bir POST isteği gönderin:
    https://indexing.googleapis.com/v3/urlNotifications:publish
  2. İsteğin gövde bölümünde, aşağıdaki söz dizimini kullanarak kaldırmak istediğiniz URL'yi belirtin:
    {
      "url": "CONTENT_LOCATION",
      "type": "URL_DELETED"
    }

    Örneğin:

    {
      "url": "https://careers.google.com/jobs/google/technical-writer",
      "type": "URL_DELETED"
    }
  3. Google, başarılı Dizine Ekleme API'si çağrılarına HTTP 200 ile yanıt verir. HTTP 200 yanıtı, Google'ın bu URL'yi dizinden kaldırabileceği anlamına gelir. Yanıtın gövde bölümünde bir UrlNotificationMetadata nesnesi bulunur. Bu nesnenin alanları, bildirim durumu isteği tarafından döndürülen alanlara karşılık gelir.
  4. Bir HTTP 200 yanıtı almazsanız Dizine Ekleme API'sine özgü hatalar bölümüne bakın.
  5. Dizine ekleme API'si, test için varsayılan bir kota sağlar. API'yi kullanmak için onay ve kota isteğinde bulunun.

Bildirim durumu alma

Dizine Ekleme API'sini kullanarak, Google'ın belirli bir URL için her bildirim türünü en son ne zaman aldığını kontrol edebilirsiniz. GET isteği, Google'ın bir URL'yi ne zaman dizine eklediğini veya kaldırdığını söylemez; yalnızca başarılı bir şekilde istek gönderip göndermediğinizi döndürür.

Bir bildirimin durumunu öğrenmek için aşağıdaki adımları uygulayın:

  1. Aşağıdaki uç noktaya bir GET isteği gönderin: Belirttiğiniz URL'ler URL kodlamalı olmalıdır. Örneğin, : (iki nokta) işaretinin yerine %3A ve / (düz eğik çizgi) işaretinin yerine de %2F kullanın.
    https://indexing.googleapis.com/v3/urlNotifications/metadata?url=ENCODED_URL

    Örneğin:

    GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
  2. Dizine Ekleme API'si, bildirimle ilgili ayrıntıların yer aldığı bir yük içeren HTTP 200 mesajıyla yanıt verir. Aşağıdaki örnekte, bir güncelleme ve silme bildirimi hakkında bilgi içeren bir yanıtın gövde bölümü gösterilmektedir:
    {
      url: "http://foo.com",
      latest_update: {
        type: "URL_UPDATED",
        notify_time: "2017-07-31T19:30:54.524457662Z"
      },
      latest_remove: {
        type: "URL_DELETED",
        notify_time: "2017-08-31T19:30:54.524457662Z"
      }
    }
  3. Bir HTTP 200 yanıtı almazsanız Dizine Ekleme API'sine özgü hatalar bölümüne bakın.
  4. Dizine ekleme API'si, test için varsayılan bir kota sağlar. API'yi kullanmak için onay ve kota isteğinde bulunun.

Toplu dizine ekleme isteği gönderme

İstemcinizin kurması gereken HTTP bağlantılarının sayısını azaltmak için, Dizine Ekleme API'sine yapılan en fazla 100 çağrıyı tek bir HTTP isteği bünyesinde birleştirebilirsiniz. Bunu, çok bölümlü bir istek üzerinden toplu halde yaparsınız.

Dizine Ekleme API'sine toplu istek gönderirken aşağıdaki uç noktayı kullanın:

https://indexing.googleapis.com/batch

Toplu isteğin gövde bölümü birden fazla parçadan oluşur. Her bir parça kendi yüklemi, URL'si, başlıkları ve gövdesi ile kendi başına eksiksiz bir HTTP isteğidir. Toplu istekteki her parça en fazla 1 MB boyutunda olabilir.

Toplu istek göndermenizi kolaylaştırmak için, Google'ın API İstemci Kitaplıkları, toplu hale getirme işlevini destekler. İstemci kitaplıklarını kullanarak toplu hale getirme hakkında daha fazla bilgi için aşağıdaki dile özgü sayfalara bakın:

Bu sayfalardaki toplu hale getirme örneklerini kullanıyorsanız, kodunuzu, Erişim jetonu alma bölümünde açıklanan uygulama gereksinimlerini yansıtacak şekilde güncellemeniz gerekebilir.

Aşağıdaki örnek toplu istek mesajının gövde bölümünde bir güncelleme bildirimi ve bir kaldırma bildirimi yer almaktadır:

POST /batch HTTP/1.1
Host: indexing.googleapis.com
Content-Length: content_length
Content-Type: multipart/mixed; boundary="===============7330845974216740156=="
Authorization: Bearer oauth2_token

--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2>

POST /v3/urlNotifications:publish [1]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/42", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+1>

POST /v3/urlNotifications:publish [2]
Content-Type: application/json
accept: application/json
content-length: 75

{ "url": "http://example.com/widgets/1", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+3>

POST /v3/urlNotifications:publish [3]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/43", "type": "URL_DELETED" }
--===============7330845974216740156==

Daha fazla bilgi için Toplu İstek Gönderme bölümüne bakın.