Page Summary
-
Learn how to create a new snippet extension using
AdsApp.extensions().newSnippetBuilder(). -
Understand how to add a created snippet to a campaign, ad group, or account.
-
Discover how to log details and statistics for snippets associated with a campaign.
-
See how to set a schedule for when snippets should be displayed, such as specific days and times.
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 ; } } }

