Prices

  • Price extensions can be created using AdsApp.extensions().newPriceBuilder() and adding price items built with AdsApp.extensions().newPriceItemBuilder() .

  • Price extensions can be added to campaigns, ad groups, or the account using the addPrice() method.

  • Details and statistics for price extensions can be logged using campaign.extensions().prices().get() and the getStatsFor() method.

  • Schedules for price extensions can be set for specific days and times using the setSchedules() method on a retrieved price extension.

Create a price extension

 function 
  
 createPrice 
 () 
  
 { 
  
 // 
  
 For 
  
 full 
  
 details 
  
 on 
  
 creating 
  
 a 
  
 new 
  
 price 
  
 item 
 , 
  
 see 
 : 
  
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 reference 
 / 
 adsapp 
 / 
 adsapp_priceitembuilder 
  
 const 
  
 priceItem1 
  
 = 
  
 AdsApp 
 . 
 extensions 
 () 
 . 
 newPriceItemBuilder 
 () 
  
 // 
  
 Replace 
  
 the 
  
 values 
  
 below 
  
 with 
  
 your 
  
 preferred 
  
 header 
 , 
  
 description 
 , 
  
 // 
  
 amount 
 , 
  
 currency 
  
 code 
 , 
  
 unit 
  
 type 
 , 
  
 final 
  
 url 
 , 
  
 and 
  
 mobile 
  
 final 
  
 url 
 . 
  
 . 
 withHeader 
 ( 
 'header1' 
 ) 
  
 // 
  
 required 
  
 . 
 withDescription 
 ( 
 'description1' 
 ) 
  
 // 
  
 required 
  
 . 
 withAmount 
 ( 
 1000000 
 ) 
  
 // 
  
 required 
  
 . 
 withCurrencyCode 
 ( 
 'USD' 
 ) 
  
 // 
  
 required 
  
 // 
  
 Unit 
  
 type 
  
 must 
  
 be 
  
 one 
  
 of 
 : 
  
 'PER_HOUR' 
 , 
  
 'PER_DAY' 
 , 
  
 'PER_WEEK' 
 , 
  
 'PER_MONTH' 
 , 
  
 'PER_YEAR' 
 , 
  
 // 
  
 or 
  
 'PER_NIGHT' 
  
 . 
 withUnitType 
 ( 
 'PER_DAY' 
 ) 
  
 // 
  
 required 
  
 . 
 withFinalUrl 
 ( 
 'https://www.google.com' 
 ) 
  
 . 
 withMobileFinalUrl 
 ( 
 'https://www.google.com' 
 ) 
  
 // 
  
 required 
  
 . 
 build 
 () 
  
 . 
 getResult 
 (); 
  
 const 
  
 priceItem2 
  
 = 
  
 AdsApp 
 . 
 extensions 
 () 
 . 
 newPriceItemBuilder 
 () 
  
 // 
  
 Replace 
  
 the 
  
 values 
  
 below 
  
 with 
  
 your 
  
 preferred 
  
 header 
 , 
  
 description 
 , 
  
 // 
  
 amount 
 , 
  
 currency 
  
 code 
 , 
  
 unit 
  
 type 
 , 
  
 final 
  
 url 
 , 
  
 and 
  
 mobile 
  
 final 
  
 url 
 . 
  
 . 
 withHeader 
 ( 
 'header2' 
 ) 
  
 // 
  
 required 
  
 . 
 withDescription 
 ( 
 'description2' 
 ) 
  
 // 
  
 required 
  
 . 
 withAmount 
 ( 
 2000000 
 ) 
  
 // 
  
 required 
  
 . 
 withCurrencyCode 
 ( 
 'USD' 
 ) 
  
 // 
  
 required 
  
 // 
  
 Unit 
  
 type 
  
 must 
  
 be 
  
 one 
  
 of 
 : 
  
 'PER_HOUR' 
 , 
  
 'PER_DAY' 
 , 
  
 'PER_WEEK' 
 , 
  
 'PER_MONTH' 
 , 
  
 'PER_YEAR' 
 , 
  
 // 
  
 or 
  
 'PER_NIGHT' 
  
 . 
 withUnitType 
 ( 
 'PER_HOUR' 
 ) 
  
 // 
  
 required 
  
 . 
 withFinalUrl 
 ( 
 'https://www.google.com' 
 ) 
  
 // 
  
 required 
  
 . 
 withMobileFinalUrl 
 ( 
 'https://www.google.com' 
 ) 
  
 // 
  
 required 
  
 . 
 build 
 () 
  
 . 
 getResult 
 (); 
  
 const 
  
 priceItem3 
  
 = 
  
 AdsApp 
 . 
 extensions 
 () 
 . 
 newPriceItemBuilder 
 () 
  
 // 
  
 Replace 
  
 the 
  
 values 
  
 below 
  
 with 
  
 your 
  
 preferred 
  
 header 
 , 
  
 description 
 , 
  
 // 
  
 amount 
 , 
  
 currency 
  
 code 
 , 
  
 unit 
  
 type 
 , 
  
 final 
  
 url 
 , 
  
 and 
  
 mobile 
  
 final 
  
 url 
 . 
  
 . 
 withHeader 
 ( 
 'header3' 
 ) 
  
 // 
  
 required 
  
 . 
 withDescription 
 ( 
 'description3' 
 ) 
  
 // 
  
 required 
  
 . 
 withAmount 
 ( 
 3000000 
 ) 
  
 // 
  
 required 
  
 . 
 withCurrencyCode 
 ( 
 'USD' 
 ) 
  
 // 
  
 required 
  
 // 
  
 Unit 
  
 type 
  
 must 
  
 be 
  
 one 
  
 of 
 : 
  
 'PER_HOUR' 
 , 
  
 'PER_DAY' 
 , 
  
 'PER_WEEK' 
 , 
  
 'PER_MONTH' 
 , 
  
 'PER_YEAR' 
 , 
  
 // 
  
 or 
  
 'PER_NIGHT' 
  
 . 
 withUnitType 
 ( 
 'PER_WEEK' 
 ) 
  
 // 
  
 required 
  
 . 
 withFinalUrl 
 ( 
 'https://www.google.com' 
 ) 
  
 // 
  
 required 
  
 . 
 withMobileFinalUrl 
 ( 
 'https://www.google.com' 
 ) 
  
 // 
  
 required 
  
 . 
 build 
 () 
  
 . 
 getResult 
 (); 
  
 // 
  
 For 
  
 full 
  
 details 
  
 on 
  
 creating 
  
 a 
  
 new 
  
 price 
  
 extension 
 , 
  
 see 
 : 
  
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 reference 
 / 
 adsapp 
 / 
 adsapp_pricebuilder 
  
 const 
  
 newPrice 
  
 = 
  
 AdsApp 
 . 
 extensions 
 () 
 . 
 newPriceBuilder 
 () 
  
 // 
  
 Replace 
  
 the 
  
 values 
  
 below 
  
 with 
  
 your 
  
 preferred 
  
 price 
  
 type 
 , 
  
 language 
  
 // 
  
 price 
  
 qualifier 
 , 
  
 and 
  
 tracking 
  
 template 
  
 . 
 withPriceType 
 ( 
 'PRODUCT_CATEGORIES' 
 ) 
  
 // 
  
 required 
  
 . 
 withLanguage 
 ( 
 'EN' 
 ) 
  
 // 
  
 required 
  
 // 
  
 Price 
  
 qualifier 
  
 must 
  
 be 
  
 one 
  
 of 
 : 
  
 'FROM' 
 , 
  
 'UP_TO' 
 , 
  
 'AVERAGE' 
  
 . 
 withPriceQualifier 
 ( 
 'UP_TO' 
 ) 
  
 // 
  
 optional 
  
 . 
 withTrackingTemplate 
 ( 
 'http://www.example.com/track' 
 ) 
  
 // 
  
 optional 
  
 . 
 addPriceItem 
 ( 
 priceItem1 
 ) 
  
 . 
 addPriceItem 
 ( 
 priceItem2 
 ) 
  
 . 
 addPriceItem 
 ( 
 priceItem3 
 ) 
  
 . 
 build 
 () 
  
 . 
 getResult 
 (); 
  
 // 
  
 Add 
  
 price 
  
 to 
  
 a 
  
 campaign 
  
 const 
  
 campaignIterator 
  
 = 
  
 AdsApp 
 . 
 campaigns 
 () 
  
 . 
 withCondition 
 ( 
 'campaign.name = "INSERT_CAMPAIGN_NAME_HERE"' 
 ) 
  
 . 
 get 
 (); 
  
 if 
  
 ( 
 campaignIterator 
 . 
 hasNext 
 ()) 
  
 { 
  
 const 
  
 campaign 
  
 = 
  
 campaignIterator 
 . 
 next 
 (); 
  
 campaign 
 . 
 addPrice 
 ( 
 newPrice 
 ); 
  
 } 
  
 // 
  
 Add 
  
 price 
  
 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 
 . 
 addPrice 
 ( 
 newPrice 
 ); 
  
 } 
  
 // 
  
 Add 
  
 price 
  
 to 
  
 an 
  
 account 
  
 const 
  
 account 
  
 = 
  
 AdsApp 
 . 
 currentAccount 
 (); 
  
 account 
 . 
 addPrice 
 ( 
 newPrice 
 ); 
 } 

