AdsApp'in kullanıldığı Maksimum Performans kampanyaları

Google Ads komut dosyaları, Maksimum Performans kampanyalarınızın bir kısmını yönetmenize olanak tanır. 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. Burada, mutate kullanılarak daha genel bir yaklaşım gösterilmektedir.

Maksimum Performans kampanyalarının getirilmesi

Maksimum Performans kampanyaları, AdsApp sınıfından bir performanceMaxCampaigns sınıfı 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 yönetilir.

Öğeler ve öğe grupları

Maksimum Performans kampanyalarındaki reklamlar, videolar, resimler, başlıklar ve açıklamalar gibi öğelerden (sizin tarafınızdan sağlanan veya otomatik olarak oluşturulan) yararlanır. Ne tür öğelerin gerekli olduğuna dair tam bir genel bakış için Google Ads API Maksimum Performans öğe kılavuzuna bakın.

Maksimum Performans kampanyalarının öğeleri bir öğe grubu içinde gruplandırılı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 ekleyebilir ve mevcut öğeleri kaldırabilirsiniz.

Öğe grubuna öğe ekleme

İlk olarak öğ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ü nasıl 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, işlem yapmak istediğiniz öğelere göre daraltmak için withCondition filtresini kullanın. Filtre seçeneklerinin tam listesi için AssetSelector referans dokümanlarına bakın.

Son olarak, iteratörü getirin ve diğer öğelerde olduğu gibi iterasyon yapın:

const assetIterator = assetSelector.get();

for (const asset of assetIterator) {
   ...
}

Metin öğeleri

Metin öğelerinin işleyiş şekli biraz farklıdır. Bu öğeleri önceden oluşturmanız gerekmez. Öğe yerine 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

Bir öğeyi öğe grubundan da kaldırabilirsiniz. Ancak kampanyanın geçerli olması için belirli türde öğelerin minimum sayısını sağlamanız gerektiğini unutmayın.

Önceki örnekte eklenen öğeyi kaldırmak için:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

search işlevini kullanarak belirli bir öğe grubundaki öğelerin listesini 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 benzersiz tanımlayıcısı olarak öğenin kaynak adını seçer. Sonuçları daha da hassaslaştırmak 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ü için sorgu oluşturucuyu kullanın.

Hedef öğeyi bulduktan 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);