Функция ALL(...)
используется для поиска объектов, в которых все включенные объекты удовлетворяют условиям фильтрации. В функции задаются типы объектов и дочерний фильтр с условиями, которым они должны удовлетворять.
ALL – это вспомогательная функция для подсчета объектов, в которых все включенные объекты удовлетворяют заданному условию. Логическое выражение ALL(types, filter)
равнозначно выражению COUNT(types, NOT(filter)) = 0
. Другими словами, функция ALL находит контейнеры, которые не содержат включенных объектов, не удовлетворяющих условиям дочернего фильтра.
Синтаксис
ALL(types, [filter])
types
– типы включенных объектов, которые должен содержать контейнер.filter
– условие, которому должны удовлетворять все включенные объекты.
Примеры
ALL(keywords, labels = ("abc", "xyz") )
Функция проверяет, помечены ли все ключевые слова в кампании или группе объявлений ярлыками "abc" или "xyz". Переменная "keywords" задает тип объектов, которые нужно искать, а выражение "labels = ("abc", "xyz")" – условия дочернего фильтра, которым объекты должны соответствовать.
ALL(callextensions; sitelinks, approvalstatus = approved)
Эта функция проверяет, одобрены ли все связанные с кампанией объекты дополнительных ссылок или звонков.
Примечания
- Если дочерний фильтр содержит несколько условий, проверяемые объекты должны соответствовать всем им. Если условия объединить функцией OR, объектам будет достаточно удовлетворять любому из этих условий. Например, функция
ALL(ads, OR(status = paused approvalstatus = disapproved))
проверит, все ли объявления приостановлены или отклонены (или приостановлены и отклонены). - Фильтр может содержать условия, которые применяются только к определенным типам объектов (для остальных объектов эти условия будут игнорироваться). Например, функция
ALL(keywords; sitelinks, keywordwordcount = 2 linktext : "local")
проверит, что все ключевые слова состоят ровно из двух слов, а дополнительные ссылки – содержат слово "local". - Если в контейнере нет объектов заданных типов, проверка с помощью функции ALL считается успешной. Например, логическое выражение
ALL(keywords, status = enabled)
покажет кампании или группы объявлений, в которых нет ключевых слов вовсе. Оно представляет собой эквивалент выраженияCOUNT(keywords, NOT(status = enabled)) = 0
, и при этом количество не включенных ключевых слов в кампании или группе объявлений равно 0. Чтобы ограничить полученные результаты контейнерами, которые содержат хотя бы один включенный объект, соответствующий условиям фильтра, добавьте в запрос функцию EXIST и укажите в его условиях те же самые дочерние фильтры, что и в функции ALL. В этом примере фильтр будет выглядеть так:EXIST(keywords, status = enabled) ALL(keywords, status = enabled)
. Он будет возвращать кампании, в которых есть хотя бы одно активное ключевое слово, а все ключевые слова – активны.
Использование функции ALL с кампаниями и группами объявлений
Если применить функцию на уровне кампании для проверки объектов, которые содержатся только в группах объявлений, будут проверены все такие объекты во всех группах. Например, функция ALL(keywords, status = enabled)
, примененная на уровне кампании, вернет кампании, все ключевые слова и группы объявлений в которых активны.
Если же объекты могут содержаться как на уровне групп объявлений, так и на уровне кампании, функция проверит только объекты на уровне кампании. Например, функция ALL(audiences, status = enabled)
зачтет кампанию, если все аудитории на уровне кампании активны (независимо от того, активны или нет аудитории на уровне групп). Это верно и для объектов: функция ALL(sitelinks, status = enabled)
на уровне кампании будет проверять только дополнительные ссылки на уровне кампании, но не на уровне групп объявлений в ней.