計算一段文字引發的使用者感受
/**
* 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
/**
* 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