Servicio de DoubleClick Bid Manager

El servicio de DoubleClick Bid Manager te permite usar la API de DV360 Bid Manager en Apps Script. Esta API proporciona acceso programático a los informes de DoubleClick Bid Manager (DBM).

Referencia

Para obtener información detallada sobre este servicio, consulta la documentación de referencia de la API de DBM Reporting. Al igual que todos los servicios avanzados de Apps Script, el servicio de DoubleClick Bid Manager usa los mismos objetos, métodos y parámetros que la API pública. Para obtener más información, consulta Cómo se determinan las firmas de métodos.

Para informar problemas y obtener más asistencia, consulta la guía de asistencia de DBM Reporting and Trafficking.

Código de muestra

En el siguiente código de ejemplo, se usa la versión 2 de la API.

Obtén una lista de consultas

En este ejemplo, se registran todas las búsquedas disponibles en la cuenta.

advanced/doubleclickbidmanager.gs
/**
 * Logs all of the queries available in the account.
 */
function listQueries() {
  // Retrieve the list of available queries
  try {
    const queries = DoubleClickBidManager.Queries.list();

    if (queries.queries) {
      // Print out the ID and name of each
      for (let i = 0; i < queries.queries.length; i++) {
        const query = queries.queries[i];
        console.log('Found query with ID %s and name "%s".',
            query.queryId, query.metadata.title);
      }
    }
  } catch (e) {
    // TODO (Developer) - Handle exception
    console.log('Failed with error: %s', e.error);
  }
}

Crear y ejecutar una consulta

En esta muestra, se crea y ejecuta una nueva consulta de DBM.

advanced/doubleclickbidmanager.gs
/**
 * Create and run a new DBM Query
 */
function createAndRunQuery() {
  let result;
  let execution;
  //We leave the default date range blank for the report run to
  //use the value defined during query creation
  let defaultDateRange = {}
  let partnerId = "1234567" //Replace with your Partner ID
  let query = {
    "metadata": {
      "title": "Apps Script Example Report",
      "dataRange": {
        "range": "YEAR_TO_DATE"
      },
      "format": "CSV"
    },
    "params": {
      "type": "STANDARD",
      "groupBys": [
        "FILTER_PARTNER",
        "FILTER_PARTNER_NAME",
        "FILTER_ADVERTISER",
        "FILTER_ADVERTISER_NAME",
      ],
      "filters": [
        {"type": "FILTER_PARTNER","value": partnerId}
      ],
      "metrics": [
        "METRIC_IMPRESSIONS"
      ]
    },
    "schedule": {
      "frequency": "ONE_TIME"
    }
  }

  try {
    result = DoubleClickBidManager.Queries.create(query);
    if (result.queryId) {
      console.log('Created query with ID %s and name "%s".',
          result.queryId, result.metadata.title);
      execution = DoubleClickBidManager.Queries.run(defaultDateRange, result.queryId);
      if(execution.key){
        console.log('Created query report with query ID %s and report ID "%s".',
          execution.key.queryId, execution.key.reportId);
      }
    }
  } catch (e) {
    // TODO (Developer) - Handle exception
    console.log(e)
    console.log('Failed with error: %s', e.error);
  }
}

Recupera el informe más reciente para una consulta de DBM

En este ejemplo, se recupera el informe más reciente de una consulta de DBM y se registra el contenido.

advanced/doubleclickbidmanager.gs
/**
 * Fetches a report file
 */
function fetchReport() {
  const queryId = '1234567'; // Replace with your query ID.
  const orderBy = "key.reportId desc";

  try {
    const report = DoubleClickBidManager.Queries.Reports.list(queryId, {orderBy:orderBy});
    if(report.reports){
      const firstReport = report.reports[0];
      if(firstReport.metadata.status.state == 'DONE'){
        const reportFile = UrlFetchApp.fetch(firstReport.metadata.googleCloudStoragePath)
        console.log("Printing report content to log...")
        console.log(reportFile.getContentText())
      }
      else{
        console.log("Report status is %s, and is not available for download", firstReport.metadata.status.state)
      }
    }

  } catch (e) {
    // TODO (Developer) - Handle exception
    console.log(e)
    console.log('Failed with error: %s', e.error);
  }
}