Phone Numbers

  • The provided code samples demonstrate how to create, log details for, and set schedules for call extensions in Google Ads campaigns and ad groups using Google Ads Scripts.

  • The createPhoneNumber function shows how to build a new phone number extension and associate it with a campaign or ad group.

  • The logPhoneNumberDetails function illustrates how to retrieve and print statistics for phone number extensions associated with a campaign.

  • The setPhoneNumberSchedule function demonstrates how to define and apply a specific display schedule for a phone number extension in a campaign.

Create a call extension

 function 
  
 createPhoneNumber 
 () 
  
 { 
  
 // 
  
 For 
  
 full 
  
 details 
  
 on 
  
 creating 
  
 a 
  
 new 
  
 call 
  
 extension 
 , 
  
 see 
 : 
  
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 reference 
 / 
 adsapp 
 / 
 adsapp_phonenumberbuilder 
  
 const 
  
 newPhoneNumber 
  
 = 
  
 AdsApp 
 . 
 extensions 
 () 
 . 
 newPhoneNumberBuilder 
 () 
  
 // 
  
 Replace 
  
 the 
  
 values 
  
 below 
  
 with 
  
 your 
  
 link 
  
 country 
  
 and 
  
 phone 
  
 number 
  
 . 
 withCountry 
 ( 
 'US' 
 ) 
  
 . 
 withPhoneNumber 
 ( 
 'INSERT_PHONE_NUMBER_HERE' 
 ) 
  
 . 
 build 
 () 
  
 . 
 getResult 
 (); 
  
 // 
  
 Add 
  
 phone 
  
 number 
  
 to 
  
 a 
  
 campaign 
  
 const 
  
 campaignIterator 
  
 = 
  
 AdsApp 
 . 
 campaigns 
 () 
  
 . 
 withCondition 
 ( 
 'campaign.name = "INSERT_CAMPAIGN_NAME_HERE"' 
 ) 
  
 . 
 get 
 (); 
  
 if 
  
 ( 
 campaignIterator 
 . 
 hasNext 
 ()) 
  
 { 
  
 const 
  
 campaign 
  
 = 
  
 campaignIterator 
 . 
 next 
 (); 
  
 campaign 
 . 
 addPhoneNumber 
 ( 
 newPhoneNumber 
 ); 
  
 } 
  
 // 
  
 Add 
  
 phone 
  
 number 
  
 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 
 . 
 addPhoneNumber 
 ( 
 newPhoneNumber 
 ); 
  
 } 
 } 

Log phone number details for a campaign

 function 
  
 logPhoneNumberDetails 
 () 
  
 { 
  
 // 
  
 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 phone numbers. Retrieving an ad group' 
 s 
  
 and 
  
 // 
  
 account 
 's phone number extensions is similar. 
  
 const 
  
 phoneNumberIterator 
  
 = 
  
 campaign 
 . 
 extensions 
 () 
 . 
 phoneNumbers 
 () 
 . 
 get 
 (); 
  
 for 
  
 ( 
 const 
  
 phoneNumber 
  
 of 
  
 phoneNumberIterator 
 ) 
  
 { 
  
 // 
  
 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 
  
 = 
  
 phoneNumber 
 . 
 getStatsFor 
 ( 
 'LAST_MONTH' 
 ); 
  
 console 
 . 
 log 
 ( 
 ` 
 Phone 
  
 number 
  
 : 
  
 $ 
 { 
  
 phoneNumber 
 . 
 getPhoneNumber 
 () 
  
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 ` 
 clicks 
  
 : 
  
 $ 
 { 
  
 stats 
 . 
 getClicks 
 () 
  
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 ` 
 impressions 
  
 : 
  
 $ 
 { 
  
 stats 
 . 
 getImpressions 
 () 
  
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 '=======' 
 ); 
  
 } 
  
 console 
 . 
 log 
 ( 
 ` 
 $ 
 { 
 phoneNumberIterator 
 . 
 totalNumEntities 
 ()} 
  
 phone 
  
 number 
  
 extensions 
  
 in 
  
 the 
  
 campaign 
 ` 
 ); 
 } 

Set schedule for a call extension in a campaign

 function 
  
 setPhoneNumberSchedule 
 () 
  
 { 
  
 // 
  
 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 phone numbers. Retrieving an ad group' 
 s 
  
 and 
  
 // 
  
 account 
 's phone number extensions is similar. 
  
 const 
  
 phoneNumberIterator 
  
 = 
  
 campaign 
 . 
 extensions 
 () 
 . 
 phoneNumbers 
 () 
 . 
 get 
 (); 
  
 for 
  
 ( 
 const 
  
 phoneNumber 
  
 of 
  
 phoneNumberIterator 
 ) 
  
 { 
  
 if 
  
 ( 
 phoneNumber 
 . 
 getPhoneNumber 
 () 
  
 === 
  
 'INSERT_PHONE_NUMBER_HERE' 
 ) 
  
 { 
  
 // 
  
 Set 
  
 phone 
  
 number 
  
 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 
  
 }; 
  
 phoneNumber 
 . 
 setSchedules 
 ([ 
 monday 
 , 
  
 tuesday 
 ]); 
  
 break 
 ; 
  
 } 
  
 } 
 } 
Design a Mobile Site
View Site in Mobile | Classic
Share by: