Natural Language

計算一段文字引發的使用者感受

/**
 * 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