Maksimum Performans kampanyalarınızı Google Ads komut dosyalarıyla yönetmenin en iyi yolu, Maksimum Performans kampanyalarınızın doğrudan yönetimini sağlamak için değişiklik stratejisini kullanmaktır. Maksimum Performans kampanyaları yalnızca mutate işleviyle oluşturulabilir. Ancak isterseniz Maksimum Performans kampanyalarını almak, öğe gruplarını yönetmek ve rapor çalıştırmak için diğer AdsApp nesnelerini de kullanabilirsiniz.
Maksimum Performans kampanyalarını alma
Maksimum Performans kampanyaları, bir AdsApp nesnesinin performanceMaxCampaigns koleksiyonu aracılığıyla kullanılabilir. Bunları 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, belirlediğiniz öğe gruplarına göre sizin için otomatik olarak işlenir.
Öğeler ve öğe grupları
Maksimum Performans kampanyalarındaki reklamlar, sizin sağladığınız veya otomatik olarak oluşturulan video, resim, başlık ve açıklama gibi öğelerden yararlanır. Hangi tür öğelerin gerekli olduğuna dair kapsamlı bir genel bakış için Google Ads API Maksimum Performans öğe kılavuzuna bakın.
Maksimum Performans kampanyalarının öğeleri 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 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 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 belgelerinde 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 bir withCondition filtresi kullanın. Filtre seçeneklerinin tam listesi için AssetSelector bölümüne bakın.
Son olarak, iteratörü alın ve diğer varlıklarda olduğu gibi iterasyon yapın:
const assetIterator = assetSelector.get();
for (const asset of assetIterator) {
...
}
Metin öğeleri
Metin öğeleri biraz farklı çalışır. Öğeyi önceden oluşturmanız gerekmez. Öğe yerine yalnızca metni belirtirsiniz ve 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ı uygulayabilirsiniz:
assetGroup.addAsset('asset text here', 'HEADLINE');
Öğeyi öğe grubundan kaldırma
Bir öğeyi öğe grubundan da kaldırabilirsiniz. Ancak kampanyanın geçerli olması için her öğe grubunda belirli türlerdeki öğelerden minimum sayıda bulunması gerektiğini unutmayın.
Önceki örnekte eklenen öğeyi kaldırmak için:
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, öğ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üne yönelik sorgu oluşturucuyu kullanın.
Hedef öğeyi aldıktan sonra öğe grubunda remove yöntemini çağırarak öğeyi öğe grubundan kaldırın:
// This example assumes at least one asset is returned. We'll remove the first
// asset, whatever it is. In your code, customize this to choose the right
// asset to be removed.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);