이 페이지에서는 Google Ad Manager API를 대상으로 애플리케이션을 개발할 때 고려해야 할 다양한 권장사항을 다룹니다.
- 실행 중에 서비스 클라이언트/스텁 재사용
- 객체를 가져올 때 페이징 사용
- 일괄 업데이트 요청
- 필요한 경우 Ad Manager API 클라이언트 객체 저장
- PQL에서 바인드 매개변수 사용
- 사용자 권한을 최소한으로 부여
실행 중에 서비스 클라이언트/스텁 재사용
새 서비스 클라이언트/스텁을 만들면 WSDL 가져오기 및 리소스 할당과 관련된 한계 비용이 발생합니다. 가능하면 실행 시작 시 서비스 클라이언트/스텁을 한 번 만들고 필요에 따라 클래스와 함수에서 사용할 수 있도록 합니다.
객체를 가져올 때 페이징 사용
모든 서비스는 PQL 구문을 사용하여 결과를 필터링할 수 있는 get*ByStatement()
메서드를 지원합니다. LIMIT
및 OFFSET
절은 큰 결과 집합을 페이지로 분할하여 시간 초과를 방지하고 응답 페이지 크기를 적정하게 유지하는 데 사용할 수 있습니다. 권장되는 페이지 크기는 객체의 복잡성에 따라 200~500입니다.
일괄 업데이트 요청
같은 유형의 여러 객체를 변경할 때 모든 객체를 동일한 update*()
요청으로 전송하여 성능을 개선할 수 있습니다. 각 요청에 대해 클라이언트와 서버에는 미미한 오버헤드가 있으며 일괄 처리는 요청 수를 줄이는 효과적인 방법이 될 수 있습니다. 예를 들어 updateOrders
을 사용하여 각 호출에서 단일 주문이 아닌 일괄 주문을 업데이트합니다.
PQL에서 바인드 매개변수 사용
결합 매개변수는 PQL 쿼리 문에 변수를 입력하는 방법입니다. PQL은 콜론으로 시작하는 공백이 없는 이름으로 결합 변수를 나타냅니다(예: :name
. 코드 예는 PQL 구문 페이지에서 확인할 수 있습니다.
바인드 변수를 사용하면 쿼리 문에 문자열과 변수를 연결할 필요가 없어 코드 가독성이 높아지므로 사용하는 것이 좋습니다. 또한 바인드 매개변수 값을 대체하여 새 쿼리를 생성할 수 있으므로 PQL 문을 쉽게 재사용할 수 있습니다.
사용자 권한을 최소한으로 부여
UserService를 사용하여 사용자 역할을 만들거나 업데이트할 때 사용자에게 필요 없는 권한을 부여하지 않도록 주의하세요. 사용자에게 관리자 역할을 할당하는 대신 역할 조합으로 API의 많은 기능에 액세스할 수 있습니다. 사용자에게 할당할 역할을 결정할 때는 권한 문서를 참조하세요. 또한 타사 애플리케이션 개발자는 네트워크에 사용자 생성을 요청할 때 애플리케이션에 필요한 액세스 수준을 결정해야 합니다. 관리자보다 권한이 적은 역할로도 충분할 수 있습니다.
할당량 한도 미만 유지
Ad Manager API는 견고성을 위해 몇 가지 할당량 한도를 적용합니다. 애플리케이션을 이러한 한도 이하로 유지하는 것이 중요하며 API가 반환할 수 있는 할당량 오류에 대응하는 방법을 알아야 합니다.
API 할당량
API 요청에 적용되는 첫 번째 할당량은 네트워크 수준의 할당량입니다. Ad Manager 360 계정의 경우 요청이 초당 8개로 제한되고 Ad Manager 계정의 경우 요청이 초당 2개로 제한됩니다. 이 한도를 초과하면
QuotaError.EXCEEDED_QUOTA
오류가 발생합니다. 사용자 또는 회사의 누군가가 네트워크에 대한 API 액세스 권한을 부여한 서드 파티 애플리케이션을 포함하여 네트워크에서 수행된 모든 API 요청은 이 할당량에 적용됩니다.
시스템별 할당량
API 할당량만으로는 Ad Manager 내에서 리소스를 많이 사용하는 특정 시스템을 충분히 보호하기에 충분하지 않습니다. 보고 및 예측 시스템은 API 오류를 일으킬 수 있는 자체 할당량(각각
QuotaError.REPORT_JOB_LIMIT
및
ForecastError.EXCEEDED_QUOTA
)을 정의합니다.
할당량 오류 처리
애플리케이션에 위의 할당량 오류가 발생하면 API 요청을 재시도하는 전략을 실행하세요. 먼저 5초 이상 기다리는 것이 좋습니다. 오류가 계속 발생하면 지수 백오프를 사용하여 재시도 간 시간을 늘리세요. 재시도해도 문제가 해결되지 않으면 API 애플리케이션을 감사하여 네트워크에 사용자가 할당량을 소진하고 있는지 확인하세요.