Google Ads API'de bazı mesaj alanları boş mesaj nesneleri olarak tanımlanır
Örneğin campaign.manual_cpm
,
veya yalnızca ayarlanması gerekmeyen isteğe bağlı alanlara sahip olabilir (örneğin,
campaign.manual_cpc
. Bunları ayarlamak
alanları, her bir dönüşüm hunisi için hangi teklif stratejisinin kullanılacağını API'ye
Kampanya, ancak mesajlar boş olduğunda sezgisel değildir.
Dize olan campaign.name
alanını güncellerken alanı
Böylece, bunu normal bir Python nesne özelliği gibi doğrudan güncelleyebilirsiniz:
campaign.name = "Test campaign value"
campaign.manual_cpc
, iç içe yerleştirilmiş bir alandır. Yani şunu içerir:
başka bir protobuf mesajı görürsünüz. Siz
alanını doğrudan güncelleyebilir:
campaign.manual_cpc.enhanced_cpc_enabled = True
Bu işlem API'ye bu Kampanyanın teklif stratejisinin manual_cpc
olduğunu bildirir
teklif verebilirsiniz.
Peki, boş olan manual_cpm
öğesini kullanmak isterseniz ne olur? Veya manual_cpc
geliştirilmiş mi? Bunu yapmak için, ayrı bir
kodunu kampanyaya ekleyin. Örneğin:
client = GoogleAdsClient.load_from_storage()
empty_cpm = client.get_type('ManualCpm')
client.copy_from(campaign.manual_cpm, empty_cpm)
campaign
nesnesi için manual_cpm
öğesinin nasıl belirtildiğine dikkat edin:
name {
value: "Test campaign value"
}
manual_cpm {
}
manual_cpm
alanı ayarlanmış ancak hiçbirinde değer yok. Gönderilirken
bu kalıbı kullanan API'ye isteği gönderirseniz,
logging özelliğini etkinleştirerek ve
gerekir.
Son olarak, bu alanı istek nesnesine manuel olarak
update_mask
Alan maskesi yardımcısının
açıkça boş bir nesneye ayarlanmış bir alanla
bir alan adı olacaktır.
from google.api_core.protobuf_helpers import field_mask
campaign_operation.create = campaign
campaign_operation.update_mask = field_mask(None, campaign)
# Here we manually add the "manual_cpm" field
campaign_operation.update_mask.append("manual_cpm")