Solución de problemas de RTB

En esta guía, se tratan los recursos para la solución de problemas de RTB, que permiten acceder mediante métricas de campañas de ofertas en tiempo real que también se exponen a través del Análisis de RTB que se encuentra en IU de Authorized Buyers. Estos incluyen bidders.filterSets, bidders.accounts.filterSets y todos los recursos debajo de ellos de manera jerárquica.

Mediante las métricas de los recursos de solución de problemas de RTB, puede obtener estadísticas sobre las oportunidades perdidas para obtener impresiones que pueden ayudarte a optimizar tu campaña de ofertas en tiempo real.

Ajustes en la estructura y el estilo de la API

Los recursos de solución de problemas de RTB introducen algunos cambios para indicar explícitamente la propiedad y de acceso, brindar un control más detallado sobre los datos que devuelve la API y alinearse mejor con Prácticas de diseño de las APIs de Google.

Recursos a nivel del ofertante y de la cuenta

Los recursos se estructuran en bidders y bidders.accounts. Estas te permiten especificar si una llamada a la API está dirigida a un ofertante (también conocido como cuenta principal) y todos los secundarias o cuentas individuales de Authorized Buyers. En el contexto de las RTB Solución de problemas. Los recursos estructurados en bidders.filterSets mostrarán métricas agregadas para el ofertante especificado y todas las cuentas secundarias asociadas. Por el contrario, aquellos que están bajo bidders.accounts.filterSets solo mostrará las métricas de la cuenta especificada, independientemente de lo siguiente: ya sea un ofertante o una cuenta secundaria.

Nota: Las cuentas que delegan sus ofertas a otro comprador no son cuentas de ofertantes. por lo que no puede acceder a los recursos a nivel del ofertante. Además, las cuentas que no son ofertantes no pueden acceder a nivel de la cuenta impressionMetrics, filteredBidResponses, bidResponseErrors y bidResponsesWithoutBids.

Presentación de nombres de recursos como identificadores únicos

Los nombres de recursos se usan como identificadores únicos en lugar de números enteros o IDs de cadena. Cuando se crea una instancia nueva de un de recurso, ahora debes especificar relativo resource name mediante la ruta del URI del recurso seguida del ID del recurso preferido. El Estos son ejemplos de nombres relevantes para los recursos de solución de problemas de RTB:

Recurso Ejemplo de nombre
bidders.filterSets bidders/12345678/filterSets/fset_1
bidders.accounts.filterSets bidders/12345678/accounts/87654321/filterSets/fset_2

Nota: El ID de recurso especificado para bidders en el nombre debe ser el del ofertante ID de la cuenta de Authorized Buyers. Para accounts, el ID de recurso debe ser un ID de cuenta de cualquiera de las siguientes opciones: al ofertante o a una cuenta secundaria que este administre. Si no sabe qué compradores de Authorized Buyers están asociadas a tu Cuenta de Google, puedes usar la accounts.list para encontrarlas.

Conjuntos de filtros

Un conjunto de filtros es una representación de las opciones de filtrado disponibles y que se pueden crear a nivel del ofertante o de la cuenta. Se usa para filtrar los resultados de la lista de solución de problemas de RTB. que recuperan métricas para tus campañas de ofertas en tiempo real.

El filtro que se aplica al recuperar las métricas es la intersección de cada filtro del conjunto de filtros. Los filtros de lista, como platforms, se interpretan como la unión de cada elemento en la lista.

Los conjuntos de filtros a nivel de la cuenta y del ofertante son diferentes y solo se puede acceder a ellos desde el nivel en el que en los que se crearon, independientemente de la cuenta que se usó para crearlos. Un ofertante y un uso compartido de la cuenta secundaria los conjuntos de filtros creados a nivel de la cuenta, mientras que solo un ofertante puede acceder a los recursos en a nivel de ofertante. En la siguiente tabla, se resume cómo las cuentas secundarias y el ofertante pueden acceder a los recursos en ambos niveles:

  bidders.filterSets bidders.accounts.filterSets
Cuenta del ofertante Una llamada a la API que afecta solo a los conjuntos de filtros a nivel del ofertante Una llamada a la API que afecta solo a los conjuntos de filtros a nivel de la cuenta
Cuenta infantil Esta llamada a la API devolverá una respuesta de error. Una llamada a la API que afecta solo a los conjuntos de filtros a nivel de la cuenta

Crear un conjunto de filtros

Cuando creas un conjunto de filtros, debes especificar un intervalo de tiempo como relativeDateRange, absoluteDateRange o realtimeTimeRange. Cuando se recuperan métricas, el El comportamiento predeterminado es que se proporcionen todos los datos para todo el intervalo de tiempo. Si deseas recibir un desglose de series temporales durante el período, puedes especificar timeSeriesGranularity para indicar intervalos de HOURLY o DAILY.

