Google Ads komut dosyaları, Maksimum Performans kampanyalarınızın bir kısmının yönetilmesini sağlar.
Maksimum Performans kampanyalarını almak, öğe gruplarını yönetmek ve rapor çalıştırmak için komut dosyalarını kullanabilirsiniz ancak Maksimum Performans kampanyaları oluşturmak için komut dosyalarını kullanamazsınız. Daha gelişmiş işlemler yapmak için bu kılavuzun geri kalanına bakın. Bu bölümde, mutate
kullanılarak daha genel bir yaklaşım gösterilmektedir.
Maksimum Performans kampanyalarını alma
Maksimum Performans kampanyaları, performanceMaxCampaigns
AdsApp
nesnesinin toplanmasıyla kullanılabilir. Bu mesajları her zamanki gibi alabilirsiniz:
const campaignName = "My Performance Max campaign";
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
Diğer bazı kampanya türlerinin aksine, Maksimum Performans kampanyalarında görebileceğiniz reklam grupları veya reklam nesneleri yoktur. Diğer kampanyalarda bu kavramlarla ilgili her şey, ayarladığınız öğe gruplarına göre sizin için otomatik olarak yönetilir.
Öğeler ve öğe grupları
Maksimum Performans kampanyalarındaki reklamlar, videolar, resimler, başlıklar ve açıklamalar gibi öğelerden yararlanır. Bu öğeler sizin tarafınızdan sağlanır veya otomatik olarak oluşturulur. Hangi tür öğelerin gerekli olduğuna dair eksiksiz bir genel bakış için Google Ads API Maksimum Performans öğe kılavuzuna bakın.
Maksimum Performans kampanyalarındaki öğeler bir öğe grubunda toplanır ve her Maksimum Performans kampanyasında en az bir öğe grubu bulunmalıdır. Bu öğe gruplarını doğrudan komut dosyalarında oluşturamazsınız ancak mevcut bir öğe grubuna öğe ekleyip öğe kaldırabilirsiniz.
Öğe grubuna öğe ekleme
Öncelikle öğeyi oluşturun:
const imageUrl = "http://www.example.com/example.png";
const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
const assetOperation = AdsApp.adAssets().newImageAssetBuilder()
.withName("new asset name")
.withData(imageBlob)
.build();
const imageAsset = assetOperation.getResult();
Ardından, yeni oluşturduğunuz öğeyi kullanarak mevcut bir öğe grubuna ekleyin:
// First, fetch the Performance Max campaign we want to operate on.
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = '${campaignName}'`)
.get();
let campaign;
if (campaignIterator.hasNext()) {
campaign = campaignIterator.next();
} else {
throw `No campaign found with name ${campaignName}.`
}
// Then, get that campaign's asset groups.
const assetGroupIterator = campaign.assetGroups().get();
// The campaign must have at least one asset group, so we can just assume so here.
const assetGroup = assetGroupIterator.next();
// Add the asset from the previous step.
assetGroup.addAsset(imageAsset, 'MARKETING_IMAGE');
Son adımda öğe türünü belirtmeniz gerektiğini unutmayın. Öğe türlerinin tam listesini Google Ads API dokümanlarında bulabilirsiniz.
Mevcut bir öğeyi kullanmak için önce bir öğe seçici oluşturun:
const assetSelector = AdsApp.adAssets().assets();
Ardından, üzerinde işlem yapmak istediğiniz öğeleri daraltmak için withCondition
filtre kullanın. Filtre seçeneklerinin tam listesi için AssetSelector
referans belgelerine bakın.
Son olarak, yineleyiciyi getirin ve diğer öğelerde olduğu gibi yineleyin:
const assetIterator = assetSelector.get();
for (const asset of assetIterator) {
...
}
Metin öğeleri
Metin öğelerinin işleyiş şekli biraz farklıdır. Öğeyi önceden oluşturmanız gerekmez. Öğe yerine yalnızca metni belirtmeniz yeterlidir. Sistem, öğeyi sizin için otomatik olarak oluşturur. Metin, mevcut bir metin öğesinin tam kopyasıysa bunun yerine mevcut öğe yeniden kullanılır.
Örneğin, başlık öğesi oluşturmak için aşağıdaki adımları uygulayın:
assetGroup.addAsset('asset text here', 'HEADLINE');
Öğeyi öğe grubundan kaldırma
Ayrıca, bir öğeyi öğe grubundan da kaldırabilirsiniz. Ancak kampanyanın geçerli olması için belirli türlerdeki öğelerden minimum sayıda bulundurmanız gerektiğini unutmayın.
Önceki örnekte eklenen öğeyi kaldırmak için aşağıdaki adımları uygulayın:
assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');
Ayrıca, belirli bir öğe grubundaki öğelerin listesini search
işleviyle de alabilirsiniz:
// The resource name is a unique identifier for this asset group.
const assetGroupName = assetGroup.getResourceName();
results = AdsApp.search(
`SELECT asset.resource_name, asset_group_asset.field_type
FROM asset_group_asset
WHERE asset_group.resource_name = '${assetGroupName}'`
);
Bu işlem, öğenin kaynak adını benzersiz tanımlayıcısı olarak seçer. Sonuçları daha da daraltmak için asset.type
veya asset.text_asset.text
gibi başka alanlar da seçebilirsiniz. Kendi sorgunuzu oluşturmak için bu rapor türüyle ilgili sorgu oluşturucuyu kullanın.
Hedef öğeyi aldıktan sonra, öğeyi öğe grubundan kaldırmak için öğe grubunda remove
işlevini çağırın:
// Let's assume at least one asset is returned. We'll just remove the first
// asset, whatever it is. In your code, customize this to choose the right asset.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);