Snippets
Stay organized with collections
Save and categorize content based on your preferences.
Create a snippet extension
function createSnippet() {
// For full details on creating a new snippet extension, see:
// https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_snippetbuilder
const newSnippet = AdsApp.extensions().newSnippetBuilder()
// Replace the values below with your header, values, and mobile preferred
// For a list of supported headers, see: https://developers.google.com/adwords/api/docs/appendix/structured-snippet-headers
.withHeader('Brands') // required
.withValues(['Nest', 'Waymo','Google']) // required
.withMobilePreferred(true) // optional
.build()
.getResult();
// Add snippet to a campaign
const campaignIterator = AdsApp.campaigns()
.withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"')
.get();
if (campaignIterator.hasNext()) {
const campaign = campaignIterator.next();
campaign.addSnippet(newSnippet);
}
// Add snippet to an ad group
const adGroupIterator = AdsApp.adGroups()
.withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"')
.withCondition('ad_group.name = "INSERT_AD_GROUP_NAME_HERE"')
.get();
if (adGroupIterator.hasNext()) {
const adGroup = adGroupIterator.next();
adGroup.addSnippet(newSnippet);
}
// Add snippet to an account
const account = AdsApp.currentAccount();
account.addSnippet(newSnippet);
}
Log snippet details for a campaign
function logSnippetDetails() {
// Get a campaign.
const campaignIterator = AdsApp.campaigns()
.withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"')
.get();
if (!campaignIterator.hasNext()) {
throw new Error('Campaign not found.');
}
const campaign = campaignIterator.next();
// Retrieve the campaign's snippets. Retrieving an ad group's and
// account's sniuppets is similar.
const snippetIterator = campaign.extensions().snippets().get();
for (const snippet of snippetIterator) {
// You can also request reports for pre-defined date ranges. See
// https://developers.google.com/adwords/api/docs/guides/awql,
// DateRangeLiteral section for possible values.
const stats = snippet.getStatsFor('LAST_MONTH');
console.log(`Snippet header : ${ snippet.getHeader() }`);
console.log(`Snippet values : ${ snippet.getValues() }`);
console.log(`mobile preferred : ${ snippet.isMobilePreferred() }`);
console.log(`clicks : ${ stats.getClicks() }`);
console.log(`impressions : ${ stats.getImpressions() }`);
console.log('=======');
}
console.log(`${snippetIterator.totalNumEntities()} snippets in the campaign`);
}
Set schedule for snippets in a campaign
function setSnippetSchedule() {
// Get a campaign.
const campaignIterator = AdsApp.campaigns()
.withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"')
.get();
if (!campaignIterator.hasNext()) {
throw new Error('Campaign not found.');
}
const campaign = campaignIterator.next();
// Retrieve the campaign's snippets. Retrieving an ad group's and
// account's saitelinks is similar.
const snippetIterator = campaign.extensions().snippets().get();
for (const snippet of snippetIterator) {
if (snippet.getHeader() === 'Brands') {
// Set snippet schedule to run only on Mondays and Tuesdays, 9 AM to
// 6 PM.
const monday = {
dayOfWeek: 'MONDAY',
startHour: 9,
startMinute: 0,
endHour: 18,
endMinute: 0
};
const tuesday = {
dayOfWeek: 'TUESDAY',
startHour: 9,
startMinute: 0,
endHour: 18,
endMinute: 0
};
snippet.setSchedules([monday, tuesday]);
break;
}
}
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-03-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2022-03-14 UTC."],[[["This script provides functionality to create new structured snippets with custom headers and values, and optionally mark them as mobile-preferred."],["It demonstrates how to add these snippets to campaigns, ad groups, or accounts for broader targeting."],["The script allows for retrieving and logging key performance metrics of existing snippets, such as clicks and impressions, over specified durations."],["It includes a feature to set custom schedules for snippets, enabling them to run only during defined days and times."]]],[]]