Kampanye Performa Maksimal menggunakan AdsApp

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

Pengambilan kampanye Performa Maksimal

Kampanye Performa Maksimal tersedia melalui kumpulan performanceMaxCampaigns objek 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 beberapa jenis kampanye lainnya, kampanye Performa Maksimal tidak memiliki grup iklan atau objek iklan yang dapat Anda lihat; semua yang terkait dengan konsep ini untuk kampanye lain ditangani secara otomatis untuk Anda berdasarkan grup aset yang Anda tetapkan.

Aset dan grup aset

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

Aset untuk kampanye Performa Maksimal dipaketkan bersama ke dalam grup aset, dan setiap kampanye Performa Maksimal harus memiliki minimal 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.

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

Kemudian, 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 dokumentasi Google Ads API

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

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

Kemudian, gunakan filter withCondition untuk mempersempit aset yang ingin Anda operasikan. Lihat dokumentasi referensi AssetSelector untuk mengetahui daftar lengkap opsi filter.

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

const assetIterator = assetSelector.get();

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

Aset teks

Aset teks berfungsi sedikit berbeda, karena Anda tidak perlu membuat aset lebih awal. Anda cukup menentukan teks, bukan aset, dan sistem akan membuat aset untuk Anda secara otomatis. Jika teks merupakan duplikat persis dari aset teks yang ada, aset yang ada akan digunakan kembali.

Misalnya, berikut cara membuat aset judul:

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

Menghapus aset dari grup aset

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

Berikut adalah cara menghapus aset yang ditambahkan dalam contoh sebelumnya:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

Anda juga bisa mendapatkan daftar aset dalam grup aset tertentu dengan fungsi search:

// 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 juga dapat memilih kolom lain, seperti asset.type atau asset.text_asset.text, untuk menyaring hasil lebih lanjut. Gunakan pembuat kueri untuk jenis laporan ini untuk membuat 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);