Natural Language

Calculate the sentiment of a piece of text

 /** 
  
 * 
  
 Calculates 
  
 a 
  
 measure 
  
 of 
  
 sentiment 
  
 for 
  
 supplied 
  
 ad 
  
 text 
 . 
  
 * 
  
 See 
 : 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 features 
 / 
 third 
 - 
 party 
 - 
 apis 
 #refresh_token_grant 
  
 * 
  
 for 
  
 details 
  
 on 
  
 configuring 
  
 this 
  
 script 
 . 
  
 * 
  
 * 
  
 e 
 . 
 g 
 : 
  
 * 
  
 initializeOAuthClient 
 (); 
  
 * 
  
 const 
  
 sentiment 
  
 = 
  
 getAdTextSentiment 
 ( 
 'Buy our cakes today!' 
 ); 
  
 * 
  
 * 
  
 NOTE 
 : 
  
 This 
  
 script 
  
 also 
  
 requires 
  
 the 
  
 OAuth2 
  
 library 
  
 to 
  
 be 
  
 pasted 
  
 at 
  
 the 
  
 end 
 , 
  
 * 
  
 as 
  
 obtained 
  
 from 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 examples 
 / 
 oauth20 
 - 
 library 
  
 */ 
 // 
  
 Service 
  
 account 
  
 email 
 , 
  
 e 
 . 
 g 
 . 
  
 'yyyy@yyyy-1234.iam.gserviceaccount.com' 
 const 
  
 SERVICE_ACCOUNT 
  
 = 
  
 'INSERT_SERVICE_ACCOUNT_EMAIL_HERE' 
 ; 
 // 
  
 Key 
  
 taken 
  
 from 
  
 downloaded 
  
 JSON 
  
 key 
  
 file 
 const 
  
 KEY 
  
 = 
  
 '-----BEGIN ..... KEY----- 
 \n 
 ' 
 ; 
 let 
  
 authUrlFetch 
 ; 
 // 
  
 Call 
  
 this 
  
 function 
  
 just 
  
 once 
 , 
  
 to 
  
 initialize 
  
 the 
  
 OAuth 
  
 client 
 . 
 function 
  
 initializeOAuthClient 
 () 
  
 { 
  
 if 
  
 ( 
 typeof 
  
 OAuth2 
  
 === 
  
 'undefined' 
 ) 
  
 { 
  
 const 
  
 libUrl 
  
 = 
  
 'https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library' 
 ; 
  
 throw 
  
 Error 
 ( 
 'OAuth2 library not found. Please take a copy of the OAuth2 ' 
  
 + 
  
 'library from ' 
  
 + 
  
 libUrl 
  
 + 
  
 ' and append to the bottom of this script.' 
 ); 
  
 } 
  
 const 
  
 tokenUrl 
  
 = 
  
 'https://accounts.google.com/o/oauth2/token' 
 ; 
  
 const 
  
 scope 
  
 = 
  
 'https://www.googleapis.com/auth/cloud-platform' 
 ; 
  
 authUrlFetchApp 
  
 = 
  
 OAuth2 
 . 
 withServiceAccount 
 ( 
 tokenUrl 
 , 
  
 SERVICE_ACCOUNT 
 , 
  
 KEY 
 , 
  
 scope 
 ); 
 } 
 /** 
  
 * 
  
 Retrieve 
  
 the 
  
 sentiment 
  
 for 
  
 a 
  
 given 
  
 piece 
  
 of 
  
 text 
 . 
  
 * 
  
 @ 
 param 
  
 { 
 string 
 } 
  
 adText 
  
 The 
  
 text 
  
 to 
  
 analyze 
 . 
  
 * 
  
 @ 
 return 
  
 { 
 Object 
 } 
  
 The 
  
 results 
  
 of 
  
 the 
  
 analysis 
 . 
  
 */ 
 function 
  
 getAdTextSentiment 
 ( 
 adText 
 ) 
  
 { 
  
 const 
  
 body 
  
 = 
  
 { 
  
 document 
 :{ 
  
 type 
 : 
  
 'PLAIN_TEXT' 
 , 
  
 content 
 : 
  
 adText 
  
 }, 
  
 encodingType 
 : 
  
 'UTF8' 
  
 }; 
  
 // 
  
 Natural 
  
 Language 
  
 API 
  
 Sentiment 
  
 URL 
  
 const 
  
 url 
  
 = 
  
 'https://language.googleapis.com/v1beta1/documents:analyzeSentiment' 
 ; 
  
 const 
  
 options 
  
 = 
  
 { 
  
 method 
 : 
  
 'POST' 
 , 
  
 contentType 
 : 
  
 'application/json' 
 , 
  
 payload 
 : 
  
 JSON 
 . 
 stringify 
 ( 
 body 
 ) 
  
 }; 
  
 const 
  
 response 
  
 = 
  
 authUrlFetchApp 
 . 
 fetch 
 ( 
 url 
 , 
  
 options 
 ); 
  
 const 
  
 result 
  
 = 
  
 JSON 
 . 
 parse 
 ( 
 response 
 . 
 getContentText 
 ()); 
  
 if 
  
 ( 
 result 
 . 
 documentSentiment 
 ) 
  
 { 
  
 // 
  
 return 
  
 an 
  
 object 
  
 with 
  
 'polarity' 
  
 and 
  
 'magnitude' 
  
 properties 
 . 
  
 return 
  
 result 
 . 
 documentSentiment 
 ; 
  
 } 
  
 throw 
  
 Error 
 ( 
 'No sentiment response returned' 
 ); 
 } 
 // 
  
 Paste 
  
 in 
  
 OAuth2 
  
 library 
  
 here 
 , 
  
 from 
 : 
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 examples 
 / 
 oauth20 
 - 
 library 

