Límites y cuotas de la API

La API de Google Ads aplica límites a las operaciones de la API, como la cantidad de operaciones que se pueden enviar en una sola solicitud de modificación. En la siguiente tabla, se resumen algunos de los límites y las cuotas importantes que debes tener en cuenta.

Tipo de solicitud, limitación y código de error
Operaciones con el nivel de acceso de prueba 15,000 operaciones de API por día en cuentas de prueba RESOURCE_EXHAUSTED
Operaciones con el nivel de acceso de Explorer 2,880 operaciones de API por día en cuentas de producción
15,000 operaciones de API por día en cuentas de prueba
RESOURCE_EXHAUSTED
Operaciones con el nivel de acceso Básico 15,000 operaciones de API por día en cuentas de prueba y de producción RESOURCE_EXHAUSTED
Operaciones con nivel de acceso estándar Operaciones de API ilimitadas por día en cuentas de prueba y de producción N/A
Solicitudes de mutación 10,000 operaciones de mutación por solicitud TOO_MANY_MUTATE_OPERATIONS
Solicitudes de servicio de planificación 1 QPS RESOURCE_EXHAUSTED
Solicitudes del servicio de carga de conversiones 2,000 conversiones por solicitud TOO_MANY_CONVERSIONS_IN_REQUEST
Solicitudes de los servicios de facturación y presupuesto de la cuenta 1 operación por solicitud de mutación TOO_MANY_MUTATE_OPERATIONS

Límites diarios de operaciones de API

Los límites de uso diario de la API se basan en la cantidad de operaciones de la API que realiza tu proyecto de Google Cloud. Las operaciones de API son la suma total de las solicitudes de Search y SearchStream, las operaciones de mutación individuales y otras solicitudes de servicio. Los límites para las operaciones diarias de la API dependen del nivel de acceso a la API de tu proyecto de Google Cloud. En la guía de niveles de acceso y uso permitido, se describen los límites específicos de las operaciones de la API para cada nivel de acceso.

Las solicitudes que incumplen estos límites se rechazan con el error RESOURCE_EXHAUSTED.

Limitaciones de gRPC

Todas las bibliotecas cliente de la API de Google Ads usan gRPC para generar solicitudes y respuestas. De forma predeterminada, gRPC tiene un tamaño de mensaje de 4 MB, pero nuestras bibliotecas cliente establecen el tamaño máximo del mensaje en 64 MB para aumentar la eficiencia.

Las respuestas no deben exceder este límite. Por ejemplo, una solicitud de búsqueda que incluye muchos campos puede generar una respuesta que supere los 64 MB de tamaño. Para evitar este límite, puedes reducir la cantidad de campos seleccionados o usar la transmisión. En el caso de las mutaciones, envía menos operaciones por solicitud.

Las solicitudes que incumplan esta limitación no generarán un GoogleAdsError, sino un error RESOURCE_EXHAUSTED (código 8 de gRPC o 429 de HTTP). Consulta la lista de códigos y mensajes de error de gRPC.

Solicitudes de mutación

Además de contabilizarse en la cuota de operaciones diarias del usuario, una solicitud de mutación no puede contener más de 10,000 operaciones de mutación por solicitud. Las solicitudes que incumplen esta limitación se rechazan con el error TOO_MANY_MUTATE_OPERATIONS.

A continuación, se describen los límites y las consideraciones adicionales para los servicios y los tipos de solicitudes específicos.

Solicitudes de búsqueda

Una solicitud Search o SearchStream se considera una operación para la cuota diaria de operaciones del usuario. Una solicitud SearchStream se considera una operación de API, independientemente de la cantidad de lotes.

Solicitudes paginadas

Las solicitudes paginadas (por ejemplo, las solicitudes que contienen un next_page_token válido) no se cuentan para la cuota de operaciones diarias de un usuario. Sin embargo, las solicitudes de paginación que contengan un token de página vencido o no válido generarán una excepción y se contabilizarán en la cuota de operaciones diarias.

Para obtener más detalles sobre la paginación, consulta Desplázate por los resultados.

Otros tipos de solicitudes

Una solicitud que no sea de Mutate, Search o SearchStream se considera una operación que se descuenta de la cuota diaria de operaciones del usuario.

Estos son algunos ejemplos de esas solicitudes:

Solicitudes que devuelven excepciones de la API

Las solicitudes que se rechazan con un GoogleAdsFailure siguen contando para la cuota de operaciones diarias del usuario.

Las solicitudes que fallan, pero no muestran un GoogleAdsFailure, como las que se producen por un error a nivel de la red, no se contabilizarán en la cuota de operaciones diarias del usuario, ya que las solicitudes nunca llegarán al servicio. Un ejemplo de esto es una falla en la conectividad de red.

Servicio de planificación de palabras clave

Debido al costo y la complejidad, los siguientes métodos del servicio de Planificación de palabras clave están sujetos a límites independientes de otros tipos de solicitudes.

Ten en cuenta estos límites cuando crees un plan de palabras clave.

Objeto Keyword plan Cantidad máxima
KeywordPlan por cuenta 10,000
KeywordPlanAdGroup por KeywordPlan 200
KeywordPlanAdGroupKeyword por KeywordPlan 10,000
KeywordPlanCampaignKeyword (palabras clave negativas) por KeywordPlan 1,000
KeywordPlanCampaign por KeywordPlan 1

Servicio de estadísticas de público

Los siguientes métodos dentro de AudienceInsightsService están sujetos a límites de cuota específicos.

