Değişim

Kaynakların çoğu, Mutate yöntemi kullanılarak değiştirilir (oluşturulur, güncellenir veya kaldırılır). Mutate yöntemi, kaynak adına ait kalıpla eşleşen ve kaynak kimliği içermeyen kaynağa özel bir URL'ye HTTP POST olarak çağrılır. Bunun yerine, mutasyona uğratılacak kaynakların kimlikleri JSON istek gövdesinde gönderilir. Bu sayede, farklı kaynaklarda birden fazla işlem içeren tek bir API çağrısı gönderebilirsiniz.

Örneğin, bir kampanyanın kaynak adı aşağıdaki biçimi kullanır:

customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID

Kampanyaların mutasyonu için kullanılan URL'yi elde etmek üzere, son kaynak kimliğini çıkarın ve :mutate ekleyin:

https://googleads.googleapis.com/v19/customers/CUSTOMER_ID/campaigns:mutate

Mutate mesajı, birçok operation nesnesi içerebilen bir operations dizisi içeren üst düzey bir JSON nesnesi içerir. Her işlem sırasıyla create, update veya remove olabilir. Olası tek mutasyon işlemleri bunlardır.

POST /v19/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    ...
  ]
}

Çoğu hizmet, tek bir API çağrısında binlerce işlemi destekler. Sistem Sınırları kılavuzunda istek boyutlarıyla ilgili sınırlamalar açıklanmaktadır.

Tek bir API isteğinde yer alan işlemler varsayılan olarak tek bir işlem grubu olarak yürütülür. Yani, tek bir işlem başarısız olursa tüm grup başarısız olur veya tüm işlemler başarılı olursa tüm grup başarılı olur. Bazı hizmetler bu davranışı değiştirmek için partialFailure özelliğini destekler. Değiştirme işleminin semantiği hakkında daha ayrıntılı bilgi için Kaynakları Değiştirme başlıklı makaleyi inceleyin.

Oluştur

Oluşturma işlemleri yeni öğeler oluşturur ve oluşturmayı amaçladığınız kaynağın tam JSON temsilini içermelidir.

POST /v19/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
    "create": {
        "name": "An example campaign",
        "status": "PAUSED",
        "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/CAMPAIGN_BUDGET_ID",
        "advertisingChannelType": "SEARCH",
        "networkSettings": {
          "targetGoogleSearch": true,
          "targetSearchNetwork": true,
          "targetContentNetwork": true,
          "targetPartnerSearchNetwork": false
        },
        "target_spend": {}
      }
    }
  ]
}

Güncelle

Güncelleme işlemleri, mevcut bir kaynakta seyrek güncellemeler gerçekleştirir. Yalnızca değiştirmek istediğiniz alanları belirtmeniz yeterlidir.

Güncellemek istediğiniz alanları belirtmek için updateMask özelliğini virgülle ayrılmış bir alan adı listesine ayarlayın. Bu özellikle, bir nesnenin tamamen oluşturulmuş bir JSON temsiline sahipseniz (örneğin, önceki bir API çağrısı tarafından döndürülen şekilde) ancak yalnızca belirli alanları değiştirmek istiyorsanız kullanışlıdır. JSON nesnesini budamak yerine, updateMask içinde değiştirilecek alan adlarını listeleyebilir ve JSON nesnesinin tamamını gönderebilirsiniz.

Aşağıdaki örnekte, belirli bir resourceName değerine sahip mevcut bir kampanyanın name ve status değerleri değiştirilmektedir.

POST /v19/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
      "updateMask": "name,status",
      "update": {
        "resourceName": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID",
        "name": "My renamed campaign",
        "status": "PAUSED",
      }
    }
  ]
}

Kaldır

Kaldırma işlemleri, bir nesneyi etkili bir şekilde silerek Google Ads durumunu REMOVED olarak ayarlar. Yalnızca kaldırılacak resourceName gereklidir.

POST /v19/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
      "remove": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID"
    }
  ]
}