Extract the entities from a piece of text

 /** 
  
 * 
  
 Extracts 
  
 entities 
  
 for 
  
 a 
  
 piece 
  
 of 
  
 text 
 . 
  
 * 
  
 See 
 : 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 features 
 / 
 third 
 - 
 party 
 - 
 apis 
 #refresh_token_grant 
  
 * 
  
 for 
  
 details 
  
 on 
  
 configuring 
  
 this 
  
 script 
 . 
  
 * 
  
 * 
  
 e 
 . 
 g 
 : 
  
 * 
  
 initializeOAuthClient 
 (); 
  
 * 
  
 const 
  
 entities 
  
 = 
  
 getAdTextEntities 
 ( 
 'Football stadiums in London' 
 ); 
  
 * 
  
 * 
  
 NOTE 
 : 
  
 This 
  
 script 
  
 also 
  
 requires 
  
 the 
  
 OAuth2 
  
 library 
  
 to 
  
 be 
  
 pasted 
  
 at 
  
 the 
  
 end 
 , 
  
 * 
  
 as 
  
 obtained 
  
 from 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 examples 
 / 
 oauth20 
 - 
 library 
  
 */ 
 // 
  
 Service 
  
 account 
  
 email 
 , 
  
 e 
 . 
 g 
 . 
  
 'yyyy@yyyy-1234.iam.gserviceaccount.com' 
 const 
  
 SERVICE_ACCOUNT 
  
 = 
  
 'INSERT_SERVICE_ACCOUNT_EMAIL_HERE' 
 ; 
 // 
  
 Key 
  
 taken 
  
 from 
  
 downloaded 
  
 JSON 
  
 key 
  
 file 
 const 
  
 KEY 
  
 = 
  
 '-----BEGIN ..... KEY----- 
 \n 
 ' 
 ; 
 let 
  
 authUrlFetch 
 ; 
 // 
  
 Call 
  
 this 
  
 function 
  
 just 
  
 once 
 , 
  
 to 
  
 initialize 
  
 the 
  
 OAuth 
  
 client 
 . 
 function 
  
 initializeOAuthClient 
 () 
  
 { 
  
 if 
  
 ( 
 typeof 
  
 OAuth2 
  
 === 
  
 'undefined' 
 ) 
  
 { 
  
 const 
  
 libUrl 
  
 = 
  
 'https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library' 
 ; 
  
 throw 
  
 Error 
 ( 
 'OAuth2 library not found. Please take a copy of the OAuth2 ' 
  
 + 
  
 'library from ' 
  
 + 
  
 libUrl 
  
 + 
  
 ' and append to the bottom of this script.' 
 ); 
  
 } 
  
 const 
  
 tokenUrl 
  
 = 
  
 'https://accounts.google.com/o/oauth2/token' 
 ; 
  
 const 
  
 scope 
  
 = 
  
 'https://www.googleapis.com/auth/cloud-platform' 
 ; 
  
 authUrlFetchApp 
  
 = 
  
 OAuth2 
 . 
 withServiceAccount 
 ( 
 tokenUrl 
 , 
  
 SERVICE_ACCOUNT 
 , 
  
 KEY 
 , 
  
 scope 
 ); 
 } 
 /** 
  
 * 
  
 Extracts 
  
 entities 
  
 for 
  
 a 
  
 given 
  
 piece 
  
 of 
  
 text 
 . 
  
 * 
  
 @ 
 param 
  
 { 
 string 
 } 
  
 adText 
  
 The 
  
 text 
  
 to 
  
 analyze 
 . 
  
 * 
  
 @ 
 return 
  
 { 
 Object 
 } 
  
 The 
  
 list 
  
 of 
  
 extracted 
  
 entities 
 . 
  
 */ 
 function 
  
 getAdTextEntities 
 ( 
 adText 
 ) 
  
 { 
  
 const 
  
 body 
  
 = 
  
 { 
  
 document 
 :{ 
  
 type 
 : 
  
 'PLAIN_TEXT' 
 , 
  
 content 
 : 
  
 adText 
  
 }, 
  
 encodingType 
 : 
  
 'UTF8' 
  
 }; 
  
 // 
  
 Natural 
  
 Language 
  
 API 
  
 Sentiment 
  
 URL 
  
 const 
  
 url 
  
 = 
  
 'https://language.googleapis.com/v1beta1/documents:analyzeEntities' 
 ; 
  
 const 
  
 options 
  
 = 
  
 { 
  
 method 
 : 
  
 'POST' 
 , 
  
 contentType 
 : 
  
 'application/json' 
 , 
  
 payload 
 : 
  
 JSON 
 . 
 stringify 
 ( 
 body 
 ) 
  
 }; 
  
 const 
  
 response 
  
 = 
  
 authUrlFetchApp 
 . 
 fetch 
 ( 
 url 
 , 
  
 options 
 ); 
  
 const 
  
 result 
  
 = 
  
 JSON 
 . 
 parse 
 ( 
 response 
 . 
 getContentText 
 ()); 
  
 console 
 . 
 log 
 ( 
 result 
 ); 
  
 if 
  
 ( 
 result 
 . 
 entities 
 ) 
  
 { 
  
 // 
  
 return 
  
 a 
  
 list 
  
 of 
  
 identified 
  
 entities 
  
 return 
  
 result 
 . 
 entities 
 ; 
  
 } 
  
 throw 
  
 Error 
 ( 
 'No entities response returned' 
 ); 
 } 
 // 
  
 Paste 
  
 in 
  
 OAuth2 
  
 library 
  
 here 
 , 
  
 from 
 : 
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 examples 
 / 
 oauth20 
 - 
 library 
Create a Mobile Website
View Site in Mobile | Classic
Share by: