필터

Ad Manager API는 List 메서드에 대한 필터링을 지원합니다. 필터 문자열 문법은 EBNF 문법에 공식적으로 정의되어 있습니다.

시작하려면 다음과 같은 일반적인 사용 사례를 참고하세요.

의미
orders.updateTime > "2024-01-01T00:00:00-5:00" 동부 표준시 기준으로 2024년 1월 1일 이후 updateTime이 있는 주문을 나열합니다.
lineItems.targeting.geoTargeting.targetedGeoIds:2840 미국(지역 타겟 ID 2480)이 포함된 지역 타겟팅이 설정된 광고 항목을 표시합니다.
lineItems.displayName = "*_interstitial" 표시 이름이 _interstitial 문자열로 끝나는 광고 항목을 나열합니다.
orders.displayName = "*video*" video 문자열이 포함된 표시 이름을 가진 주문을 나열합니다.
displayName:"video" 표시 이름에 video 문자열이 포함된 주문을 나열합니다(대체 문법).

리터럴

맨 리터럴 값(예: 42, Hugo)은 일치시킬 값입니다. 단독으로 표시되는 리터럴은 리소스의 지원되는 모든 필드와 대략 일치합니다. 리소스는 list 메서드에서 일치로 간주되는 필드를 문서화합니다. 이 기능은 Ad Manager UI의 전체 검색과 유사하지만 단일 리소스 유형으로 범위가 지정됩니다.

공백이 포함된 문자열 리터럴은 큰따옴표로 묶어야 합니다(예: "Foo bar"). 작은따옴표는 문자열 리터럴을 래핑하는 데 사용할 수 없습니다.

논리 연산자

Ad Manager API는 바이너리 연산자 ANDOR를 지원합니다.

연산자 의미
AND a AND b ab가 true이면 true입니다.
OR a OR b OR c a, b, c 중 하나라도 참이면 true입니다.

부정 연산자

Ad Manager API는 단항 연산자 NOT-를 제공합니다. 이는 서로 바꿔서 사용할 수 있습니다.

연산자 의미
NOT NOT a a가 true가 아니면 true입니다.
- -a a가 true가 아니면 true입니다.

비교 연산자

Ad Manager API는 문자열, 숫자, 타임스탬프, 기간 필드에 바이너리 비교 연산자 =, !=, <, >, <=, >=를 지원합니다.

연산자 의미
= a = true a가 true이면 true입니다.
!= a != 42 a이 42가 아니면 true입니다.
< a < 42 a이 42보다 작은 숫자 값이면 true입니다.
> a > "foo" a가 'foo' 뒤에 문법적으로 정렬된 경우 true입니다.
<= a <= "foo" a이 'foo'이거나 그 앞의 어휘상이면 true입니다.
>= a >= 42 a이 42 이상의 숫자 값인 경우 true입니다.

필터는 쿼리 문자열로 허용되므로 문자열을 적절한 강력한 유형의 값으로 변환하는 유형 변환이 발생합니다.

  • 문자열은 큰따옴표를 사용합니다. 예: "Foo bar"
  • enum은 enum의 문자열 표현을 예상합니다(대소문자 구분).
  • 불리언은 truefalse 리터럴 값을 예상합니다.
  • 숫자는 표준 정수 또는 부동 소수점 표현을 예상합니다. 부동 소수점의 경우 지수가 지원됩니다. 예: 2.997e9
  • 지속 시간에는 숫자 표현과 s 접미사 (초)가 차례로 옵니다. 예시: "20s", "1.2s".
  • 타임스탬프RFC-3339 형식의 문자열을 예상합니다. 예를 들면 "2012-04-21T11:30:00-04:00"입니다. UTC 오프셋이 지원됩니다.

와일드 카드

문자열을 비교할 때 Ad Manager API는 * 문자를 사용하여 와일드 카드를 지원합니다.

의미
a = "*.foo" a이 '.foo'로 끝나는 경우 True입니다.

순회 연산자

Ad Manager API는 메시지, 맵 또는 구조체를 통한 탐색을 나타내는 . 연산자를 지원합니다.

의미
a.b = true a에 true인 불리언 b 필드가 있으면 true입니다.
a.b > 42 a에 42보다 큰 숫자 b 필드가 있으면 true입니다.
a.b.c = "foo" a.b에 'foo'인 문자열 c 필드가 있으면 true입니다.

트래버설은 리소스의 필드 이름을 사용하여 작성됩니다. 개별 서비스는 탐색에 지원되는 필드의 하위 집합을 지정할 수 있습니다.

연산자 있음

Ad Manager API는 'has'를 의미하는 : 연산자를 지원합니다. 컬렉션(반복되는 필드 또는 맵), 메시지, 문자열에 사용할 수 있으며, 각 경우에 따라 약간 다르게 동작합니다.

문자열 필드 쿼리로 문자열에 일치하는 하위 문자열이 포함되어 있는지 확인합니다.

의미
r.displayName:"_250x250" 문자열 필드 r.displayName에 하위 문자열 _250x250가 포함된 경우 true입니다.

반복되는 필드 쿼리는 반복되는 구조에 일치하는 요소가 있는지 확인합니다.

의미
r:42 r에 42가 포함된 경우 true입니다.
r.foo:42 re.foo = 42와 같은 요소 e가 포함된 경우 true입니다.

맵, 구조체, 메시지는 맵에 필드가 있는지 또는 특정 값이 있는지 쿼리할 수 있습니다.

의미
m:foo m에 'foo' 키가 포함되어 있으면 true입니다.
m.foo:* m에 'foo' 키가 포함되어 있으면 true입니다.
m.foo:42 m.foo가 42면 true입니다.

메시지를 순회할 때 필드는 기본값이 아닌 값을 가질 때만 존재하는 것으로 간주됩니다.

제한사항

개별 서비스는 여기에 정의된 것 외에도 필터 쿼리에 대한 추가 구조 또는 제한사항을 지정할 수 있습니다.

주문

Ad Manager API는 List 메서드의 순서 지정을 지원합니다. orderBy 필드의 구문은 필드 이름의 쉼표로 구분된 목록입니다. 예를 들면 "foo,bar"입니다.

기본 정렬 순서는 오름차순입니다. 필드의 내림차순을 지정하려면 " desc" 서픽스를 추가합니다. 예를 들면 "foo desc, bar"입니다.

구문에서 중복 공백 문자는 무시됩니다. "foo, bar desc", " foo , bar desc ", "foo,bar desc" 값은 모두 동일합니다.

하위 필드는 탐색 연산자로 지정됩니다. 예를 들면 foo.bar 또는 address.street입니다.