Si solo necesitas establecer un filtro por un período breve, puedes configurar isTransient el parámetro de consulta a true. Esto indicará que el conjunto de filtros es transitorio, lo que significa que no se conservará indefinidamente. Los conjuntos de filtros transitorios estarán disponibles durante al menos una hora después de su creación, pero se borrarán con el tiempo. De forma predeterminada, los conjuntos de filtros no son transitorios.

Ejemplo a nivel del ofertante

Para crear un nuevo conjunto de filtros a nivel del ofertante, envía una solicitud POST al URI de recurso bidders.filterSets, que tiene el siguiente formato:

https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets

Advertencia: Los conjuntos de filtros a nivel del ofertante no pueden filtrar por ID de acuerdo o creatividad. Si especifica estos filtros cuando crea un conjunto de filtros a nivel del ofertante, recibirá una respuesta de error.

Solicitud

Este es un ejemplo de una solicitud POST que crea un nuevo conjunto de filtros no transitorio a nivel del ofertante:

POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets
Authorization: Bearer access token here
Content-Type: application/json

{
  "name": "bidders/12345678/filterSets/bidder-fs",
  "format": "DISPLAY",
  "environment": "APP",
  "platforms": ["TABLET", "MOBILE"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

Respuesta

Si la solicitud se realiza correctamente, el servidor responde con un código de estado 200 OK. El cuerpo de la respuesta incluirá el recurso del conjunto de filtros creado, que será idéntico al conjunto de filtros enviado en la solicitud.

Ejemplo a nivel de la cuenta

Para crear un nuevo conjunto de filtros a nivel de la cuenta, envía una solicitud POST al El URI de recurso bidders.accounts.filterSets, que tiene el siguiente formato:

https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets

Nota: El ID de recurso especificado para accounts puede Debe ser el ID de cualquier cuenta de Authorized Buyers a la que pueda acceder el ofertante cuenta especificada en el URI, incluida la cuenta del ofertante.

Solicitud

Este es un ejemplo de una solicitud POST que crea un nuevo conjunto de filtros no transitorios a nivel de la cuenta:

POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets
Authorization: Bearer access token here
Content-Type: application/json

{
  "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
  "format": "VIDEO",
  "environment": "WEB",
  "platforms": ["DESKTOP"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}
Respuesta

Si la solicitud se realiza correctamente, el servidor responde con un código de estado 200 OK. El cuerpo de la respuesta incluir el recurso del conjunto de filtros creado, que será idéntico al conjunto de filtros enviado en la solicitud.

Obtener un conjunto de filtros

El método get solo puede obtener un conjunto de filtros en el mismo nivel en el que se creó. Por ejemplo, un ofertante La cuenta debe usar bidders.accounts.filterSets.get para recuperar un conjunto de filtros creado en la cuenta en lugar del método bidders.filterSets.get.

A nivel del ofertante

Para recuperar un filtro a nivel de ofertante establecido, envía una solicitud GET HTTP al URI de recurso bidders.filterSets, que tiene el siguiente formato:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
Solicitar

Por ejemplo:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs
Respuesta

Si la solicitud se realiza correctamente, el servidor responde con un código de estado HTTP 200 OK y el conjunto de filtros recuperado:

{
  "name": "bidders/12345678/filterSets/bidder-fs",
  "format": "DISPLAY",
  "environment": "APP",
  "platforms": ["TABLET", "MOBILE"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

Nivel de la cuenta

Para recuperar un filtro a nivel de la cuenta establecido, envía una solicitud HTTP GET al URI de recurso bidders.accounts.filterSets, que tiene el siguiente formato:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
Solicitar

Por ejemplo:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs
Respuesta

Si la solicitud se realiza correctamente, el servidor responde con un código de estado HTTP 200 OK y el conjunto de filtros recuperado:

{
  "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
  "format": "VIDEO",
  "environment": "WEB",
  "platforms": ["DESKTOP"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

Enumerar conjuntos de filtros

El método de lista solo mostrará conjuntos de filtros accesibles desde el nivel al que se llama. Por ejemplo, una cuenta de ofertante no verá conjuntos de filtros creados para sí misma a través de bidders.accounts.filterSets.create cuando se llama a bidders.filterSets.list

A nivel del ofertante

Puedes recuperar todos los conjuntos de filtros a nivel del ofertante para un ofertante determinado enviando un GET HTTP. al URI de recurso bidders.filtersets, que tiene el siguiente formato:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets
Solicitar

A continuación, se incluye un ejemplo en el que se enumeran todos los conjuntos de filtros a nivel del ofertante para un ofertante con el ID de cuenta 12345678:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets
Respuesta
{
  "filterSets": [{
      "filterSetId": "99994",
      "name": "bidders/12345678/filterSets/test-b-1",
      "relativeDateRange": {
        "durationDays": 30
      }
    },
    {
      "realtimeTimeRange": {
        "startTimeStamp": "2017-11-15T12:30:30.072831583Z"
      },
      "filterSetId": "99995",
      "name": "bidders/12345678/filterSets/test-b-2",
      "timeSeriesGranularity": "HOURLY"
    },
    {
      "absoluteDateRange": {
        "endDate": {
          "day": 12,
          "month": 3,
          "year": 2017
        },
        "startDate": {
          "day": 26,
          "month": 11,
          "year": 2017
        }
      },
      "filterSetId": "99996",
      "name": "bidders/12345678/filterSets/bidder-fs",
      "timeSeriesGranularity": "DAILY",
      "platforms": ["TABLET", "MOBILE"],
      "environment": "APP",
      "format": "DISPLAY"
    }
  ]
}

Nivel de la cuenta

Puedes recuperar todos los conjuntos de filtros a nivel de la cuenta para una cuenta determinada si envías un GET HTTP al URI de recurso bidders.accounts.filtersets, que tiene el siguiente formato:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets
Solicitar

A continuación, se incluye un ejemplo en el que se enumeran todos los conjuntos de filtros a nivel de la cuenta para una cuenta secundaria con el ID de cuenta 87654321:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets
Respuesta
{
  "filterSets": [{
        "realtimeTimeRange": {
        "startTimeStamp": "2017-11-19T04:24:43.252893487Z"
      },
      "filterSetId": "99997",
      "name": "bidders/12345678/accounts/87654321/filterSets/test-a-1",
      "timeSeriesGranularity": "DAILY"
    },
    {
      "absoluteDateRange": {
        "endDate": {
          "day": 3,
          "month": 12,
          "year": 2017
        },
        "startDate": {
          "day": 26,
          "month": 11,
          "year": 2017
        }
      },
      "filterSetId": "99998",
      "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
      "timeSeriesGranularity": "DAILY",
      "platforms": ["DESKTOP"],
      "environment": "WEB",
      "format": "VIDEO"
    }
  ]
}

Cómo borrar un conjunto de filtros

Puedes usar el método delete para quitar cualquier conjunto de filtros no transitorio que más tiempo. Solo puede quitar conjuntos de filtros a los que se puede acceder desde el nivel al que se los llama. Por ejemplo, una cuenta de ofertante no puede borrar un conjunto de filtros creado con bidders.accounts.filterSets.create con bidders.filterSets.delete.

A nivel del ofertante

Si deseas borrar un filtro a nivel del ofertante establecido para una cuenta determinada, envía una solicitud HTTP DELETE al URI de recurso bidders.filtersets, que tiene el siguiente formato:

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
Solicitar

A continuación, se incluye un ejemplo de cómo borrar un conjunto de filtros a nivel del ofertante:

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/test-b-2
Respuesta

Si se ejecuta correctamente, el cuerpo de la solicitud estará vacío. Ya no se podrá acceder al conjunto de filtros especificado.

Nivel de la cuenta

Puedes borrar un conjunto de filtros a nivel de la cuenta para una cuenta determinada. Para ello, envía un DELETE HTTP al URI de recurso bidders.accounts.filtersets, que tiene el siguiente formato:

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
Solicitar

A continuación, se incluye un ejemplo de cómo borrar un conjunto de filtros a nivel de la cuenta:

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/test-a-1
Respuesta

Si se ejecuta correctamente, el cuerpo de la solicitud estará vacío. Ya no se podrá acceder al conjunto de filtros especificado.

Recupera métricas de solución de problemas de RTB.

Todos los recursos de solución de problemas de RTB que se utilizan para recibir las métricas funcionan de manera similar: tienen un Método único para enumerar las métricas del conjunto de filtros especificado a través de una ruta de acceso filterSetName parámetro. El conjunto de filtros especificado determinará qué filtros y parámetros de configuración se aplicarán cuando consultar las métricas. Si llamas a estos recursos desde el nivel de ofertante, se mostrarán métricas agregadas desde la cuenta del ofertante y todas las cuentas secundarias asociadas, mientras que una llamada solo mostrará métricas para una cuenta individual.

Métricas de ofertas

El recurso bidMetrics se usa para recuperar métricas que se miden en el la cantidad de ofertas. Por ejemplo, puede utilizarlo para determinar el número total de ofertas en un de un período determinado, y cuántas de ellas no se filtraron de la subasta, ganaron una impresión etc. Al igual que todos los demás recursos de solución de problemas de RTB que se usan para recopilar métricas, solo tiene un método list.

Enumera las métricas de ofertas a nivel del ofertante

Puedes enumerar las métricas de ofertas a nivel del ofertante para un conjunto de filtros determinado. Para ello, envía un GET HTTP al URI de recurso bidders.filtersets.bidMetrics, que tiene el siguiente formato:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}/bidMetrics
Solicitar

A continuación, se incluye un ejemplo de las métricas de ofertas a nivel del ofertante:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs/bidMetrics
Respuesta

Si la solicitud se realiza correctamente, el servidor responde con un código de estado 200 OK y un cuerpo que contiene filas de métricas para las dimensiones y el nivel de detalle especificados.

{
  "bidMetricsRows": [{
        "bids": {
        "value": "6160"
      },
      "bidsInAuction": {
        "value": "5698"
      },
      "billedImpressions": {
        "value": "1196"
      },
      "impressionsWon": {
        "value": "2920"
      },
      "measurableImpressions": {
        "value": "1160"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-11-29T08:00:00Z",
          "startTime": "2017-11-28T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "683"
      }
    },
    {
      "bids": {
        "value": "104288"
      },
      "bidsInAuction": {
        "value": "94016"
      },
      "billedImpressions": {
        "value": "99"
      },
      "impressionsWon": {
        "value": "125"
      },
      "measurableImpressions": {
        "value": "94"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-11-30T08:00:00Z",
          "startTime": "2017-11-29T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "87"
      }
    },
    {
      "bids": {
        "value": "3999"
      },
      "bidsInAuction": {
        "value": "3631"
      },
      "billedImpressions": {
        "value": "618"
      },
      "impressionsWon": {
        "value": "1819"
      },
      "measurableImpressions": {
        "value": "604"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-01T08:00:00Z",
          "startTime": "2017-11-30T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "369"
      }
    },
    {
      "bids": {
        "value": "15"
      },
      "bidsInAuction": {
        "value": "3"
      },
      "billedImpressions": {},
      "impressionsWon": {
        "value": "3"
      },
      "measurableImpressions": {},
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-02T08:00:00Z",
          "startTime": "2017-12-01T08:00:00Z"
        }
      },
      "viewableImpressions": {}
    }
  ]
}

Nota: Los campos establecidos en 0 para una métrica determinada no aparecerán en la respuesta. Las métricas billedImpressions y measurableImpressions vacías anteriores indican que tanto el valor como la varianza de estos están establecidos en 0.

Advertencia: Para cualquier desglose de datos en la respuesta, la respuesta no incluir filas si no contienen, al menos, una métrica distinta de cero. Por ejemplo, cuando un si se especifica timeSeriesGranularity, la respuesta no incluirá filas para ningún timeInterval durante el intervalo de tiempo especificado del conjunto de filtros en el que todas las métricas son cero.

Enumerar métricas de ofertas a nivel de la cuenta

Puedes enumerar las métricas de ofertas a nivel de la cuenta para un conjunto de filtros determinado. Para ello, envía un GET HTTP al URI del recurso bidders.accounts.filtersets.bidMetrics, que tiene el elemento con el siguiente formato:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}/bidMetrics
Solicitar

A continuación, se incluye un ejemplo de una ficha de las métricas de oferta a nivel de la cuenta:

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs/bidMetrics
Respuesta

Si la solicitud se realiza correctamente, el servidor responde con un código de estado 200 OK y un cuerpo que contiene filas de métricas para las dimensiones y el nivel de detalle especificados.

{
  "bidMetricsRows": [{
      "bids": {
        "value": "1748"
      },
      "bidsInAuction": {
        "value": "1421"
      },
      "billedImpressions": {
        "value": "301"
      },
      "impressionsWon": {
        "value": "915"
      },
      "measurableImpressions": {
        "value": "298"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-01T08:00:00Z",
          "startTime": "2017-11-30T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "172"
      }
    },
    {
      "bids": {
        "value": "6"
      },
      "bidsInAuction": {
        "value": "2"
      },
      "billedImpressions": {},
      "impressionsWon": {
        "value": "1"
      },
      "measurableImpressions": {},
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-02T08:00:00Z",
          "startTime": "2017-12-01T08:00:00Z"
        }
      },
      "viewableImpressions": {}
    }
  ]
}

Nota: Los campos establecidos en 0 para una métrica determinada no aparecerán en la respuesta. El Las métricas billedImpressions y measurableImpressions vacías anteriores indican que tanto el valor como la varianza de estos se establezcan en 0.

Advertencia: Para cualquier desglose de datos en la respuesta, la respuesta no incluirá filas si estas no contienen, al menos, una métrica distinta de cero. Por ejemplo, cuando un si se especifica timeSeriesGranularity, la respuesta no incluirá filas para ningún timeInterval durante el intervalo de tiempo especificado del conjunto de filtros en el que todas las métricas son cero.