ALL(...)
関数は、配下に持つ特定タイプのアイテムすべてがフィルタ条件と一致しているアイテムを抽出します。使用する際は、検証の対象にする配下アイテムのタイプを指定し、検証の基準(配下アイテムが一致するべき条件)を子フィルタとして追加します。
ALL は、すべての配下アイテムの抽出を簡単に記述するための便利な関数です。 ALL(types, filter)
は、COUNT(types, NOT(filter)) = 0
と同じ意味になります。子フィルタと不一致なアイテムが配下に存在しないアイテム(コンテナ)を抽出する関数、と捉えることもできるでしょう。
構文
ALL(types, [filter])
types
-- 検証する配下アイテムのタイプを指定します。filter
-- 指定タイプの配下アイテムすべてがこのフィルタに一致しているかどうかが検証されます。
例
ALL(keywords, labels = ("abc", "xyz") )
配下のキーワードすべてに「abc」または「xyz」というラベルが適用されているアイテム(広告グループまたはキャンペーン)が抽出されます。この例においては、「keywords」が検証する配下アイテムのタイプ、「labels = ("abc", "xyz")」が配下アイテムの検証基準となる子フィルタです。
ALL(callextensions; sitelinks, approvalstatus = approved)
アイテム(キャンペーンや広告グループ)と関連付けられている、承認済みのサイトリンクまたは電話番号アセットを抽出します。
備考
- 子フィルタで複数の条件を指定した場合、すべての条件を満たすアイテムだけが抽出されます。複数の条件のいずれか 1 つ以上に一致するアイテムをすべて抽出したい場合、条件を OR 関数で囲みます。例えば、
ALL(ads, OR(status = paused approvalstatus = disapproved))
とした場合、配下の広告すべてが一時停止中、不承認、またはその両方であるアイテムが抽出されます。 - フィルタには、特定のタイプのアイテムにしか当てはまらない条件を指定してもかまいません。当てはまらないタイプのアイテムが対象の場合、その条件は無視されます。たとえば、
ALL(keywords; sitelinks, keywordwordcount = 2 linktext : "local")
とした場合、すべてのキーワードの単語数がちょうど 2 であり、かつ関連付けられているすべてのサイトリンクのリンクテキストに「ローカル」を含むアイテムが抽出されます。 - All 関数では、指定タイプの配下アイテムをまったく持たないアイテムも抽出されます。たとえば、
ALL(keywords, status = enabled)
とした場合、配下にキーワードがまったく存在しないキャンペーンや広告グループも抽出されます。これは、ALL 関数があくまでCOUNT(keywords, NOT(status = enabled)) = 0
という記述を簡略化したものであるためです。キーワードがまったく存在しない場合、ステータスが「有効」でないキーワードの個数も 0 個であり、条件に一致します。フィルターに一致するアイテムを少なくとも 1 つ含むアイテムのみに結果を制限するには、ALL と同じタイプと子フィルタを持つ EXIST 関数を追加できます。この例では、EXIST(keywords, status = enabled) ALL(keywords, status = enabled)
というフィルタを使用します。配下のすべてのキーワードが「有効」であり、かつ配下に「有効」なキーワードが 1 つ以上存在するアイテムを抽出できます。
キャンペーンと広告グループに対する ALL 関数の使用
広告グループの配下にしか置けないアイテムについての検索条件を、キャンペーンのレベルで適用した場合、各キャンペーンのすべての広告グループに含まれるアイテムが検証対象となります。たとえば、キャンペーンのレベルで ALL(keywords, status = enabled)
とした場合、キャンペーンのすべての広告グループのすべてのキーワードが有効になっているかが検証されます。
広告グループの配下にもキャンペーンの配下にも置けるアイテムについての検索条件を、キャンペーンのレベルで適用した場合、各キャンペーン直下のアイテムだけが検証対象となります。たとえば、キャンペーンのレベルで ALL(audiences, status = enabled)
と指定すると、キャンペーン単位のユーザーリストがすべて有効であるキャンペーンが(配下の広告グループに有効でないユーザーリストが存在するものを含めて)すべて抽出されます。アセットについても同じことが言えます。キャンペーン レベルで ALL(sitelinks, status = enabled)
と指定すると、キャンペーン単位のサイトリンクのみがカウントされ、キャンペーン単位の広告グループ レベルのサイトリンクは検証されません。