API 한도 및 할당량

Google Ads API는 단일 mutate 요청에서 전송할 수 있는 작업 수와 같은 API 작업에 제한을 적용합니다. 다음 표에는 알아야 할 몇 가지 중요한 한도와 할당량이 요약되어 있습니다.

요청 유형, 제한사항, 오류 코드
테스트 액세스 수준을 사용하는 작업 테스트 계정에 대한 일일 API 작업 15,000개 RESOURCE_EXHAUSTED
탐색기 액세스 수준으로 작업 프로덕션 계정의 경우 일일 API 작업 2,880개
테스트 계정의 경우 일일 API 작업 15,000개
RESOURCE_EXHAUSTED
기본 액세스 수준으로 작업 테스트 계정 및 프로덕션 계정에 대해 일일 15,000개의 API 작업 RESOURCE_EXHAUSTED
일반 액세스 수준으로 작업 테스트 계정 및 프로덕션 계정에 대한 일일 API 작업 무제한 해당 사항 없음
변형 요청 요청당 변이 작업 10,000개 TOO_MANY_MUTATE_OPERATIONS
계획 서비스 요청 1QPS RESOURCE_EXHAUSTED
전환 업로드 서비스 요청 요청당 2,000건의 전환 TOO_MANY_CONVERSIONS_IN_REQUEST
결제 및 계정 예산 서비스 요청 변경 요청당 1개의 작업 TOO_MANY_MUTATE_OPERATIONS

일일 API 작업 한도

일일 API 사용량 한도는 Google Cloud 프로젝트에서 실행한 API 작업 수를 기반으로 합니다. API 작업은 Search 및 SearchStream 요청, 개별 변이 작업, 기타 서비스 요청의 총합입니다. 일일 API 작업 한도는 Google Cloud 프로젝트의 API 액세스 수준에 따라 다릅니다. 액세스 수준 및 허용되는 사용 가이드에는 각 액세스 수준에 대한 구체적인 API 작업 한도가 나와 있습니다.

이러한 한도를 위반하는 요청은 RESOURCE_EXHAUSTED 오류와 함께 거부됩니다.

gRPC 제한사항

모든 Google Ads API 클라이언트 라이브러리는 요청과 응답을 생성하는 데 gRPC를 사용합니다. 기본적으로 gRPC의 메시지 크기는 4MB이지만, Google 클라이언트 라이브러리는 효율성을 높이기 위해 최대 메시지 크기를 64MB로 설정합니다.

대답은 이 한도를 초과해서는 안 됩니다. 예를 들어 필드가 많이 포함된 검색 요청은 크기가 64MB를 초과하는 응답을 생성할 수 있습니다. 이 한도를 초과하지 않으려면 선택한 필드 수를 줄이거나 스트리밍을 사용하세요. 변경의 경우 요청당 작업 수를 줄입니다.

이 제한을 위반하는 요청은 GoogleAdsError를 생성하지 않지만 RESOURCE_EXHAUSTED (gRPC 코드 8 / HTTP 429) 오류를 생성합니다. gRPC 오류 코드 및 메시지 목록을 참고하세요.

변형 요청

변이 요청은 사용자의 일일 작업 할당량에 포함될 뿐만 아니라 요청당 10,000개 이상의 변이 작업을 포함할 수 없습니다. 이 제한을 위반하는 요청은 TOO_MANY_MUTATE_OPERATIONS 오류와 함께 거부됩니다.

특정 서비스 및 요청 유형에 대한 추가 한도 및 고려사항은 다음에 설명되어 있습니다.

요청 검색

Search 또는 SearchStream 요청은 사용자 일일 작업 할당량에 대해 하나의 작업으로 계산됩니다. SearchStream 요청 하나는 배치 수와 관계없이 API 작업 하나로 계산됩니다.

페이지로 나눈 요청

페이지로 나누어진 요청 (예: 유효한 next_page_token가 포함된 요청)은 사용자의 일일 작업 할당량에 포함되지 않습니다. 하지만 만료되었거나 유효하지 않은 페이지 토큰이 포함된 페이지로 나누기 요청은 예외를 생성하며 일일 작업 할당량에 포함됩니다.

페이지로 나누기에 대한 자세한 내용은 결과 페이지로 나누기를 참고하세요.

기타 유형의 요청

Mutate, Search 또는 SearchStream 요청이 아닌 요청은 사용자의 일일 작업 할당량에 대해 하나의 작업으로 계산됩니다.

이러한 요청의 몇 가지 예는 다음과 같습니다.

API 예외를 반환하는 요청

GoogleAdsFailure로 거부된 요청은 여전히 사용자의 일일 작업 할당량에 포함됩니다.

실패했지만 GoogleAdsFailure를 반환하지 않는 요청(예: 네트워크 수준의 오류로 인한 요청)은 요청이 서비스에 도달하지 않으므로 사용자의 일일 작업 할당량에 포함되지 않습니다. 이러한 예로는 네트워크 연결 실패가 있습니다.

키워드 계획 서비스

비용과 복잡성으로 인해 다음 키워드 계획 서비스 메서드에는 다른 유형의 요청과 별도의 한도가 적용됩니다.

키워드 계획을 만들 때 다음 한도를 참고하세요.

키워드 계획 객체 최대 수
계정당 KeywordPlan 10,000
KeywordPlan당 KeywordPlanAdGroup 200
KeywordPlan당 KeywordPlanAdGroupKeyword 10,000
KeywordPlan당 KeywordPlanCampaignKeyword (제외 키워드) 1,000
KeywordPlan당 KeywordPlanCampaign 1

잠재고객 통계 서비스

AudienceInsightsService 내의 다음 메서드에는 특정 할당량 한도가 적용됩니다.

전환 업로드 서비스

전환 조정 업로드 서비스

전환 가치 규칙

attachment_type이 CUSTOMER인 ConversionValueRuleSet가 계정에 이미 있는 경우 새 전환 가치 규칙을 해당 세트에 추가해야 활성화됩니다. 이러한 전환 가치 규칙 집합이 없는 경우 규칙 집합 만들기에 설명된 대로 규칙 집합을 만들고 전환 가치 규칙을 추가해야 합니다.

결제 및 계정 예산 서비스

  • 변경은 월별 인보이스로 구성된 계정에 대해서만 가능합니다.

    이 제한을 위반하는 요청은 MUTATE_NOT_ALLOWED 오류와 함께 거부됩니다.

  • 변이 요청에는 1개의 작업만 허용됩니다.

    이 제한을 위반하는 요청은 TOO_MANY_MUTATE_OPERATIONS 오류와 함께 거부됩니다.

  • 동일한 계정의 계정 예산(AccountBudget 또는 AccountBudgetProposal)을 변경할 때는 최소 12시간을 기다려야 합니다. 12시간이 지나기 전에 변경하면 복구할 수 없는 오류가 발생할 수 있으며, 이 오류는 Google Ads 계정 담당자만 해결할 수 있습니다.

고객 계정 초대

신규 사용자는 CustomerUserAccessInvitationService를 사용하여 기존 고객 계정에 초대할 수 있습니다. 이 기능은 다른 사용자에게 초대 이메일을 전송하므로 악용될 가능성이 있어 다음과 같은 제한이 있습니다.

  • 사용자는 동일한 클라이언트 계정에 대해 대기 중인 초대를 두 개 이상 받을 수 없습니다. 이미 대기 중인 초대가 있는 사용자에게 초대를 보내는 후속 요청이 이루어지면 EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION 오류가 반환됩니다.

  • 고객 계정에는 한 번에 대기 중인 초대가 70개를 초과할 수 없습니다. 이 값을 초과하는 요청이 전송되면 PENDING_INVITATIONS_LIMIT_EXCEEDED 오류가 반환됩니다.

사용자 데이터

사용자 데이터는 UserDataService 및 OfflineUserDataJobService로 관리됩니다.

create 또는 remove 작업의 각 UserData 객체는 단일 최종 사용자와 관련이 있습니다. 단일 UserData 객체 내의 user_identifiers 필드는 최대 20개의 식별자로 제한됩니다. 단일 UserData 객체에서 이 한도를 초과하면 OfflineUserDataJobError.TOO_MANY_USER_IDENTIFIERS 또는 UserDataError.TOO_MANY_USER_IDENTIFIERS 오류가 발생합니다.

식별자가 20개를 초과하는 사용자 처리

업로드해야 하는 식별자가 20개를 초과하는 최종 사용자가 있는 경우 이러한 식별자를 여러 UserData 객체에 분산해야 합니다. Google에서 이러한 모든 식별자를 동일한 최종 사용자와 연결할 수 있도록 하려면 해당 사용자의 각 UserData 객체에 동일한 hashed_email, hashed_phone_number 또는 third_party_user_id과 같은 공통 user_identifier이 하나 이상 포함되어야 합니다. Google은 이러한 공유 식별자를 사용하여 별도의 UserData 작업의 정보를 올바른 최종 사용자 프로필에 연결하고 병합합니다.

해싱된 이메일 또는 전화번호와 같은 개인 식별 정보를 사용하는 경우 연결 실패를 방지하기 위해 Google Ads API 요구사항 (SHA-256, 소문자, 공백 없음)에 따라 정규화되고 해싱되었는지 확인하세요.

예를 들어 사용자에게 이메일 주소가 30개 있는 경우 공통 third_party_user_id를 공유하는 UserData 객체를 두 개 전송할 수 있습니다 (20개 식별자 한도를 유지하기 위해 첫 번째 객체에 thirdPartyUserId와 이메일 1~19를 넣고 두 번째 객체에 thirdPartyUserId와 이메일 20~30을 넣음).

{
  "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" }
  ]
}

단일 AddOfflineUserDataJobOperationsRequest의 모든 작업에 걸친 user_identifiers의 총 한도는 100,000입니다 (OfflineUserDataJob는 여러 AddOfflineUserDataJobOperationsRequest 호출을 수락할 수 있으며, 작업당 최대 1,000,000개의 작업을 권장함). UploadUserDataRequest(UserDataService.UploadUserData)을 사용하는 동기 업로드의 경우 각 요청은 최대 10개의 작업과 전체 요청에 걸쳐 100개의 user_identifiers로 제한됩니다.

기타 유형의 한도

요청에 항목이 너무 많은 작업 목록과 같은 반복 필드는 REQUEST_SIZE_LIMIT_EXCEEDED 오류가 발생할 수 있습니다. 이 오류 메시지는 다른 문제로 인해 발생할 수도 있습니다.

이 제한이 발생하고 반복 필드를 사용하는 요청을 하는 경우 여러 변이 요청에 걸쳐 작업 목록을 분할하여 반복 필드의 항목 수를 줄여 보세요.

GAQL 쿼리를 실행할 때 IN 절 내의 최대 항목 수는 20,000개입니다. 이 한도를 초과하면 FILTER_HAS_TOO_MANY_VALUES 오류가 반환됩니다.