Log price details for a campaign

 function 
  
 logPriceDetails 
 () 
  
 { 
  
 // 
  
 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 prices. Retrieving an ad group' 
 s 
  
 and 
  
 // 
  
 account 
 's pricess is similar. 
  
 const 
  
 priceIterator 
  
 = 
  
 campaign 
 . 
 extensions 
 () 
 . 
 prices 
 () 
 . 
 get 
 (); 
  
 for 
  
 ( 
 const 
  
 price 
  
 of 
  
 priceIterator 
 ) 
  
 { 
  
 // 
  
 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 
  
 = 
  
 price 
 . 
 getStatsFor 
 ( 
 'LAST_MONTH' 
 ); 
  
 console 
 . 
 log 
 ( 
 ` 
 Price 
  
 extension 
  
 price 
  
 qualifier 
  
 : 
  
 $ 
 { 
  
 price 
 . 
 getPriceQualifier 
 () 
  
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 ` 
 Price 
  
 extension 
  
 price 
  
 type 
  
 : 
  
 $ 
 { 
  
 price 
 . 
 getPriceType 
 () 
  
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 ` 
 mobile 
  
 preferred 
  
 : 
  
 $ 
 { 
  
 price 
 . 
 isMobilePreferred 
 () 
  
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 ` 
 clicks 
  
 : 
  
 $ 
 { 
  
 stats 
 . 
 getClicks 
 () 
  
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 ` 
 impressions 
  
 : 
  
 $ 
 { 
  
 stats 
 . 
 getImpressions 
 () 
  
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 '=======' 
 ); 
  
 } 
  
 console 
 . 
 log 
 ( 
 ` 
 $ 
 { 
 priceIterator 
 . 
 totalNumEntities 
 ()} 
  
 prices 
  
 in 
  
 the 
  
 campaign 
 ` 
 ); 
 } 

Set schedule for prices in a campaign

 function 
  
 setPriceSchedule 
 () 
  
 { 
  
 // 
  
 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 prices. Retrieving an ad group' 
 s 
  
 and 
  
 // 
  
 account 
 's saitelinks is similar. 
  
 const 
  
 priceIterator 
  
 = 
  
 campaign 
 . 
 extensions 
 () 
 . 
 prices 
 () 
 . 
 get 
 (); 
  
 for 
  
 ( 
 const 
  
 price 
  
 of 
  
 priceIterator 
 ) 
  
 { 
  
 if 
  
 ( 
 price 
 . 
 getPriceType 
 () 
  
 == 
  
 'BRANDS' 
 ) 
  
 { 
  
 // 
  
 Set 
  
 price 
  
 extension 
  
 schedule 
  
 to 
  
 run 
  
 only 
  
 on 
  
 Mondays 
  
 and 
  
 Tuesdays 
 , 
  
 // 
  
 9 
  
 AM 
  
 to 
  
 6 
  
 PM 
 . 
  
 You 
  
 can 
  
 follow 
  
 a 
  
 similar 
  
 approach 
  
 to 
  
 set 
  
 schedules 
  
 for 
  
 // 
  
 other 
  
 ad 
  
 extension 
  
 types 
 . 
  
 const 
  
 monday 
  
 = 
  
 { 
  
 dayOfWeek 
 : 
  
 'MONDAY' 
 , 
  
 startHour 
 : 
  
 9 
 , 
  
 startMinute 
 : 
  
 0 
 , 
  
 endHour 
 : 
  
 18 
 , 
  
 endMinute 
 : 
  
 0 
  
 }; 
  
 const 
  
 tuesday 
  
 = 
  
 { 
  
 dayOfWeek 
 : 
  
 'TUESDAY' 
 , 
  
 startHour 
 : 
  
 9 
 , 
  
 startMinute 
 : 
  
 0 
 , 
  
 endHour 
 : 
  
 18 
 , 
  
 endMinute 
 : 
  
 0 
  
 }; 
  
 price 
 . 
 setSchedules 
 ([ 
 monday 
 , 
  
 tuesday 
 ]); 
  
 return 
 ; 
  
 } 
  
 } 
 } 
Create a Mobile Website
View Site in Mobile | Classic
Share by: