Kampanye Performa Maksimal menggunakan AdsApp

Skrip Google Ads menyediakan beberapa pengelolaan kampanye Performa Maksimal kampanye. Anda dapat menggunakan skrip untuk mengambil kampanye Performa Maksimal, mengelola grup aset, dan menjalankannya laporan; Namun, Anda tidak dapat menggunakan skrip untuk membuat kampanye Performa Maksimal. Kepada melakukan operasi lanjutan, lihat bagian selanjutnya dari panduan ini, yang menunjukkan pendekatan yang lebih umum menggunakan mutate.

Pengambilan kampanye Performa Maksimal

Kampanye Performa Maksimal tersedia melalui performanceMaxCampaigns kumpulan AdsApp . Anda dapat mengambilnya seperti biasa:

const campaignName = "My Performance Max campaign";

const campaignIterator = AdsApp.performanceMaxCampaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get();

for (const campaign of campaignIterator) {
  ...
}

Tidak seperti jenis kampanye lainnya, kampanye Performa Maksimal tidak memiliki iklan grup atau objek iklan yang dapat Anda lihat; segala sesuatu yang terkait dengan konsep-konsep ini untuk kampanye lain ditangani secara otomatis untuk Anda berdasarkan grup aset atur.

Aset dan grup aset

Iklan dari kampanye Performa Maksimal berjalan dari aset seperti video, gambar, judul, dan deskripsi—baik yang Anda sediakan maupun dibuat secara otomatis. Untuk ringkasan lengkap tentang jenis aset diperlukan, lihat aset Performa Maksimal Google Ads API panduan kami.

Aset untuk kampanye Performa Maksimal digabungkan menjadi satu grup aset, dan setiap kampanye Performa Maksimal harus memiliki setidaknya satu grup aset. Anda tidak dapat membuat grup aset ini secara langsung dalam skrip, tetapi Anda dapat menambahkan dan menghapus aset dari grup aset yang ada.

Tambahkan aset ke grup aset

Pertama, buat aset:

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();

Lalu, menggunakan aset yang baru saja Anda buat, tambahkan aset tersebut ke grup aset yang ada:

// 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');

Perhatikan bahwa Anda harus menentukan jenis aset di langkah terakhir. Anda dapat menemukan daftar lengkap jenis aset di Google Ads API dokumentasi

Untuk menggunakan aset yang ada, buat pemilih aset terlebih dahulu:

const assetSelector = AdsApp.adAssets().assets();

Lalu, gunakan filter withCondition untuk mempersempit ke aset yang ingin Anda beroperasi. Lihat AssetSelector dokumentasi referensi untuk daftar lengkap opsi filter.

Terakhir, ambil iterator dan lakukan iterasi seperti dengan entity lainnya:

const assetIterator = assetSelector.get();

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

Aset teks

Cara kerja aset teks sedikit berbeda, yaitu Anda tidak perlu membuat aset terlebih dahulu. Anda hanya menentukan teks, bukan aset, dan sistem akan membuat aset secara otomatis. Jika teks merupakan duplikat yang tepat dari aset teks yang ada, aset yang ada akan digunakan kembali.

Misalnya, berikut cara membuat aset judul:

assetGroup.addAsset('asset text here', 'HEADLINE');

Hapus aset dari grup aset

Anda juga dapat menghapus aset dari grup aset; Namun, perlu diingat bahwa Anda harus memiliki jumlah minimum jenis aset agar kampanye menjadi valid.

Berikut cara menghapus aset yang ditambahkan pada contoh sebelumnya:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

Anda juga bisa mendapatkan daftar aset di grup aset tertentu dengan search {i>function<i}:

// 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}'`
);

Tindakan ini akan memilih nama resource aset sebagai ID uniknya. Anda dapat pilih juga kolom lain, seperti asset.type atau asset.text_asset.text untuk untuk lebih mempersempit hasilnya. Menggunakan pembuat kueri untuk laporan ini type untuk dibuat kueri Anda sendiri.

Setelah Anda memiliki aset target, panggil remove di grup aset untuk menghapus aset dari grup aset:

// 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);