Servicio de carga de conversiones

Servicio de carga de ajustes de conversiones

Reglas de valor de conversión

Si ya existe un ConversionValueRuleSet con un attachment_type de CUSTOMER para la cuenta, debes agregar cualquier regla de valor de conversión nueva a ese conjunto para que se activen. Si no existe un conjunto de reglas de valor de conversión de ese tipo, debes crear uno y agregarle tus reglas de valor de conversión, como se describe en Crea conjuntos de reglas.

Servicios de facturación y presupuesto de la cuenta

  • Las mutaciones solo se pueden realizar en cuentas configuradas para la facturación mensual.

    Las solicitudes que incumplen esta limitación se rechazan con el error MUTATE_NOT_ALLOWED.

  • Solo se permite 1 operación para las solicitudes de modificación.

    Las solicitudes que incumplen esta limitación se rechazan con el error TOO_MANY_MUTATE_OPERATIONS.

  • Debes esperar al menos 12 horas entre los cambios en el presupuesto de la cuenta (AccountBudget o AccountBudgetProposal) de la misma cuenta. Si realizas cambios antes de que transcurran 12 horas, es posible que se produzcan errores irrecuperables que solo podrá resolver tu representante de la cuenta de Google Ads.

Invitaciones a cuentas de clientes

Se puede invitar a usuarios nuevos a cuentas de cliente existentes con el objeto CustomerUserAccessInvitationService. Dado que esta función envía correos electrónicos de invitación a otros usuarios, se puede usar de forma inadecuada. Por lo tanto, existen limitaciones en su comportamiento:

  • Los usuarios no pueden recibir más de una invitación pendiente para la misma cuenta de cliente. Si se realiza una solicitud posterior para enviar una invitación a un usuario que ya tiene una invitación pendiente, se devuelve este error: EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION.

  • Las cuentas de cliente no pueden tener más de 70 invitaciones pendientes a la vez. Si se envía una solicitud que hace que se supere este valor, se devuelve el siguiente error: PENDING_INVITATIONS_LIMIT_EXCEEDED.

Datos del usuario

Los datos del usuario se administran con UserDataService y OfflineUserDataJobService.

Cada objeto UserData en una operación create o remove pertenece a un solo usuario final. El campo user_identifiers dentro de un solo objeto UserData se limita a un máximo de 20 identificadores. Si se supera este límite en un solo objeto UserData, se generará un error OfflineUserDataJobError.TOO_MANY_USER_IDENTIFIERS o UserDataError.TOO_MANY_USER_IDENTIFIERS.

Cómo controlar a los usuarios con más de 20 identificadores

Si un solo usuario final posee más de 20 identificadores que debes subir, distribuye estos identificadores en varios objetos UserData. Para asegurarte de que Google pueda asociar todos estos identificadores con el mismo usuario final, cada objeto UserData de ese usuario debe incluir al menos un user_identifier común, como el mismo hashed_email, hashed_phone_number o third_party_user_id. Google utiliza estos identificadores compartidos para vincular y combinar la información de las operaciones de UserData separadas con el perfil correcto del usuario final.

Si dependes de la PII, como los correos electrónicos o los números de teléfono con codificación hash, asegúrate de que estén normalizados y codificados con hash según los requisitos de la API de Google Ads (SHA-256, en minúsculas, sin espacios en blanco) para evitar errores de vinculación.

Por ejemplo, si un usuario tiene 30 direcciones de correo electrónico, puedes enviar dos objetos UserData que compartan un third_party_user_id común (colocando thirdPartyUserId más los correos electrónicos del 1 al 19 en el primer objeto para no superar el límite de 20 identificadores, y thirdPartyUserId más los correos electrónicos del 20 al 30 en el segundo):

{
  "userIdentifiers": [
    { "thirdPartyUserId": "user123" },
    { "hashedEmail": "SHA256_OF_EMAIL_1" },
    // Hashed emails 2 through 18 are omitted here.
    { "hashedEmail": "SHA256_OF_EMAIL_19" }
  ]
}
{
  "userIdentifiers": [
    { "thirdPartyUserId": "user123" },
    { "hashedEmail": "SHA256_OF_EMAIL_20" },
    // Hashed emails 21 through 29 are omitted here.
    { "hashedEmail": "SHA256_OF_EMAIL_30" }
  ]
}

El límite total para user_identifiers en todas las operaciones de un solo AddOfflineUserDataJobOperationsRequest es de 100,000 (un OfflineUserDataJob puede aceptar varias llamadas a AddOfflineUserDataJobOperationsRequest, hasta un máximo recomendado de 1,000,000 de operaciones por trabajo). En el caso de las cargas síncronas con UploadUserDataRequest (UserDataService.UploadUserData), cada solicitud se limita a un máximo de 10 operaciones y 100 user_identifiers en toda la solicitud.

Otros tipos de límites

Un campo repetido, como una lista de operaciones, que tiene demasiados elementos en una solicitud puede generar el error REQUEST_SIZE_LIMIT_EXCEEDED. Este mismo mensaje de error también puede deberse a otros problemas.

Si te encuentras con esta limitación y realizas solicitudes que usan un campo repetido, intenta reducir la cantidad de elementos en el campo repetido dividiendo la lista de operaciones en varias solicitudes de mutación.

Cuando se realiza una consulta en GAQL, la cantidad máxima de elementos dentro de una cláusula IN es de 20,000. Si superas ese límite, se mostrará un error de FILTER_HAS_TOO_MANY_VALUES.