L'API Google Ads applique des limites aux opérations d'API, comme le nombre d'opérations pouvant être envoyées dans une même requête de modification. Le tableau suivant récapitule certaines des limites et quotas importants à connaître.
| Type de demande, limite et code d'erreur | ||
|---|---|---|
| Opérations avec le niveau d'accès "Test" | 15 000 opérations d'API par jour pour les comptes de test |
RESOURCE_EXHAUSTED
|
| Opérations avec le niveau d'accès Explorateur |
2 880 opérations d'API par jour pour les comptes de production 15 000 opérations d'API par jour pour les comptes de test |
RESOURCE_EXHAUSTED
|
| Opérations avec le niveau d'accès de base | 15 000 opérations d'API par jour pour les comptes de test et de production |
RESOURCE_EXHAUSTED
|
| Opérations avec le niveau d'accès "Standard" | Opérations d'API quotidiennes illimitées pour les comptes de test et de production | N/A |
| Requêtes de mutation | 10 000 opérations de mutation par requête |
TOO_MANY_MUTATE_OPERATIONS
|
| Demandes concernant le service de planification | 1 RPS |
RESOURCE_EXHAUSTED
|
| Demandes concernant le service d'importation de conversions | 2 000 conversions par requête |
TOO_MANY_CONVERSIONS_IN_REQUEST
|
| Demandes concernant la facturation et le budget du compte | 1 opération par requête de modification |
TOO_MANY_MUTATE_OPERATIONS
|
Limites quotidiennes des opérations d'API
Les limites d'utilisation quotidienne des API sont basées sur le nombre d'opérations d'API effectuées par votre projet Google Cloud. Les opérations d'API correspondent à la somme totale des requêtes Search et SearchStream, des opérations de mutation individuelles et des autres requêtes de service. Les limites des opérations d'API quotidiennes dépendent du niveau d'accès à l'API de votre projet Google Cloud. Le guide sur les niveaux d'accès et l'utilisation autorisée décrit les limites spécifiques des opérations d'API pour chaque niveau d'accès.
Les requêtes qui ne respectent pas ces limites sont rejetées et renvoient l'erreur suivante : RESOURCE_EXHAUSTED.
Limites de gRPC
Toutes les bibliothèques clientes de l'API Google Ads utilisent gRPC pour générer des requêtes et des réponses. Par défaut, gRPC a une taille de message de 4 Mo, mais nos bibliothèques clientes définissent la taille maximale des messages sur 64 Mo afin d'accroître l'efficacité.
Les réponses ne doivent pas dépasser cette limite. Par exemple, une requête de recherche qui inclut de nombreux champs peut générer une réponse dont la taille dépasse 64 Mo. Pour éviter cette limite, vous pouvez réduire le nombre de champs sélectionnés ou utiliser le streaming. Pour les mutations, envoyez moins d'opérations par requête.
Les requêtes qui ne respectent pas cette limite ne génèrent pas de GoogleAdsError, mais génèrent une erreur RESOURCE_EXHAUSTED (code gRPC 8 / HTTP 429). Consultez la liste des codes et messages d'erreur gRPC.
Requêtes de mutation
En plus d'être comptabilisée dans le quota d'opérations quotidiennes de l'utilisateur, une requête mutate ne peut pas contenir plus de 10 000 opérations mutate par requête.
Les requêtes qui ne respectent pas cette limite sont rejetées et renvoient l'erreur TOO_MANY_MUTATE_OPERATIONS.
Vous trouverez ci-dessous les limites et les points à prendre en compte supplémentaires pour les services et les types de demandes spécifiques.
Rechercher des requêtes
Une requête Search ou SearchStream est comptabilisée comme une opération dans le quota d'opérations quotidiennes de l'utilisateur. Une requête SearchStream est comptabilisée comme une opération d'API, quel que soit le nombre de lots.
Requêtes paginées
Les requêtes paginées (par exemple, les requêtes qui contiennent un next_page_token valide) ne sont pas comptabilisées dans le quota d'opérations quotidiennes d'un utilisateur.
Toutefois, les demandes de pagination qui contiennent un jeton de page expiré ou non valide génèrent une exception et sont comptabilisées dans le quota d'opérations quotidiennes.
Pour en savoir plus sur la pagination, consultez Parcourir les résultats.
Autres types de demandes
Une requête qui n'est pas une requête Mutate, Search ou SearchStream est comptabilisée comme une opération dans le quota d'opérations quotidiennes de l'utilisateur.
Voici quelques exemples de ce type de demandes :
BatchJobService.ListBatchJobResultsConversionUploadService.UploadCallConversionsConversionUploadService.UploadClickConversionsOfflineUserDataJobService.AddOfflineUserDataJobOperationsOfflineUserDataJobService.CreateOfflineUserDataJobUserDataService.UploadUserData
Requêtes renvoyant des exceptions d'API
Les requêtes refusées avec un GoogleAdsFailure sont tout de même décomptées du quota d'opérations quotidiennes de l'utilisateur.
Les requêtes qui échouent, mais ne renvoient pas de GoogleAdsFailure, par exemple en raison d'une erreur au niveau du réseau, ne sont pas comptabilisées dans le quota d'opérations quotidiennes de l'utilisateur, car elles n'atteignent jamais le service. Par exemple, une défaillance de la connectivité réseau.
Service de planification des mots clés
En raison de leur coût et de leur complexité, les méthodes de service de planification des mots clés suivantes sont soumises à des limites distinctes des autres types de requêtes.
Limité à une requête par seconde et par numéro client :
KeywordPlanIdeaService.GenerateKeywordIdeasKeywordPlanIdeaService.GenerateKeywordHistoricalMetricsKeywordPlanIdeaService.GenerateKeywordForecastMetrics
Les requêtes qui ne respectent pas ces limites sont refusées et renvoient l'erreur suivante :
RESOURCE_EXHAUSTED.1 RPS équivaut à 60 requêtes toutes les 60 secondes.
Limité à 2 requêtes par seconde et par numéro client :
Gardez ces limites à l'esprit lorsque vous créez un plan de mots clés.
| Objet KeywordPlan | Nombre maximal |
|---|---|
KeywordPlan par compte |
10 000 |
KeywordPlanAdGroup par KeywordPlan |
200 |
KeywordPlanAdGroupKeyword par KeywordPlan |
10 000 |
KeywordPlanCampaignKeyword (mots clés à exclure) par KeywordPlan |
1 000 |
KeywordPlanCampaign par KeywordPlan |
1 |
Service Insights sur l'audience
Les méthodes suivantes dans AudienceInsightsService sont soumises à des limites de quota spécifiques.
- Limité à environ 200 demandes par jour et par numéro client :
- Limité à 2 demandes par seconde et par projet Google Cloud :
Service d'importation de conversions
Limité à 2 000 conversions par appel ou par clic par demande :
Les requêtes qui ne respectent pas ces limites sont rejetées et renvoient l'erreur suivante :
TOO_MANY_CONVERSIONS_IN_REQUEST.
Service d'importation des ajustements de conversions
Limité à 2 000 ajustements de conversions par requête :
Les requêtes qui ne respectent pas ces limites sont rejetées et renvoient l'erreur suivante :
TOO_MANY_ADJUSTMENTS_IN_REQUEST.
Règles de valeur de conversion
Le nombre de règles de valeur de conversion est limité à 100 000 par compte.
Les requêtes qui ne respectent pas cette limite sont refusées et renvoient l'erreur
ResourceCountLimitExceededError.ACCOUNT_LIMIT.
Si un ConversionValueRuleSet avec un attachment_type de CUSTOMER existe déjà pour le compte, vous devez ajouter toutes les nouvelles règles de valeur de conversion à cet ensemble pour qu'elles deviennent actives. Si aucun ensemble de règles de valeur de conversion de ce type n'existe, vous devez en créer un et y ajouter vos règles de valeur de conversion, comme décrit dans Créer des ensembles de règles.
Services de facturation et de budget de compte
Les mutations ne peuvent être effectuées que sur des comptes configurés pour la facturation mensuelle.
Les requêtes qui ne respectent pas cette limite sont rejetées et renvoient l'erreur suivante :
MUTATE_NOT_ALLOWED.Seule l'opération 1 est autorisée pour les requêtes de mutation.
Les requêtes qui ne respectent pas cette limite sont rejetées et renvoient l'erreur
TOO_MANY_MUTATE_OPERATIONS.Vous devez attendre au moins 12 heures entre chaque modification du budget du compte (
AccountBudgetouAccountBudgetProposal) pour le même compte. Si vous apportez des modifications avant que 12 heures ne se soient écoulées, des échecs irrécupérables peuvent se produire. Seul votre représentant de compte Google Ads pourra les résoudre.
Invitations à des comptes client
De nouveaux utilisateurs peuvent être invités à rejoindre des comptes clients existants avec la commande CustomerUserAccessInvitationService.
Étant donné que cette fonctionnalité envoie des e-mails d'invitation à d'autres utilisateurs, elle peut être utilisée de manière abusive. Son comportement est donc limité :
Les utilisateurs ne peuvent pas recevoir plusieurs invitations en attente pour le même compte client. Si une demande ultérieure est effectuée pour envoyer une invitation à un utilisateur qui a déjà une invitation en attente, cette erreur est renvoyée :
EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION.Les comptes client ne peuvent pas avoir plus de 70 invitations en attente à la fois. Si une requête est envoyée et que cette valeur est dépassée, l'erreur suivante est renvoyée :
PENDING_INVITATIONS_LIMIT_EXCEEDED.
Données utilisateur
Les données utilisateur sont gérées avec UserDataService et OfflineUserDataJobService.
Chaque objet UserData d'une opération create ou remove concerne un seul utilisateur final. Le champ user_identifiers d'un même objet UserData est limité à 20 identifiants maximum. Si vous dépassez cette limite dans un seul objet UserData, une erreur OfflineUserDataJobError.TOO_MANY_USER_IDENTIFIERS ou UserDataError.TOO_MANY_USER_IDENTIFIERS se produit.
Gérer les utilisateurs avec plus de 20 identifiants
Si un utilisateur final possède plus de 20 identifiants que vous devez importer, vous devez les répartir sur plusieurs objets UserData. Pour que Google puisse associer tous ces identifiants au même utilisateur final, chaque objet UserData pour cet utilisateur doit inclure au moins un user_identifier commun, tel que le même hashed_email, hashed_phone_number ou third_party_user_id. Google utilise ces identifiants partagés pour associer et fusionner les informations des différentes opérations UserData au profil de l'utilisateur final approprié.
Si vous vous appuyez sur des informations permettant d'identifier personnellement l'utilisateur, comme des adresses e-mail ou des numéros de téléphone hachés, assurez-vous qu'ils sont normalisés et hachés conformément aux exigences de l'API Google Ads (SHA-256, minuscules, sans espace) pour éviter les échecs d'association.
Par exemple, si un utilisateur possède 30 adresses e-mail, vous pouvez envoyer deux objets UserData qui partagent un third_party_user_id commun (en plaçant thirdPartyUserId plus les adresses e-mail 1 à 19 dans le premier objet pour respecter la limite de 20 identifiants, et thirdPartyUserId plus les adresses e-mail 20 à 30 dans le second) :
{
"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" }
]
}
La limite totale pour user_identifiers dans toutes les opérations d'un même AddOfflineUserDataJobOperationsRequest est de 100 000 (un OfflineUserDataJob peut accepter plusieurs appels AddOfflineUserDataJobOperationsRequest, jusqu'à un maximum recommandé de 1 000 000 d'opérations par job). Pour les importations synchrones à l'aide de UploadUserDataRequest (UserDataService.UploadUserData), chaque requête est limitée à un maximum de 10 opérations et 100 user_identifiers pour l'ensemble de la requête.
Autres types de limites
Un champ répété, tel qu'une liste d'opérations, qui contient trop d'éléments dans une requête peut générer l'erreur REQUEST_SIZE_LIMIT_EXCEEDED. Ce même message d'erreur peut également être dû à d'autres problèmes.
Si vous rencontrez cette limite et que vous effectuez des requêtes qui utilisent un champ répété, essayez de réduire le nombre d'éléments dans le champ répété en divisant la liste des opérations sur plusieurs requêtes mutate.
Lorsque vous effectuez une requête GAQL, le nombre maximal d'éléments dans une clause IN est de 20 000. Si vous dépassez cette limite, une erreur FILTER_HAS_TOO_MANY_VALUES est renvoyée.