Dizine Ekleme API'sini kullanma

Genel Bakış

Dizine Ekleme API'sini Google'a Google dizinindeki sayfaları güncellemesini veya 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. Şu anda Dizine Ekleme API'si sadece iş ilanı veya canlı yayın yapılandırılmış verilerini içeren sayfaları taramak için kullanılabilir.

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:

URL güncelleme
POST https://indexing.googleapis.com/v3/urlNotifications:publish
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
URL kaldırma
POST https://indexing.googleapis.com/v3/urlNotifications:publish
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_DELETED"
}
Bildirim durumu alma
GET https://indexing.googleapis.com/v3/urlNotifications/metadata

Parametreler

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

Alanlar
url

Gerekli

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

type

Gerekli

Gönderdiğiniz bildirimin türü.

Yönergeler

Aşağıdaki yönergeler URL güncelleme ve kaldırma istekleri için 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" öğesinin 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.
  • Bu örneklerdeki isteğin gövde bölümü, erişim jetonu örneklerinde kullanılan content değişkeninin değeridir.

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 aşağıdaki adımları uygulayın:

  1. Aşağıdaki uç noktaya bir POST isteği gönderin:
    POST 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. 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. Varsayılandan daha fazla kotaya ihtiyacınız olabilir. Mevcut kotanızı görüntülemek ve daha fazla kota istemek için Kota bölümüne bakın.

URL kaldırma

Sunucularınızdan bir sayfayı silerseniz bunu Google'a bildirin. Böylece sayfayı dizinimizden kaldırabilir ve söz konusu URL'yi tekrar taramaya çalışmayız. Kaldırma isteğinde bulunmadan önce sayfayı sunucunuzdan kaldırmanız ve URL'nin 404 ya da 410 durum kodu döndürmesi 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:
    POST 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. HTTP 200 yanıtı almazsanız Dizine Ekleme API'sine özgü hatalar bölümüne bakın.
  5. Varsayılandan daha fazla kotaya ihtiyacınız olabilir. Mevcut kotanızı görüntülemek ve daha fazla kota istemek için Kota bölümüne bakın.

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 almak 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, / (düz eğik çizgi) işaretinin yerine de %2F kullanın.
    GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=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. HTTP 200 yanıtı almazsanız Dizine Ekleme API'sine özgü hatalar bölümüne bakın.
  4. Varsayılandan daha fazla kotaya ihtiyacınız olabilir. Mevcut kotanızı görüntülemek ve daha fazla kota istemek için Kota bölümüne bakın.

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.

Şunun hakkında geri bildirim gönderin...