L'API Google Ads applique des limites aux opérations d'API, par exemple au nombre d'opérations pouvant être envoyées dans une seule requête de modification. Le tableau suivant récapitule certaines des limites et quotas importants à connaître.
| Type de requête, limite et code d'erreur | ||
|---|---|---|
| Opérations avec le niveau d'accès Explorateur |
2 880 opérations d'API par jour sur les comptes de production 15 000 opérations d'API par jour sur les comptes de test |
RESOURCE_EXHAUSTED
|
| Opérations avec le niveau d'accès de base | 15 000 opérations d'API par jour sur les comptes de test et de production |
RESOURCE_EXHAUSTED
|
| Requêtes de modification |
10 000 opérations de modification par requête 100 opérations d'action par requête |
TOO_MANY_MUTATE_OPERATIONS
|
| Requêtes du service de planification | 1 RPS |
RESOURCE_EXHAUSTED
|
| Requêtes du service d'importation des conversions | 2 000 conversions par requête |
TOO_MANY_CONVERSIONS_IN_REQUEST
|
| Requêtes des services de facturation et de 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 de l'API sont basées sur le nombre d'opérations d'API effectuées par jeton de développeur. Les opérations d'API correspondent à la somme totale des requêtes "get" et des opérations de modification. Les limites des opérations d'API quotidiennes dépendent du niveau d'accès du jeton de développeur. Le guide Niveaux d'accès et 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 avec l'erreur:
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 modifications, envoyez moins d'opérations par requête.
Les requêtes qui ne respectent pas cette limite ne génèrent pas d'
GoogleAdsError, mais une erreur gRPC
429 Resource Exhausted. Consultez la liste des codes et messages d'erreur gRPC.
Requêtes de modification
En plus d'être comptabilisée dans le quota d'opérations quotidiennes de l'utilisateur, une requête de modification ne peut pas contenir plus de 10 000 opérations par requête.
Les requêtes qui ne respectent pas cette limite sont rejetées avec l'erreur:
TOO_MANY_MUTATE_OPERATIONS.
Les limites et considérations supplémentaires pour des services et types de requêtes spécifiques sont décrites ci-dessous.
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 requêtes 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 la section Parcourir des résultats.
Autres types de requêtes
Une requête qui n'est pas une requête Get, 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 requêtes de ce type :
BatchJobService.ListMutateJobResultsConversionUploadService.UploadCallConversionsConversionUploadService.UploadClickConversionsOfflineUserDataJobService.AddOfflineUserDataJobOperationsOfflineUserDataJobService.CreateOfflineUserDataJobUserDataService.UploadUserData
Requêtes qui renvoient des exceptions d'API
Les requêtes rejetées avec une GoogleAdsFailure sont toujours comptabilisées
dans le 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. Un exemple de ce type d'erreur est un échec de connectivité réseau.
Service de planification des mots clés
En raison de leur coût et de leur complexité, les méthodes suivantes du service de planification des mots clés sont soumises à des limites distinctes des autres types de requêtes.
Limite de 1 requête par seconde et par numéro client :
KeywordPlanIdeaService.GenerateKeywordIdeasKeywordPlanIdeaService.GenerateKeywordHistoricalMetricsKeywordPlanIdeaService.GenerateKeywordForecastMetrics
Les requêtes qui ne respectent pas ces limites sont rejetées avec l'erreur:
RESOURCE_EXHAUSTED.1 RPS correspond à 60 requêtes par 60 secondes.
Limite de 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 de plan de mots clés | Nombre maximal |
|---|---|
KeywordPlan par compte |
10 000 |
KeywordPlanAdGroup par KeywordPlan |
200 |
KeywordPlanAdGroupKeyword par KeywordPlan |
10 000 |
KeywordPlanCampaignKeyword (mots clés à exclure) |
1 000 |
KeywordPlanCampaign par KeywordPlan |
1 |
Service d'insights sur l'audience
Les méthodes suivantes de AudienceInsightsService sont
soumises à des limites de quota spécifiques.
- Limite d'environ 200 requêtes par jour et par numéro client :
- Limite de 2 requêtes par seconde et par jeton de développeur :
Service d'importation des conversions
Limite de 2 000 conversions par appel ou par clic par requête :
Les requêtes qui ne respectent pas ces limites sont rejetées avec l'erreur :
TOO_MANY_CONVERSIONS_IN_REQUEST.
Service d'importation des ajustements de conversion
Limite de 2 000 ajustements de conversion par requête :
Les requêtes qui ne respectent pas ces limites sont rejetées avec l'erreur :
TOO_MANY_ADJUSTMENTS_IN_REQUEST.
Règles de valeur de conversion
Limite de 100 000 règles de valeur de conversion par compte.
Les requêtes qui ne respectent pas cette limite sont rejetées avec 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 du compte
Les modifications ne peuvent être apportées qu'aux comptes configurés pour la facturation mensuelle.
Les requêtes qui ne respectent pas cette limite sont rejetées avec l'erreur:
MUTATE_NOT_ALLOWED.Une seule opération est autorisée pour les requêtes de modification.
Les requêtes qui ne respectent pas cette limite sont rejetées avec l'erreur:
TOO_MANY_MUTATE_OPERATIONS.Vous devez attendre au moins 12 heures entre les modifications de l'ordre de budget pour le même compte. Si vous apportez des modifications avant que 12 heures ne se soient écoulées, cela peut entraîner des échecs irrécupérables qui ne peuvent être résolus que par votre représentant de compte Google Ads.
Invitations aux comptes client
Vous pouvez inviter de nouveaux utilisateurs à des comptes client existants avec le
CustomerUserAccessService. Étant donné que cette fonctionnalité envoie des e-mails d'invitation à d'autres utilisateurs, elle peut être utilisée de manière abusive. Par conséquent, son comportement est limité :
Les utilisateurs ne peuvent pas recevoir plus d'une invitation en attente pour le même compte client. Si une requête ultérieure est envoyée pour inviter un utilisateur qui a déjà une invitation en attente, l'erreur suivante est renvoyée :
ACCESS_INVITATION_ERROR_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 :
ACCESS_INVITATION_ERROR_PENDING_INVITATIONS_LIMIT_EXCEEDED.
Données utilisateur
Les données utilisateur sont gérées avec le UserDataService et le
OfflineUserDataJobService.
Chaque UserData objet d'une opération create ou remove concerne
un seul utilisateur final. Le champ user_identifiers d'un seul
UserData objet est limité à 20 identifiants au maximum. Si vous dépassez cette
limite dans un seul objet UserData, vous recevrez une erreur
OfflineUserDataJobError.TOO_MANY_USER_IDENTIFIERS ou
UserDataError.TOO_MANY_USER_IDENTIFIERS.
Gérer les utilisateurs avec plus de 20 identifiants
Si un seul utilisateur final possède plus de 20 identifiants que vous devez importer, vous devez les répartir sur plusieurs objets UserData. Pour vous assurer que Google peut associer tous ces identifiants au même utilisateur final, chaque objet UserData de 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 opérations UserData distinctes au profil de l'utilisateur final approprié.
Si vous utilisez des informations personnelles telles que 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.
UserData 1: {third_party_user_id: "user123",hashed_email: "email1@...", ...hashed_email: "email19@..."}UserData 2: {third_party_user_id: "user123",hashed_email: "email20@...", ...hashed_email: "email30@..."}
La limite totale pour user_identifiers dans toutes les opérations d'un seul OfflineUserDataJob reste de 100 000.
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 déployant une liste d'opérations dans une requête de modification.
Lorsque vous effectuez une requête GAQL, le nombre maximal d'éléments dans une IN
clause est de 20 000. Si vous dépassez cette limite, une
FILTER_HAS_TOO_MANY_VALUES erreur est renvoyée.