Google Ads 스크립트를 사용하면 실적 최대화 캠페인을 관리할 수 있습니다.
캠페인에서 찾을 수 있습니다. 이때
스크립트를 사용하여 실적 최대화 캠페인을 검색하고, 애셋 그룹을 관리하고,
보고서 그러나 스크립트를 사용하여 실적 최대화 캠페인을 만들 수는 없습니다. 받는사람
고급 작업을 수행하려면 이 가이드의 나머지 부분을 참조하세요.
mutate
를 사용하여 더 일반적인 접근 방식을 보여줍니다.
실적 최대화 캠페인 검색
실적 최대화 캠페인은 다음을 통해 사용할 수 있습니다.
performanceMaxCampaigns
드림
AdsApp
컬렉션
객체를 지정합니다. 평소와 같이 가져올 수 있습니다.
const campaignName = "My Performance Max campaign";
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
다른 캠페인 유형과 달리 실적 최대화 캠페인은 볼 수 있는 그룹이나 광고 개체, 이러한 개념과 관련된 모든 것을 다른 캠페인은 광고주가 사용하는 애셋 그룹에 따라 자동으로 처리됩니다 설정합니다.
애셋 및 애셋 그룹
실적 최대화 캠페인의 광고가 다음 기간 동안 게재됨 저작물(예: 동영상, 광고주가 제공한 이미지, 광고 제목, 설명 자동으로 생성됩니다 애셋 종류에 대한 전체 개요는 자세한 내용은 Google Ads API 실적 최대화 캠페인 애셋을 가이드를 참조하세요.
실적 최대화 캠페인의 애셋은 하나의 애셋 그룹으로 묶여 있으므로 각 실적 최대화 캠페인에는 애셋 그룹이 하나 이상 있어야 합니다. 나 이러한 애셋 그룹을 스크립트에서 직접 만들 수는 없지만 기존 애셋 그룹에서 애셋을 삭제합니다.
애셋 그룹에 애셋 추가
먼저 확장 소재를 만듭니다.
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();
그런 다음 방금 만든 애셋을 사용하여 기존 애셋 그룹에 추가합니다.
// 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');
마지막 단계에서 저작물 유형을 지정하는 방법에 유의하세요. 여기에서 Google Ads API의 전체 애셋 유형 목록 문서
기존 애셋을 사용하려면 먼저 애셋 선택기를 만듭니다.
const assetSelector = AdsApp.adAssets().assets();
그런 다음 withCondition
필터를 사용하여 원하는 애셋으로 범위를 좁힙니다.
작업을 수행합니다. 자세한 내용은
AssetSelector
드림
참조 문서를 확인하세요.
마지막으로 반복자를 가져오고 다른 항목과 마찬가지로 반복합니다.
const assetIterator = assetSelector.get();
for (const asset of assetIterator) {
...
}
텍스트 애셋
텍스트 애셋은 약간 다르게 작동합니다. 즉, 애셋을 만들 필요가 없습니다. 미리 알려드립니다. 애셋 대신 텍스트만 지정하면 시스템에서 자동으로 확장 소재를 만듭니다. 텍스트가 텍스트 애셋이 있는 경우 기존 애셋이 대신 재사용됩니다.
예를 들어 광고 제목 확장 소재를 만드는 방법은 다음과 같습니다.
assetGroup.addAsset('asset text here', 'HEADLINE');
애셋 그룹에서 애셋 삭제
애셋 그룹에서 애셋을 삭제할 수도 있습니다. 명심하세요 특정 종류의 광고가 최소한 이상 애셋 해야 합니다.
이전 예에서 추가된 애셋을 삭제하는 방법은 다음과 같습니다.
assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');
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}'`
);
이렇게 하면 애셋의 리소스 이름이 고유 식별자로 선택됩니다. 다음과 같은 방법을 사용할 수 있습니다.
asset.type
또는 asset.text_asset.text
와 같은 다른 필드도 선택하여
결과를 더 세분화할 수 있습니다. 이 보고서에 쿼리 작성 도구 사용
유형을 사용하여 만들 수 있습니다.
쿼리합니다.
타겟 확장 소재를 확보한 후 애셋 그룹에서 remove
를 호출하여
애셋 그룹에서 애셋:
// 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);