Google Ads 支援多種廣告類型,例如文字、圖像和行動廣告。本指南說明如何使用 Google Ads 指令碼建立、擷取及回報廣告。如要瞭解 Google Ads 支援的所有廣告類型,請參閱 API 指南。
創作
指令碼可以使用 AdGroup 執行個體的 newAd() 方法建立廣告。這會傳回
AdBuilderSpace
,為支援的廣告類型建立建構工具。
下列程式碼片段說明如何建立回應式搜尋廣告:
let adOperation = adGroup.newAd().responsiveSearchAdBuilder()
.withHeadlines(["Headline 1", "Headline 2", "Headline 3"])
.withDescriptions(["Description 1", "Description 2"])
.withFinalUrl("http://www.example.com")
.withPath1("path1")
.withPath2("path2")
.build();
檢查
所有廣告類型相關的部分資訊可立即透過 Ad 取得,例如廣告 ID 和核准狀態。此外,您也可以暫停、啟用或移除任何廣告。
如要存取廣告類型專屬的欄位 (例如回應式搜尋廣告的廣告標題),請使用 asType() 方法建立 AdViewSpace。這可存取 Ad 的擴充版本,其中公開了特定類型的方法。
下列程式碼片段會取得每個回應式搜尋廣告的廣告標題:
const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
let ad = iterator.next();
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
}
請注意,條件 Type = RESPONSIVE_SEARCH_AD 可確保疊代器中的每個廣告都是回應式搜尋廣告。如果嘗試查看類型錯誤的廣告,系統會顯示錯誤訊息並停止執行指令碼,因此請務必只在廣告類型已知時,查看類型專屬的欄位。
下列程式碼片段說明如何使用 Ad.isType() 方法,判斷廣告是否為正確類型:
if (ad.isType().responsiveSearchAd()) {
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
let descriptions = responsiveSearchAd.getDescriptions();
}
雖然您無法使用標準選取器依廣告標題文字篩選廣告,但可以在擷取廣告後,在 JavaScript 中篩選廣告:
const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
let ad = iterator.next();
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
// Filter for ads containing a specific headline.
if (headlines.some(h => h.getText().includes("Special Offer"))) {
console.log(`Found ad with ID ${ad.getId()}`);
}
}
報表
除了一般統計資料,您也可以使用 ad_group_ad 檢視畫面查詢廣告欄位。舉例來說,您可以使用 ad_group_ad.ad.type 依廣告類型篩選。下列程式碼片段說明如何擷取所有回應式搜尋廣告的統計資料:
const results = AdsApp.search(
"SELECT ad_group_ad.ad_group.id, " +
"ad_group_ad.ad.id, " +
"metrics.clicks, " +
"metrics.impressions, " +
"metrics.cost " +
"FROM ad_group_ad " +
"WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' " +
"AND segments.date DURING LAST_7_DAYS");
while (results.hasNext()) {
let row = results.next();
let adId = row.adGroupAd.ad.id;
let clicks = row.metrics.clicks;
...
}
依資產內容篩選
如要大規模依據廣告標題或說明內容篩選回應式搜尋廣告,請使用 ad_group_ad_asset_view 資源。這個檢視畫面會將每個廣告標題和說明視為獨立的資料列,方便您依素材資源的文字進行篩選。
下列程式碼片段會擷取包含特定廣告標題的所有回應式搜尋廣告的統計資料:
const results = AdsApp.search(
"SELECT ad_group_ad.ad.id, " +
"asset.text_asset.text, " +
"metrics.clicks, " +
"metrics.impressions " +
"FROM ad_group_ad_asset_view " +
"WHERE asset.text_asset.text LIKE '%Special Offer%' " +
"AND ad_group_ad_asset_view.field_type = 'HEADLINE'");
while (results.hasNext()) {
let row = results.next();
let adId = row.adGroupAd.ad.id;
let text = row.asset.textAsset.text;
let clicks = row.metrics.clicks;
console.log(`Ad ID ${adId} with headline "${text}" had ${clicks} clicks.`);
}
如要進一步瞭解指令碼中的報表,請參閱報表指南。