[go: up one dir, main page]

この記事は Mattia Tommasone による Google Ads Developer Blog の記事 "New data retention policy for Google Ads" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

11 月 13 日より、Google 広告に新しいデータ保持ポリシーが導入されます。パフォーマンス指標、課金情報、履歴レポートなどのすべてのアカウント データは、11 年間保持されるようになります。

つまり、GoogleAds.Search または GoogleAds.SearchStream を使って Google Ads API に対してクエリを実行する場合、API リクエストの日付の最大 11 年前までしかデータを取得できず、その前のデータは返されなくなります。

必要なアクション

11 年以上前の過去のデータが必要な場合は、2024 年 11 月 13 日までに取得して保存することをおすすめします。

それ以外の場合、対応は必要ありません。この更新はアカウントに自動的に適用されます。GoogleAds.Search と GoogleAds.SearchStream は今後も通常どおり動作します。

ただし、異なる値が返されるため、レポートに違いが生じる場合があることに注意してください。

質問や懸念事項がある方は、遠慮なくフォーラムからご連絡ください。


Posted by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は David Stevens による Google Ads Developer Blog の記事 "Introducing "Solutions": A New Way to Automate Management of your Google Ads Account" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google 広告の新しいツール「ソリューション」がリリースされました。これは、アカウントのタスクを簡単に管理したり、自動化したりできるツールです。ソリューションを使うと、レポートをすばやく簡単に生成して、ビジネス目標に対するキャンペーンのパフォーマンスを確認できます。簡単な管理タスクを自動化することなどもできます。

ソリューションは、Google 広告の [ ツール ] から無料で利用でき、レポートを簡単にカスタマイズできる多数の機能が含まれています。これを使うと、以下のようなことができます。

  • キャンペーン、広告グループ、キーワードなどの項目でデータを絞り込む
  • 柔軟な予算設定をする
  • アカウント全体で除外キーワード リストを管理する
  • 任意の指標でデータを並べ替える
  • CSV や XLSX など、さまざまな形式でレポートをエクスポートする

ソリューションの詳細については、Google 広告ヘルプセンターをご覧ください。

ソリューションを使うメリット

ソリューションには、次のような多くのメリットがあります。

  • 使いやすい。ソリューションは、技術的な専門知識に関係なく、誰でも使用できるシンプルでわかりやすいスクリプトです。
  • カスタマイズ可能。ソリューションは、独自のオートメーション ニーズに合わせてカスタマイズできます。
  • 効率的。ソリューションは、すばやく簡単にレポートを生成できるため、時間と労力を節約できます。
  • 正確。ソリューションは、Google Ads API を使って Google 広告アカウントから直接データを取得するので、レポートは最新で正確です。

デベロッパー サイトのソリューション ライブラリ

充実したエクスペリエンスを提供し、作業の重複を避けられるようにするために、数か月後には手動によるソリューション ライブラリを廃止する予定です。

今すぐソリューションを使ってみましょう!

ソリューションは、Google 広告キャンペーンを最大限に活用するために役立つツールです。使ってみたい方は、Google 広告のソリューション ギャラリーから、ソリューションをインストールしてみてください。



Posted by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Devin Chasanoff による Google Ads Developer Blog の記事 "The Query Builder Blog Series: Part 3 - Creating a Resource Schema" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

このブログシリーズでは、新しく改善されたインタラクティブ Google 広告クエリビルダーの構築過程についてお伝えしています。シリーズのパート 2 では、インタラクティブ クエリビルダー Angular アプリケーションの正規データセットとして利用する詳細な JSON リソース スキーマの設計について説明しました。パート 3 では、GoogleAdsFieldService を使ってそのスキーマを作成する方法を取り上げます。
データの取得パート 2 で説明したスキーマのデータの大半は、次のクエリを使って GoogleAdsFieldService という API を呼び出すことで作成します。

SELECT name, category, data_type, selectable, filterable, sortable, selectable_with, metrics, segments, is_repeated, type_url, enum_values, attribute_resources

結果は、Google Ads API で利用できるすべてのフィールドについての JSON オブジェクトの配列です。配列の各オブジェクトには、先ほどの SELECT 句のフィールドが含まれています。たとえば、ad_group のリスト項目は次のようになります。

{
"resourceName": "googleAdsFields/ad_group",
"name": "ad_group",
"category": "RESOURCE",
"dataType": "MESSAGE",
"selectable": false,
"filterable": false,
"sortable": false,
"selectableWith": [...],
"metrics": [...],
"segments": [...],
"isRepeated": false,
"typeUrl": "com.google.ads.googleads.v6.resources.AdGroup",
"enumValues": [],
"attributeResources": [...]
}


これをキーと値のペアに変換します。キーをエンティティ名、値をエンティティのメタデータにして、エンティティからメタデータを簡単に検索できるようにします。たとえば、ad_group エントリは次のようになります。

{
"ad_group": {
"resourceName": "googleAdsFields/ad_group",
"name": "ad_group",
"category": "RESOURCE",
"dataType": "MESSAGE",
"selectable": false,
"filterable": false,
"sortable": false,
"selectableWith": [...],
"metrics": [...],
"segments": [...],
"isRepeated": false,
"typeUrl": "com.google.ads.googleads.v6.resources.AdGroup",
"enumValues": [],
"attributeResources": [...]
}


パート 2 で設計したスキーマと比べると、変換したオブジェクトにはいくつかのフィールドが存在しないことがわかります。そこで、属性、フィールド、説明、表示名を表すセクションを追加します。
属性スキーマの設計を思い出してみると、それぞれのリソースに attributes という名前の配列があり、そのリソース自体と任意の属性付きリソースに存在するすべてのフィールド名が含まれていました。この配列は、GoogleAdsFieldService クエリの結果を反復処理し、そのリソースかいずれかの属性付きリソースで始まるエントリ名にドットを追加することで作成できます。
フィールドこのスキーマの fields エントリは、(a)先ほど作成した属性配列の項目、(b)リソースの指標、(c)リソースのセグメントのそれぞれがエントリとなるオブジェクトです。各エントリの値は、先ほど作成したオブジェクトのそれぞれのフィールドの値となります。ただし、各フィールドに incompatible_fields 配列を追加する必要があります。

fields オブジェクトの各エントリの incompatible_fields 配列を作成するには、トップレベル オブジェクトに存在するフィールド、指標、セグメントのそれぞれが、評価対象のフィールドの selectable_with と一致するかどうかを確認します。一致しない場合、そのフィールド、指標、セグメントを incompatible_fields 配列に追加します。
説明次に、トップレベルのリソースと fields エントリ内の項目のそれぞれに説明を追加します。ここで重要なのは、トップレベルのリソースによって、フィールドの説明が異なる場合があることです。たとえば、ad_group.id の説明には「出力のみ。広告グループの ID。」とありますが、campaign.id の説明には「出力のみ。キャンペーンの ID。」とあります。REST ディスカバリー ドキュメントには、ネストした説明が含まれています。これは正規の説明オブジェクトを作るために利用できるので、これを使ってスキーマを設定します。このステップには解析とフォーマット設定が必要ですが、詳細は割愛します。必要になったときのために、REST ディスカバリー ドキュメントが用意されていることを覚えておいてください。今のところ、この方法が利用できる最適なソリューションですが、GoogleAdsFieldService から説明が返されるようになれば、そちらを使う方が簡単でしょう。
表示名残る作業は、リソース スキーマの表示名フィールドの設定です。この作業は単純で、名前に含まれるアンダースコアをスペースで置換し、各単語の最初の文字を大文字にするだけです。

リソースのフィルタリングこれで、リソース スキーマの内容をすべて設定できました。ただし、これには GoogleAdsFieldService クエリが返したすべてのリソース、フィールド、セグメント、指標が含まれています。このスキーマをフィルタリングし、categoryRESOURCE である項目のみを含むようにします。
まとめ詳細なフィールド情報と、それぞれのフィールドと同時に選択できないフィールドのリストを含む、拡張リソース スキーマが作成できました。Angular アプリケーションでは、このスキーマを利用します。今回の投稿では、以下について説明しました。
  • GoogleAdsFieldService を使ってフィールドのメタデータを取得する方法
  • GAQL でのフィールドの同時使用可否
  • REST ディスカバリー API
Google Ads API でできることについての理解が深まれば幸いです。ご質問やさらにサポートが必要なことがありましたら、フォーラムまたは googleadsapi-support@google.com にご連絡ください。


この記事は Devin Chasanoff による Google Ads Developer Blog の記事 "The Query Builder Blog Series: Part 2 - Designing a Resource Schema" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

このブログシリーズでは、最近リリースされたインタラクティブ Google 広告クエリビルダー ツールの構築過程についてお伝えしています。シリーズのパート 1 では、このシリーズで説明する大まかな内容と、このコンテンツを公開することになった理由を紹介しました。パート 2 では、インタラクティブ クエリビルダー Angular アプリケーションの正規データセットとして利用する詳細な JSON リソース スキーマの設計について取り上げます。

背景パート 1 でも述べたように、新しいインタラクティブ クエリビルダーの大きなメリットの 1 つは、Google Ads Query Language(GAQL)クエリの句において、フィールドを選択できる理由やできない理由をリアルタイムで細かくフィードバックできることです。

たとえば、ad_group を FROM 句のメインリソースとする GAQL クエリを作成する場合を考えてみましょう。ad_group リソースでは、segments.conversion_actionmetrics.absolute_top_impression_percentage の両方を選択できます。しかし、segments.conversion_action の詳しいリファレンス ドキュメントを見ると、一緒に選択できる("Selectable With")フィールドのリストが記載されており、そこには metrics.absolute_top_impression_percentage は含まれていません。そのため、この 2 つのフィールドを同時に使用することはできません。FROM 句のリソースが何であれ、クエリにこの 2 つのフィールドのどちらかが存在すれば、もう片方は使用できません。そのため、segments.conversion_action を選択すると、インタラクティブ クエリビルダーで metrics.absolute_top_impression_percentage は選択できなくなります。

私たちは、実行時にサーバーを何度も呼び出してすべてのロジックを知ろうとするよりも、リソース スキーマを含む静的な JSON ファイルをアプリケーションに渡す方が便利だと考えました。しかし、最適なスキーマとはどのようなものでしょうか。

スキーマの設計(定義はこのブログ投稿の最後に掲載)GAQL 文字列では、FROM 句に 1 つのリソースが必要です。この制約を考えると、トップレベルの JSON スキーマは、リソースからそれぞれのリソースの詳細スキーマへのマップとなります。たとえば、スキーマの ad_group エントリは次のようになります。


{

"ad_group": {
"name": "ad_group",
"display_name": "Ad Group",
"description": "An ad group.",
// Array of all attribute and attributed resource fields.
"attributes": [
"ad_group.ad_rotation_mode",
"ad_group.base_ad_group",
"ad_group.campaign",
...
"campaign.ad_serving_optimization_status",
"campaign.advertising_channel_sub_type",
"campaign.advertising_channel_type",
...
"customer.auto_tagging_enabled",
"customer.call_reporting_setting.call_conversion_action",
"customer.call_reporting_setting.call_conversion_reporting_enabled",
...
],
// Array of all metrics selectable with ad_group.
"metrics": [...],
// Array of all segments selectable with ad_group.
"segments": [...],
// Expanded info for all items listed in attributes, metrics, and segments arrays.
"fields": {...}
}




この拡張スキーマの厄介な点は、fields エントリです。このオブジェクトのキーは、トップレベルのリソース(ad_group など)のすべての属性、指標、セグメントです。このオブジェクトのそれぞれの項目の値は、そのフィールドについての詳細情報と、incompatible_fields という追加フィールドを含むオブジェクトです。この追加フィールドは、そのフィールドと同時に選択できないフィールドの配列です。たとえば、fields オブジェクトの metrics.phone_impressions エントリは次のようになります。




"metrics.phone_impressions": {
"field_details": {
"name": "metrics.phone_impressions",
"category": "METRIC",
"selectable": true,
"filterable": true,
"sortable": true,
"data_type": "INT64",
"is_repeated": false,
"type_url": "",
"description": "Number of offline phone impressions.",
"enum_values": [],
"selectable_with": [
"ad_group",
"ad_group_ad",
"campaign",
"customer",
"extension_feed_item",
"segments.ad_network_type",
"segments.click_type",
"segments.date",
"segments.day_of_week",
"segments.interaction_on_this_extension",
"segments.keyword.ad_group_criterion",
"segments.keyword.info.match_type",
"segments.keyword.info.text",
"segments.month",
"segments.month_of_year",
"segments.quarter",
"segments.week",
"segments.year"
]
},
"incompatible_fields": [
"segments.slot",
"segments.device",
"segments.external_conversion_source",
"segments.conversion_action_category",
"segments.conversion_lag_bucket",
"segments.hour",
"segments.conversion_action_name",
"segments.conversion_action",
"segments.conversion_adjustment",
"segments.conversion_or_adjustment_lag_bucket"
]
},




このスキーマは再帰的で、一部のフィールドは複数のリソースに登場するので、冗長に思えるかもしれません。しかし、読み込み時間を減らすため、最終的にはこのメインスキーマを分割してそれぞれのリソースを表す JSON ファイルを作成し、FROM 句のリソースに応じてリソースに固有な 1 つのスキーマのみを取得します。


スキーマ定義参考までに、完全なスキーマ定義を示します。


interface ResourceSchema {
name: string; // the name of the resource
display_name: string; // the display name of the resource
description: string; // the description of the resource
attributes: string[]; // the resource's fields (including attributed resource fields)
metrics: string[]; // available metrics when the resource is in the FROM clause
segments: string[]; // available segments when the resource is in the FROM clause
fields: { // detailed info about all fields, metrics, and segments
[key: string]: {
field_details: FieldDetails; // details about the field (defined below)
incompatible_fields: string[]; // fields that are incompatible with the current field
}
};
}

interface FieldDetails {
name: string; // the name of the field
category: string; // the field's category (e.g. ATTRIBUTE, METRIC, SEGMENT)
selectable: boolean; // whether or not the field is allowed to be placed in the SELECT clause
filterable: boolean; // whether or not the field is allowed to be placed in the WHERE clause
sortable: boolean; // whether or not the field is allowed to be placed in the ORDER BY clause
data_type: string; // the field's data type
is_repeated: boolean; // whether or not the field is a repeated field
type_url: string; // the field's type_url
description: string; // the field's description
enum_values: string[]; // possible enum values if the field is of type ENUM
selectable_with: string[]; // the list of field the current field is selectable with
}


まとめ以上で、詳細なフィールド情報と、それぞれのフィールドと同時に選択できないフィールドのリストを含む拡張リソース スキーマが設計できました。Angular アプリケーションでは、このスキーマを利用します。パート 3 では、GoogleAdsFieldService を使ってこのスキーマを作成する方法について説明します。
Google Ads API でできることについての理解が深まれば幸いです。ご質問やさらにサポートが必要なことがありましたら、フォーラムまたは googleadsapi-support@google.com にご連絡ください。
 

この記事は Sam Dutton による web.dev の記事 "What is FLoC?" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

FLoC は、プライバシーを保護しつつ、興味ベースで広告を選択するメカニズムです。

ユーザーがウェブを動き回ると、ブラウザは FLoC アルゴリズムを使って、直近の閲覧履歴が似ているたくさんのブラウザで共通する「興味コホート」を割り出します。コホートはユーザーのデバイスで定期的に再計算されますが、個々の閲覧データがブラウザ ベンダーなどの他者と共有されることはありません。

FLoC は現在 Chrome オリジントライアルの最中です。詳しくは FLoC のオリジン トライアルに参加する方法をご覧ください。

現在の FLoC オリジントライアルでは、以下のいずれかの要因によりブラウザの FLoC 計算に取り込まれます:

他のクラスタリングアルゴリズムでは、今回のトライアルでは異なる取り込み基準で実験を行う可能性があります。これはオリジントライアルの実験手順の一部です。

広告主(お金を払って広告を出稿するサイト)は、自分のウェブサイトにコードを含めてコホートデータを収集し、アドテック プラットフォーム(広告を配信するソフトウェアやツールを提供する企業)に提供できます。たとえば、アドテック プラットフォームは、オンラインの靴店から、コホート 1101 と 1354 のブラウザはこの店のハイキング グッズに興味があるかもしれないことを把握できます。その他の広告主から、アドテック プラットフォームは各コホートのその他の興味を知ることができます。

次に、広告プラットフォームはこのデータを使って、これらのコホートのいずれかに属するブラウザが広告掲載サイト(ニュースサイトなど)のページをリクエストしたときに、関連性が高い広告(先ほどの靴店のハイキング シューズなど)を選択できます。

Privacy Sandbox は、サードパーティ Cookie などのトラッキング メカニズムを使わずにサードパーティ ユースケースを満たすための一連の提案です。各提案の概要については、Privacy Sandbox の詳細をご覧ください。

この提案について、皆さんからのフィードバックが必要です。コメントがある方は、FLoC Explainer リポジトリで Issue を作成してください。この提案に関連する Chrome の試験運用についてフィードバックがある方は、試験運用の目的に返信する形で投稿してください。

FLoC が必要になる理由

多くの企業は、サイトのトラフィックを増加するために広告を利用しています。そして多くのパブリッシャーのウェブサイトは、広告のインベントリを販売することで、コンテンツの資金を得ています。ユーザーは通常、関連性が高く有用な広告を見ることを好みます。また、広告の関連性が高いほど、広告主に多くのビジネスを、広告をホストしているウェブサイトに多くの収益をもたらします。言い換えれば、関連性の高い広告を表示すれば、広告スペースの価値が上がります。したがって、関連性の高い広告を選ぶことで、広告がサポートするウェブサイトの収益が上がります。つまり、関連性の高い広告は、ユーザーにメリットをもたらすコンテンツを制作するための資金源になります。

しかし、多くのユーザーは、関連性の高い広告が示唆するプライバシーの問題を心配しています。現在、このような広告は、Cookie によるトラッキングやデバイスのフィンガープリンティングなどの技術を利用しています。これらは、個人の閲覧動作を追跡するために使われる技術です。FLoC の提案は、プライバシーを侵害せずに広告選択の効率を高めることを目指しています。

FLoC の利用目的

  • 広告主のサイトに頻繁にアクセスしたコホートや、それに関連するトピックに興味を示したコホートに属するブラウザを使うユーザーに広告を表示する。
  • 機械学習モデルを使用して、ユーザーをコンバージョンできる可能性をコホートに基づいて予測し、広告オークションの入札動作に反映する。
  • ユーザーにコンテンツをお勧めする。たとえば、あるニュースサイトで、スポーツのポッドキャスト ページの人気がコホート 1234 と 7 のユーザーの間で特に高い場合、同じコホートの他のユーザーにもそのコンテンツをお勧めできる。

FLoC の動作の仕組み

下の例は、FLoC を使って広告を選択するうえでのそれぞれの役割について説明しています。

  • この例の広告主(お金を払って広告を出稿する企業)は、次のオンライン靴店です。
    shoestore.example

  • この例のパブリッシャー(広告スペースを販売するサイト)は、次のニュースサイトです。
    dailynews.example

  • アドテック プラットフォーム(広告を配信するソフトウェアやツールを提供する企業)は、次のサイトです。
    adnetwork.example

FLoC を使って広告を選択して配信するうえでのそれぞれの役割について、順を追って説明する図。FLoC サービス、ブラウザ、広告主、パブリッシャー(コホートの観測)、アドテック、パブリッシャー(広告の表示)

この例では、ユーザーを YoshiAlex と呼びます。最初の状態では、どちらのブラウザも同じコホート 1354 に属しています。

ここではユーザーを Yoshi と Alex と呼んでいますが、これは例示のみの目的です。FLoC では、広告主、パブリッシャー、アドテック プラットフォームに名前や個々の ID が明かされることはありません。

コホートをユーザーの集合と考えないでください。そうではなく、コホートは閲覧アクティビティをグループ化したものと考えてください。

1. FLoC サービス

  1. ブラウザによって利用される FLoC サービスは、たくさんの「コホート」を持つ数学的なモデルを作成します。各コホートは、最近の閲覧履歴が似ているたくさんのウェブブラウザに対応しています。この処理については、後ほど詳しく説明します。
  2. それぞれのコホートに番号が付けられます。

2. ブラウザ

  1. Yoshi のブラウザは、FLoC サービスから FLoC モデルの詳細データを取得します。
  2. Yoshi のブラウザは、FLoC モデルのアルゴリズムを使ってどのコホートが自分の閲覧履歴に最も近いかを計算し、自分のコホートを割り出します。この例では、コホート 1354 とします。Yoshi のブラウザは、FLoC サービスに何のデータも送信していない点に注目してください。
  3. 同じように、Alex のブラウザもコホート ID を計算します。Alex の閲覧履歴は Yoshi の履歴とは違いますが、かなり似ているので、どちらのブラウザもコホート 1354 に属すると判断されます。

3. 広告主 : shoestore.example

  1. Yoshi が shoestore.example にアクセスします。
  2. サイトが Yoshi のブラウザにコホートを尋ねます。1354 が返されます。
  3. Yoshi がハイキング シューズのページを閲覧します。
  4. サイトは、コホート 1354 のブラウザがハイキング シューズに興味を示したことを記録します。
  5. サイトは後ほど、コホート 1354 が興味を示した製品についての追加情報も記録します。他のコホートについても同様です。
  6. サイトは、コホートと興味が示された製品についての情報を定期的に集計し、アドテック プラットフォーム adnetwork.example に送信します。

次は Alex です。

4. パブリッシャー : dailynews.example

  1. Alex が dailynews.example にアクセスします。
  2. サイトは Alex のブラウザにコホートを尋ねます。
  3. その後、アドテック プラットフォーム adnetwork.example に広告をリクエストしますが、その際に Alex のブラウザのコホート 1354 を含めます。

5. アドテック プラットフォーム : adnetwork.example

  1. adnetwork.example は、Alex に適した広告を選択できます。その際に、パブリッシャー dailynews.example と 広告主 shoestore.example からの以下のデータを組み合わせて利用します。
    • Alex のブラウザのコホート(1354)。dailynews.example から提供されたもの。
    • コホートと製品に対する興味に関するデータ。shoestore.example から提供されたもの。「コホート 1354 のブラウザはハイキング シューズに興味がある可能性がある」
  2. adnetwork.example は Alex に適した広告を選択します。ハイキング シューズの広告で、shoestore.example によるものが選ばれます。
  3. dailynews.example が広告 🥾 を表示します。

現在の広告選択には、Cookie によるトラッキングやデバイスのフィンガープリンティングなどの技術が利用されています。これらは、広告主などのサードパーティが個人の閲覧行動を追跡するために使われる技術です。

FLoC では、ブラウザは FLoC サービスにも他の誰にも閲覧履歴を送信しません。ブラウザは、ユーザーのデバイス上でブラウザ自身が属するコホートを割り出します。ユーザーの閲覧履歴がデバイスを離れることは一切ありません。

FLoC モデルを作るバックエンド サービスは誰が運用するのか?

各ブラウザ ベンダーは、それぞれにどのようにコホートを作り出すのかを選択する必要があります。Chrome は独自の FLoC サービスを運用していますが、他のブラウザは異なるクラスタリングアプローチを採った FLoC を実装し、独自のサービスを運用する可能性があります。

FLoC サービスがブラウザにコホートを割り出す方法

  1. ブラウザによって利用される FLoC サービスは、すべての潜在的なウェブ閲覧履歴を表す多次元数学的表現を作成します。このモデルを「コホート空間」と呼びます。
  2. サービスはこの空間をたくさんのセグメントに分割します。各セグメントは、たくさんの類似した閲覧履歴のクラスタを表します。このグループ分けは、実際の閲覧履歴に基づくものではありません。単に「コホート空間」でランダムな中心を選んだり、空間をランダムな線で分割したりしたものです。
  3. それぞれのセグメントにコホート番号が与えられます。
  4. ウェブブラウザは、FLoC サービスから「コホート空間」を示すこのデータを取得します。
  5. ユーザーがウェブを動き回ると、ブラウザはあるアルゴリズムに基づき、「コホート空間」内でのブラウザ自身の閲覧履歴に最も近い領域を定期的に計算します。
FLoC サーバーが作成した「閲覧履歴空間」の図。コホート番号が振られた複数のセグメントが存在する。
FLoC サービスは「コホート空間」をたくさんのセグメントに分割する(ここに示すのは一部のみ)。

このプロセスのどの時点においても、ユーザーの閲覧履歴が FLoC サービスやサードパーティに送信されることはありません。ブラウザのコホートは、ユーザーのデバイス上でブラウザ自身が計算します。FLoC サービスは、ユーザーデータを取得することも、保管することもありません。

ブラウザのコホートは変わることがあるか

はい、ブラウザのコホートはもちろん変わることがあります。毎週同じウェブサイトにアクセスすることはないでしょう。ブラウザのコホートはそれを反映します。

コホートは、ユーザーの集まりではなく、閲覧アクティビティのクラスタを表します。通常、コホートの行動の特徴は時間が経っても一貫性があり、コホートは最近の閲覧行動が似ているグループなので、広告の選択に役立ちます。それぞれのユーザーのブラウザは、閲覧行動の変化とともにコホートを出入りします。まずは、7 日ごとにブラウザがコホートを再計算することを想定しています。

上の例では、Yoshi と Alex のブラウザのコホートはどちらも 1354 でした。将来的に興味が変われば、Yoshi のブラウザと Alex のブラウザが別のコホートに移動する可能性があります。下の例では、Yoshi のブラウザはコホート 1101 に移動し、Alex のブラウザはコホート 1378 に移動します。他のユーザーのブラウザも、閲覧の興味が変わるにつれてコホートを出入りします。

FLoC サーバーが作成した「閲覧履歴空間」の図。コホート番号が振られた複数のセグメントが存在する。時間とともに閲覧の興味が変わるにつれて、ユーザーの Yoshi と Alex に属するブラウザが別のコホートに移動する様子を示した図。
興味が変われば、Yoshi と Alex のブラウザのコホートは変わる可能性がある。

コホートは、ユーザーのグループではなく、閲覧アクティビティのグループを定義します。行動が変わるにつれて、ブラウザはコホートを出入りします。

ブラウザはどのようにしてコホートを割り出すのか

前述のように、ユーザーのブラウザはコホートの数学モデルの詳細データを FLoC サービスから取得します。これは、すべてのユーザーの閲覧アクティビティを表す多次元空間です。その後、ブラウザはあるアルゴリズムを使い、この「コホート空間」のどの領域(すなわち、どのコホート)が最近の自身の閲覧行動に最も近いかを割り出します。

FLoC はどのようにしてコホートの適切なサイズを割り出すのか

各コホートには、たくさんのブラウザが存在することになります。

コホートのサイズが小さい場合、広告のパーソナライズには役立つかもしれませんが、ユーザーのトラッキングをやめることにはなりません。逆もまた同様です。ブラウザをコホートに割り当てるメカニズムには、プライバシーと有用性との間でトレードオフが必要になります。Privacy Sandbox は、ユーザーが「集団の中に隠れる」ことができるように、k-匿名性を利用します。コホートは、少なくとも k 人のユーザーによって共有されれば、k-匿名性があります。k の数が大きくなるほど、コホートのプライバシーは高くなります。

プライベートな分類に基づいてユーザーをグループ化するために FLoC を使えるか

FLoC のコホートモデルを作成するために使うクラスタリング アルゴリズムは、なぜ分類がプライベートなのかは知ることなく、コホートにプライベートな分類と相関関係があるかどうかを評価できるように設計されています。人種、性別、病歴など、プライベートな分類が明らかになる可能性があるコホートはブロックされます。言い換えれば、コホートを割り出すとき、ブラウザはプライベートな分類が明らかにならないようなコホートのみを選択します。

FLoC はオンラインでユーザーを分類するための別の方法にすぎないのか

FLoC では、ユーザーのブラウザは他のたくさんのユーザーのブラウザとともに、たくさんのコホートのうちの 1 つに属します。サードパーティ Cookie やその他のターゲティング メカニズムとは異なり、FLoC はユーザーのブラウザが属するコホートしか明かさず、個々のユーザー ID が明らかになることはありません。そのため、他者がコホート内の個人を特定することはできません。さらに、ブラウザのコホートを割り出すために使われる閲覧アクティビティに関する情報は、ローカルのブラウザやデバイスに留まり続けて、他の場所にアップロードされることはありません。ブラウザは、差分プライバシーなどの他の手法を使ってさらに匿名化することもできます。

ウェブサイトは参加して情報を共有する必要があるのか

ウェブサイトは、FLoC をオプトインすることもオプトアウトすることもできます。そのため、プライベートなトピックを扱うサイトは、そのサイトへのアクセスを FLoC の計算に含めないようにすることもできます。さらなる保護として、FLoC サービスによる分析では、そのコホートがなぜプライベートであるかを知ることなく、コホートによってユーザーに関するプライベートな情報が明らかになる可能性があるかどうかを評価します。あるコホートで、サイトにアクセスしたユーザーのうちプライベートな分類に属するユーザーの数が典型的なユーザーの数を超えている可能性がある場合、そのコホート全体が削除されます。この分析で扱われるプライベートな分類には、負債状況やメンタルヘルスなどが含まれます。

ウェブサイトは Permissions-Policy ヘッダーに interest-cohort=() を設定すると、FLoC 計算からオプトアウトすることができます。オプトアウトしていないページでは、document.interestCohort() が使われていると、ブラウザの FLoC 計算に含まれることになります。FLoC のオリジントライアル期間中、広告や広告に関連するリソースを読み込むことが検知された場合も、ブラウザの FLoC 計算に含まれることになります(Chrome の広告検知メカニズムの仕組みは、Chromium での広告のタグ付けで説明しています)。イントラネットのサイトなど、プライベートな IP アドレスから提供されているページは、FLoC の計算対象に含まれません。

ウェブ デベロッパーとして FLoC を試すにはどうすればよいか

FLoC API はシンプルで、Promise を返すメソッドが 1 つあるだけです。この Promise は、コホートの idversion を表すオブジェクトに解決されます。

const { id, version } = await document.interestCohort();
console.log('FLoC ID:', id);
console.log('FLoC version:', version);

利用できるようになったコホートのデータは、次のように見えます。

{
"id": "14159",
"version": "chrome.1.0"
}

FLoC を使うサイトは、version の値を使って、コホート ID が参照するブラウザと FLoC モデルを知ることができます。以下の説明のとおり、interest-cohort パーミッションが許可されていないフレームでは、document.interestCohort() が返す Promise はリジェクトされます。

FLoC API は Chrome 89 以降で利用できますが、オリジン トライアルに参加していない場合は、フラグを設定してコマンドラインから Chrome を実行する必要があります。さまざまなオペレーティング システムで実行する方法は、フラグ付きで Chromium を実行するで説明されています。

  1. 次のフラグを使って Chrome を起動します。

    --enable-blink-features=InterestCohortAPI  
    --enable-features="FederatedLearningOfCohorts:update_interval/10s/minimum_history_domain_size_required/1,FlocIdSortingLshBasedComputation,InterestCohortFeaturePolicy"
  2. サードパーティ Cookie がブロックされていないこと、広告ブロッカーが実行されていないことを確認します。

  3. floc.glitch.me のデモを確認します。

ファーストパーティとサードパーティのそれぞれのコンテキストで FLoC を試す方法は、FLoC のオリジン トライアルに参加する方法で説明しています。

ウェブサイトで FLoC の計算をオプトアウトするにはどうすればよいか

サイトで interest-cohort パーミッション ポリシーを使うと、コホートを計算するためのユーザーのサイト一覧から除外することを宣言できます。このポリシーは、デフォルトで allow となる予定です。interest-cohort パーミッションが許可されていないフレームでは、document.interestCohort() が返す Promise はリジェクトされます。メインのフレームに interest-cohort permission がない場合、そのページへのアクセスは興味コホートの計算には使われません。

たとえば、次の HTTP レスポンス ヘッダーを送ると、すべての FLoC コホート計算をオプトアウトできます。

  Permissions-Policy: interest-cohort=()

提案やフィードバックをするにはどうすればよいか

API に関するコメントがある方は、FLoC Explainer リポジトリで Issue を作成してください。

関連情報


Reviewed by Eiji Kitamura - Developer Relations Team

この記事は Christophe Combette, Group Product Manager, Google Ads による Ads & Commerce Blog の記事 "Preparing our partners for Apple's iOS 14 policy updates" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Apple がまもなく導入する App Tracking Transparency(ATT)ポリシーでは、他の企業のアプリやウェブサイトの一部の情報を広告目的で使う場合、その許可を得ることが必須となります。これには、すでにユーザーの同意を得ている場合も含まれます。iOS エコシステムのデベロッパーや広告主はまだ適応する方法を模索している状況なので、今日は Google がどのようにコミュニティの準備をサポートしているかについてお知らせします。


アプリを iOS 14 に対応させる

Apple が ATT を変更することにより、広告がどの程度コンバージョン(アプリのインストールや販売)を促進しているかを示す重要な指標の一部が見えなくなります。これは、広告主による広告インプレッションの価値評価や入札に影響します。そのため、Apple の ATT ポリシーが適用されると、アプリの発行元は、iOS での Google 広告の収益に重大な影響が発生する可能性があります。iOS の収益化率を向上するには、Google Mobile Ads SDK のバージョン 7.64 にアップグレードし、SKAdNetwork サポートなどの新機能を利用することをお勧めします。アプリの発行元が準備できることの詳細は、こちらをご覧ください


iOS 14 での広告パフォーマンスの測定

Google は、iOS 14 で広告主がキャンペーンの結果を正確に測定できるように、業界と連携して、SKAdNetwork の改善に関するフィードバックを Apple に提供しています。改善が行われるまでの間は、最新バージョンの Google Analytics for Firebase にアップグレードし、SKAdNetwork サポートなどの新機能を利用することをお勧めします。また、すべての iOS のアプリ キャンペーンのパフォーマンスや成果を細かく監視し、必要に応じて目標を達成できるように予算や入札を調整することをお勧めします。アプリの広告主が準備できることの詳細は、こちらをご覧ください。また、一連のガイドは Learn with Google 教育シリーズに掲載されています。

広告主がウェブベースのコンバージョン目標に向けてディスプレイ、動画などのキャンペーンをしている場合、Apple の ATT ポリシーが適用される際に実績が変動する可能性があります。この期間には、推定コンバージョンを拡張してより多くの iOS 14 トラフィックに対応できるようにする予定です。


ATT への準拠の仕組み

Apple のポリシーが適用されると、現在広告目的で ATT に該当する(IDFA などの)情報を利用しているいくつかの Google 製 iOS アプリで、その情報を利用できなくなります。そのため、Apple のガイドに従い、これらのアプリには ATT プロンプトは表示しません。私たちは、App Store のすべての Google 製アプリについて、Apple のガイドを理解してそれに準拠する作業を懸命に進めています。新機能やバグの修正などで Google 製 iOS アプリがアップデートされると、アプリの掲載情報ページで App のプライバシーに関する詳細情報が新しくなるのを確認できます。

Google は、常にユーザーとプライバシーを最優先しています。透明性、選択肢、制御は、ユーザーに対する私たちの献身の根底であり、それは広告でも同様です。Google は、プライバシーと選択肢が確かに尊重され、広告によってサポートされる幅広いコンテンツにアクセスでき、活発でオープンなアプリのエコシステムをこれからも守り続けます。集計ソリューションやオンデバイス ソリューションなどのプライバシー保護技術に注力し続けているのはそのためです。現在、エコシステム パートナーとともにウェブで開発しているプライバシー サンドボックスもその 1 つです。


Reviewed by Eiji Kitamura - Developer Relations Team

この記事は Justin Schuh - Engineering Director, Marshall Vale - Product Manager による developer.chrome.com の記事 "Progress update on the Privacy Sandbox initiative" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

プライバシー サンドボックスの取り組みは、一連のプライバシー保護 API を提案することで、サードパーティ Cookie などのトラッキング メカニズムのないオープンウェブに貢献するビジネスモデルをサポートします。この取り組みは 2019 年に始まり、Chrome では昨年の 1 月10 月に最新の進捗状況を共有しました。

1 年間のインキュベーション期間を経た 2021 年はテストの 1 年間となり、ウェブのエコシステムが関与する機会が継続的に発生するでしょう。この投稿では、Privacy Sandbox API とその提案の状況について、最新情報をお届けします。

主なユースケースの進捗状況

サイトへの関連広告の表示

サイト運営者や広告主は、広告を含め、関連性が高くユーザーが興味を持つコンテンツを提供したいと考えています。現在のウェブでは、どのようなサイトやページにアクセスしたかを観察することでユーザーの興味を測ることが多く、これにはサードパーティ Cookie やデバイスのフィンガープリンティングなど、透過性が低く好ましくない仕組みが使われます。

3 月の Chrome リリース 89 で、Federated Learning of Cohorts API(FLoC)のオリジン トライアルを開始する予定です。FLoC は、同じような閲覧パターンを持つ人々を大きな集団に分類し、「大勢」の中の個人やブラウザの閲覧履歴を隠すことで、関連性の高いコンテンツや広告をユーザーに届ける新しい仕組みを提案します。現在 Google 広告は、FLoC アルゴリズムのテストから得た最新情報を共有しています。このテストによって、関連性の高い興味ベースの広告を提供するという点で、提案された API がサードパーティ Cookie と同様の効果を持つ可能性があることが示されました。

ファーストパーティ オーディエンスの形成

標準化コミュニティで盛んな議論を呼んだユースケースの 1 つが、どうすれば企業はオーディエンスを形成できるか、そしてどうすれば再マーケティングによって以前のユーザーをウェブサイトに呼び戻せるか、ということでした。昨年には、このユースケースに対応しつつ、他の提案と同じプライバシー保護を提供できる TURTLEDOVE が Chrome に導入されました。ウェブサイトは、入札や広告表示に関する情報を含む Interest Group を保存するようブラウザに依頼します。そして、この Interest Group に基づいて広告購入候補者によるオンデバイス入札が行われることになります。

Chrome の新しい FLEDGE(First "Locally-Executed Decision over Groups" Experiment)提案は、寄せられた多くの提案に含まれる新しいコンセプトを組み込んで TURTLEDOVE を拡張したものです。FLEDGE には、オンデバイス入札アルゴリズムで追加情報を利用する仕組みが含まれています。この追加情報は、この目的に限定して設計された、新しい信頼できるサーバーから提供されます。新しい信頼できるサーバーが利用できるようになる前に初期段階の実験をサポートするため、私たちは "Bring Your Own Server" モデルを提案しています。また、この最初の実験は、2021 年中に行いたいと考えています。

広告の効果の測定

マーケティング担当者が広告キャンペーンを行う場合、各広告を見たユーザー数と、それによって購入や登録などの行動に結びついたのかを理解することが重要です。

2020 年 9 月に、パブリック Chrome オリジン トライアルでテストを行うために、Event Conversion Measurement API を公開しました。これを使うと、マーケティング担当者はサードパーティ Cookie を使わずにコンバージョンを測定できます。ブラウザは、クリックとコンバージョンを記録し、匿名レポートを共有します。このテクノロジーは、将来的に「ビュースルー コンバージョン」(ユーザーが広告を見た後、時間をおいて行動する場合)もサポートする予定です。

マーケティング担当者が特定の広告キャンペーンの対象範囲を理解できるように、2020 年 4 月に Aggregate Measurement API を公開しました。この API は、複数のサイトにわたってユニーク ユーザーが広告を見た回数を測定する場合に役立ちます。
ここでも、個人の特定に利用される可能性があるデータが公開されることはありません。この仕組みは、ある集計しきい値を超えた場合に一度だけデータを報告することで実現します。Aggregate Measurement API は、今年の前半に公開してパブリック オリジン トライアルとしてテストすることを計画しています。

詐欺の防止

サイトやサイト運営者は、実際のユーザーと、スパム作成者や詐欺師、ボットを確実に見分けられなければなりません。昨年 7 月には、Trust Tokens API をテスト用に公開しました。この機能は、詐欺に対抗するため、ユーザーの身元を特定することなくユーザーの正当性を評価します。Chrome 89 では、新しいタイプの Trust Token 発行者をサポートするために、オリジン トライアルを導入します。これにより、ユーザーのプライバシーを守りつつ、モバイル デバイスによる詐欺の検出機能を向上させることができます。

2020 年には、現在のウェブ テクノロジーの安全性も向上しました。Chrome と Edge が SameSite Cookie ポリシーを採用し、近日中に Firefox も採用する予定です。このポリシーにより、デベロッパーがサイト間アクセスを必要とすることを明示しない限り、Cookie はファーストパーティとして扱われます。これは Android の Webview にも導入されており、Android S 以降をターゲットとしたアプリでは、"SameSite=Lax" がデフォルトの扱いとなる予定です。

今月の Chrome 88 リリースの新機能として、このポリシーを強化します。具体的には、接続の安全性のダウングレードを含むいくつかの形態のクロスサイト攻撃を防ぐため、SameSite の定義を変更します。これにより、同じホストのドメインの安全なバージョンと安全でないバージョン(https://site.examplehttp://site.example など)は、お互いにサードパーティと見なされるようになります。

実際のウェブサイトが複数のドメインや国コードドメイン(.com、co.uk、.de など)にまたがる場合があることは認識しています。Chrome 89 では、オリジン トライアルとして First Party Sets を導入する予定です。これにより、ドメイン所有者は関連するウェブドメインのグループが同じ組織に所属するものであることを明示的に宣言できるようになります。この宣言を行うと、対象のドメインはお互いに「同じパーティ」として扱われます。そのため、たとえばショッピング サイトが複数のドメインをまたぐ場合でも、ユーザーはログイン状態を維持できるようになります。トライアルへの登録はこちらから行ってください

隠れたトラッキングの防止

さらに、既存の迷惑なトラッキング技術を防ぎ、問題にならない回避策を提供するため、Chrome の変更も進めています。

  • 今後数週間のうちに、新しい User-Agent Client Hints(UA-CH)API の Chrome 安定版ロールアウトを終える予定です。これは、デフォルトでユーザーのブラウザに関する情報をすべて取得するのではなく、デベロッパーが特定の情報をリクエストできるようにするものです。将来的に Chrome は従来の User-Agent 文字列で提供する情報を制限する予定なので、デベロッパーには UA-CH API への移行を始めることを推奨します。現在の User-Agent 情報は、フィンガープリンティングに使われる可能性があります。

  • 先週、Gnatcatcher を導入しました。これは、ユーザーのグループが同じプライベート化サーバーを通してトラフィックを送信できるようにする提案で、サイトのホストから IP アドレスを効果的に隠蔽します。また、Gnatcatcher は、不正利用の防止などの正当な目的で IP アドレスへのアクセスが必要なサイトには、認証や監査を行った上で、アクセスを保証します。

  • 昨年 10 月にお知らせしたように、ユーザーがキャッシュの仕組みを使ってアクセスしたサイトを別のサイトから確認できる機能は、近日中にクローズする予定です。これによって元のリクエストを行ったサイトのみがキャッシュされたリソースにアクセスできることが保証され、クロスサイト トラッキングや検索攻撃などのセキュリティ攻撃のリスクを減らすことができます。この変更は、3 月の Chrome 89 からすべての Chrome ユーザーにロールアウトされる予定です。

関連情報


Reviewed by Eiji Kitamura - Developer Relations Team

この記事は認定バイヤー デベロッパー リレーションズ、Mark Saniscalchi による Google Ads Developer Blog の記事 "Announcing new Real-time Bidding experiments" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Google は、入札者が ads-privacy 提案をテストして共同でフィードバックを提供できるようにするための試験運用を開始します。この対象となる機能は、ユーザーのプライバシー保護を向上させ、Chrome Privacy Sandbox 提案をテストする仕組みを提供することを目的としています。興味がある入札者の方は、登録して参加することを強くお勧めします。今回(元記事公開当時)リリースされた 3 つの新しい試験運用について、以下で説明します。
試験運用 #1: TURTLEDOVE シミュレーションRTB のプロトコルとインフラストラクチャが更新され、Chrome の TURTLEDOVE 提案をサーバー側でシミュレーションできるようになっています。詳しい説明は、TURTLEDOVE シミュレーション提案をご覧ください。参加を希望する入札者は、TURTLEDOVE RTB Simulation API ガイドを参照すると、この試験運用に関する固有の API やプロトコルの変更点の詳細を確認できます。これらの変更に加えて、Real-time Bidding API に新しい biddingFunctions リソースが追加されています。これは入札機能を管理する API で、サーバー側シミュレーションに利用します。

このシミュレーションの目的は、Chrome で実装される前に Chrome の提案を入札者が試せるようにし、参加する入札者が実現性や効果についてフィードバックを提供できるようにすることです。サーバー側のシミュレーションで使われる API と修正された RTB ワークフローは、のちに Chrome で TURTLEDOVE の実装になる可能性があるものと概念的に同じで、既存の提案と設計に関する公開の議論に基づいています。Google のシミュレーションに関するフィードバックは ads-privacy Issue Tracker に、TURTLEDOVE 提案自体に関するフィードバックは Chrome の TURTLEDOVE Issue Tracker に登録する必要があります。試験運用に関するバグの報告や技術的な質問は、brse-eng-support@google.com サポート エイリアスにご連絡ください。

試験運用 #2: Federated Learning of Cohorts(FLoC)Google は、入札者が Chrome の FLoC 提案の試験運用に参加できるようにする予定です。それには、こちらの Google Research & Ads ホワイトペーパーで説明しているアルゴリズムに基づいて、FLoC コホートをサーバーでシミュレーションする方法を用います。この試験運用を推進するため、Google RTB プロトコルの BidRequestFloc メッセージが追加されています。これは、Google の OpenRTB 実装の User オブジェクトの拡張としても利用できます。メッセージの構造は次のようになっています。


message Floc {
// The value of a cohort ID – a string identifier that is common to a large
// cohort of users with similar browsing habits.
optional string id = 1;
// The type of the FLoC. See
// https://github.com/google/ads-privacy/blob/master/proposals/FLoC/FLOC-Whitepaper-Google.pdf.
enum FlocType {
// Default value that should not be used.
FLOC_TYPE_UNKNOWN = 0;
// FLoC simulated using affinity hierarchical clustering with centroids
// and feature extraction based on Topic categories as described in the
// whitepaper.

SIMULATED_AFFINITY_CLUSTERING_CENTROID_VERTICAL = 2;
// FLoC simulated using SortingLSH clustering algorithm and Domain One-hot
// encoding feature extraction as described in the whitepaper.
SIMULATED_SIMHASH_SORTING_LSH_DOMAIN_ONE_HOT = 3;
// FLoC simulated using a k Random Centers locality-sensitive hash
// function as described in
// https://github.com/google/ads-privacy/blob/master/proposals/FLoC/k-random-centers.md
// with Domain TF-IDF feature extraction as described in the whitepaper.
KCENTER_DOM_FILTERED_TFDIF = 4;
}
optional FlocType type = 2;
}

FLoC シミュレーション試験運用の対象となるのは、ウェブ リクエストのみです。実際には、このメッセージは、試験運用をオプトインした入札者のごく一部の入札リクエストのみに含まれ、それらの入札リクエストには google_user_idhosted_match_data などの仮のユーザー識別子は含まれません。

パーソナライズされた広告をオプトアウトした場合など、プライバシー制御の結果として Floc が設定されることもありません。インプレッションを獲得した場合、入札者は通常どおりにクリエイティブを描画し、Cookie ベースの識別子を使ってコンバージョンの原因を確認できます。そのため、さまざまな FLoC とコンバージョンの相関関係の計測などを行えます。

参加する方には、Issue Tracker を使ってシミュレーションでのコホート アルゴリズムに関するフィードバックを提供することをお勧めします。含めると役立つ指標の 1 つは、試験運用におけるそれぞれの FlocType ごとのコンバージョン率です。可能であれば、通常のトラフィックと比較できるとよいでしょう。通常のトラフィックでは、入札者が Cookie ベースの識別子を利用してターゲティングと最適化を行っている可能性があります。
試験運用 #3: Exchange-Enforced Frequency Capping RTB プロトコルが更新され、Exchange-Enforced Frequency Capping 提案の試験運用が可能になっています。この提案は、入札リクエストで提供されるユーザーの識別子によらずに、1 つの Exchange によって提供されるインベントリについて頻度の上限を設けるという重要なユースケースをサポートします。Google RTB プロトコルの BidResponseFrequencyCap メッセージが追加されています。このメッセージは、Google の OpenRTB 実装の Bid オブジェクトの拡張としても利用できます。メッセージの構造は次のようになっています。


  message FrequencyCap {
// An ID that can represent a bidder's use-case for frequency capping; for
// example, it could represent their campaign, ad, line item, etc. It should
// not contain any user-specific information or identifiers.
optional string fcap_id = 1;

// The time units for which frequency caps can be enforced.
enum TimeUnit {
UNKNOWN_TIME_UNIT = 0;
MINUTE = 1;
DAY = 2;
WEEK = 3;
MONTH = 4;
// When INDEFINITE is used, time_range will be ignored. INDEFINITE means
// the frequency cap will be applied for a long period of time, (longer
// than a month) but not necessarily forever.
INDEFINITE = 5;
}

// The unit of time used to specify the time window for which a frequency
// cap applies.
optional TimeUnit time_unit = 2;

// The length of the time window, in units specified by time_unit, for which
// the frequency cap applies. For instance, if time_unit=WEEK and
// time_range=3, then capping is applied for a three week period. If the
// time_unit=INDEFINITE, this will be ignored.
optional int32 time_range = 3 [default = 1];

// The maximum number of impressions allowed to be shown to a user for
// the provided frequency_cap_id within the time window described by
// time_unit and time_range.
optional int32 max_imp = 4;
}


この試験運用に関する追加情報は、提案の中に記載されています。参加する方には、Issue Tracker を使ってフィードバックを提供することをお勧めします。



Reviewed by Eiji Kitamura - Developer Relations Team

この記事は Nadine Wang による Google Ads Developer Blog の記事 "Announcing v6 of the Google Ads API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
 本日は、Google Ads API の v6 リリースをお知らせします。v6 の機能を使うには、クライアント ライブラリとクライアントのコードをアップデートする必要があります。更新版のクライアント ライブラリとコードサンプルも、公開されました。互換性を伴わない変更の詳細については、移行ガイドをご覧ください。

主な機能は以下のとおりです。
  • API が変更履歴に対応します。どのインターフェースを誰が変更したかなど、ChangeEvent に対応した Google 広告 UI と同様の情報が提供されます。
  • Google 広告アカウントでユーザー アクセスを管理できるようになります。
  • 検索も含め、ポートフォリオ入札戦略としてコンバージョン値の最大化とコンバージョン数の最大化が利用できるようになります。
  • 新しい Customer.optimization_score_weight を使って、クライアント センター(MCC)アカウント全体の最適化スコアを計算できるようになります。
  • CombinedAudienceCustomAudience を含む新しいオーディエンスの種類を利用できるようになります。
さらに詳しく知りたい方へ
以下のリソースが役立ちます。
ご質問やさらにサポートが必要なことがありましたら、フォーラムからご連絡ください。


この記事は Adam Ohren による Google Ads Developer Blog の記事 "Target Spend Migration for Maximize Clicks Bid Strategies" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


2021 年 1 月 18 日より、サポートが終了した target_spend 設定を使用し続けている「クリック数の最大化」入札戦略の移行が開始され、1 日のキャンペーン予算ペースが使われるようになります。これは、昨年の「クリック数の最大化」での target_spend フィールドのサポート終了に伴うものです。サポートが終了すると、ユーザーは Google 広告で、target_spend 設定を持つ「クリック数の最大化」戦略を新しく作成できなくなります。

変更事項

この変更によって発生する可能性があるパフォーマンスへの影響を最小限に抑えるため、今回の移行の一環として、target_spend 設定を使い続けている「クリック数の最大化」入札戦略の上限クリック単価が減少する可能性があります。これにより、以下の API フィールドが影響を受けます。

2021 年 1 月 18 日の移行の一環として値が減少する可能性があるフィールド:
AdWords API Google Ads API
TargetSpendBiddingScheme.bidCeiling TargetSpend.cpc_bid_ceiling_micros

対応方法

2021 年 1 月 18 日までにキャンペーンの入札戦略から目標予算の設定を削除することにより、上記の変更を回避できます。これを行うには、存在するすべての「クリック数の最大化」入札戦略で以下のフィールドの設定を解除(値を 0 に設定)します。

移行を回避するために設定を解除(0 に設定)するフィールド:
AdWords API Google Ads API
TargetSpendBiddingScheme.spendTarget TargetSpend.spend_target_micros

ご質問やさらにサポートが必要なことがありましたら、フォーラムまたは googleadsapi-support@google.com にご連絡ください。

 



Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Nadine Wang による Google Ads Developer Blog の記事 "Announcing the Google Ads API is out of beta" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 


 Google Ads API が一般公開版になったことをお知らせします。これにより、以前のパフォーマンスの問題がすべて解消され、本番環境のアプリケーションで安心して Google Ads API を使えるようになります。バッチ処理を誰でも利用できるようになりました。

AdWords API のサポートも継続されます。サポートの終了予定については、あらためてお知らせします。AdWords API と完全に同じ機能を利用できるようにするため、今後のリリースでさらに機能追加を続ける予定です。

さらに詳しく知りたい方へ
まずは、以下のリソースをご覧ください。 ご質問やさらにサポートが必要なことがありましたら、フォーラムまたは googleadsapi-support@google.com にご連絡ください。

 

この記事は Fei Xiang による Google Ads Developer Blog の記事 "Conversion Category Changes in AdWords API, Google Ads API, and Google Ads scripts" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 


 2020 年 5 月より、Google 広告アカウントにログインすると、コンバージョン アクションごとに新しいコンバージョン カテゴリにアップグレードすることを求められる場合があります。更新されたコンバージョン カテゴリを活用すると、ビジネスにとって重要な意味を持つコンバージョン アクションをさらにきめ細かく分類できます。詳細については、こちらの Google 広告ヘルプセンターの記事をご覧ください。

上記の候補の承認が完了していない場合、2020 年 10 月 15 日より自動的に適用されます。Google Ads API、AdWords API、Google 広告スクリプトのユーザーには、次の変更が適用されます。

Google Ads API をご利用の場合は、ConversionActionCategoryEnum で新しいコンバージョン カテゴリが既に利用できる状態になっています。その他に必要な対応はありません。

AdWords API をご利用の場合は、新しいバージョンの AdWords API はリリースされないため、新しいコンバージョン カテゴリタイプは既存の ConversionTracker.Category 列挙型値に変換されます。変換は、以下のマッピングに基づいて行われます。

新しいコンバージョン カテゴリ ConversionTracker.Category
カートに追加 LEAD
決済手続きの開始 LEAD
購入 PURCHASE
サブスクライブ(有償) PURCHASE
サブスクライブ(無償) SIGNUP
通話リード LEAD
オフライン リード LEAD
リードフォームの送信 LEAD
予約 LEAD
見積もり依頼 LEAD
経路検索 LEAD
離脱のクリック LEAD
連絡先 LEAD
ダウンロード DOWNLOAD
重要なページの表示 PAGE_VIEW
エンゲージメント DEFAULT
来店DEFAULT
店舗での販売PURCHASE
その他 DEFAULT


そのため、AdWords API を使って(レポートやサービス経由で)コンバージョン カテゴリタイプを取得している場合は、依然として上記のマッピングに基づいて既存のコンバージョン カテゴリタイプが返され続けます。これらは、Google 広告の UI で使われる移行された新しいタイプとは異なります。

AdWords API ユーザーは、今後も既存のカテゴリタイプを使ってコンバージョン アクションを作成できます。AdWords API は、機械学習モデルに基づいて作成されたコンバージョンを新しいカテゴリタイプに自動変換します。コンバージョン アクションにカテゴリタイプを設定するコードのサンプルは、AdWords API デベロッパー サイトに掲載されています。

Google 広告スクリプトをお使いの場合は、レポート フィールド ConversionCategoryName を選択またはフィルタする際に、上記の表のマッピングに基づいて AdWords API で使われるものと同じ既存のカテゴリタイプが表示されます。

ご質問やさらにサポートが必要なことがありましたら、フォーラムからご連絡ください。
- Google Ads API チーム、Fei Xiang 

この記事は Thanet Knack Praneenararat による Google Ads Developer Blog の記事 "Google Ads API v2 sunset reminder" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 


 Google Ads API ベータ版 v2 は、2020 年 10 月 21 日に提供を終了します。それ以降、v2 API へのすべてのリクエストは失敗します。API アクセスに影響がないように、必ず 2020 年 10 月 21 日までに新バージョンに移行してください。

移行に役立つさまざまなリソースを準備しています。

アップグレードの際に疑問に思うことがありましたら、フォーラムまたは googleadsapi-support@google.com にご連絡ください。


 

この記事は Adam Ohren による Google Ads Developer Blog の記事 "Changes to campaign_bid_modifier reporting in the Google Ads API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

2020 年 9 月 1 日より、Google Ads API でキャンペーンレベルの単価調整比のレポート方法が変更され、API の結果と Google 広告 UI の一貫性が増します。

現在、Google Ads Query Language を使った campaign_bid_modifier リソースへのクエリでは、以下の条件のどちらかを満たす行のみが返されます。
  1. ゼロでない単価調整比が設定されている
  2. 行に関連付けられた criterion_idCALLS インタラクション タイプの指標が存在する
この変更が実施されると、campaign_bid_modifier リソースへのクエリは、 すべての キャンペーンについて行が返されるようになり、ユーザーが Google 広告 UI の [Advanced bid adj.] > [Interactions] 画面で確認できる内容に近くなります。

campaign_bid_modifier レポートにこれまでと同様の制限をかけたいユーザーは、クエリに “WHERE campaign_bid_modifier.bid_modifier != 1.0”(値 1.0 は単価調整 ±0% と同義)などの条件を追加することで、単価調整比がゼロ以外の行をレポートするように制限できます。

今回の変更は、AdWords API の動作には影響しません。

この変更に関する質問がある方は、フォーラムからご連絡ください。

Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Nadine Wang による Google Ads Developer Blog の記事 "Updates to the AdWords API and Google Ads API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

さまざまなコミュニティが新型コロナウイルス感染症(COVID-19)に対応する中で、すべての人がそれぞれの課題と向き合っていることを私たちは承知しています。この困難な時期を乗り切り、計画を立てる際に役立つアップデートとリソースについて、以下に説明します。

API にはどのような影響がありますか

皆さんは、生活のさまざまな側面で調整に追われていることと思います。そこで、次のような形でサポートします。
  • Google Ads API v1 のサービス終了を延期: Google Ads API v1 のサービス終了を 2020 年 7 月 29 日まで延期します。AdWords API は、今後も本番環境で利用できます。
  • 追加の時間を提供: AdWords API や Google Ads API のコードのアップデートが必要になる新規変更は、追加の時間を提供するか、延期します。
皆さんに新機能をお届けするため、Google Ads API の新バージョンのリリースは継続されます。

どんなカスタマー リソースがありますか
Google 広告は、企業やお客様に以下のリソースを提供しています。
どこでサポートを受けることができますか

Google 広告ヘルプセンターは、API に関連しないサポートに遅れが出ていることを発表しました。これには、デベロッパー トークンの承認や変更も含まれます。

API の質問やサポートが必要なことがありましたら、googleadsapi-support@google.com または Google Ads API および AdWords API フォーラムにご連絡ください。

Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Thanet Knack Praneenararat による Google Ads Developer Blog の記事 "Changing statuses of app and app engagement ads that do not serve" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 


2020 年 4 月 17 日に、提供しないアプリ広告アプリ エンゲージメント広告のステータスが ENABLED から DISABLED に自動変更されました。アプリ キャンペーン内の各広告グループについて、 最初に作成された広告 のみを提供できるので、混乱を避けるために同じ広告グループのその他の広告を無効化します。これにより、クエリ条件に Google Ads API の ad_group_ad.status または AdWords API の AdGroupAdStatus が含まれている場合、レポートの行数が変わる可能性があります。

行うべきこと
広告が無効化されても構わない場合は、特に何かをする必要はありません。クエリで返されるレポートの行数が変わる可能性がある点にだけご注意ください。たとえば、クエリに有効な広告だけを取得する条件が含まれている場合、レポートの行数が少なくなるかもしれません。

無効な広告のパフォーマンス データも確認したい場合は、レポートのクエリに無効な広告も含めるようにしてください。なお、無効な広告は提供されないので、前述の日付以降にパフォーマンス統計が発生することはありません。

レポートについてさらに詳しく知りたい方は、以下のリンクを確認してください。
Google Ads API の場合は、以下をご覧ください。
AdWords API の場合は、以下をご覧ください。
いつものように、質問がある方は遠慮なく AdWords API および Google Ads API フォーラムにご連絡ください。

Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Nadine Wang による Google Ads Developer Blog の記事 "Google Ads API beta v1 sunset reminder" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google Ads API ベータ版 v1 は、2020 年 7 月 29 日に提供が終了する予定です。それ以降、v1 API へのすべてのリクエストは失敗します。API アクセスに影響がないように、必ず 2020 年 7 月 29 日までに新バージョンに移行してください。

移行に役立つさまざまなリソースを準備しています。
アップグレードの際に疑問に思うことがありましたら、フォーラムまたは googleadsapi-support@google.com にご連絡ください。



Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Nadine Wang による Google Ads Developer Blog の記事 "Entity IDs as 64-bit in AdWords API, Google Ads API beta, Google Ads scripts, and Content API for Shopping" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

AdWords APIGoogle Ads API ベータ版Google 広告スクリプトContent API for Shopping のすべてのエンティティ ID は 64 ビット符号付き整数です。具体的には、以下の型です。
  • AdWords API では xsd:long
  • Google Ads API では INT64
  • Google 広告スクリプトでは number または string
  • Content API for Shopping では、REST で string、クライアント ライブラリで INT64
この API を組み込むアプリケーションは、この範囲の ID 値を扱う必要があります。

これまで、以下の ID は 32 ビット符号付き整数の最大値の範囲内に収まっていましたが、まもなくこの範囲を超える見込みです。ここ数年間の皆さんの生産性の高さにより、一意の ID を持つエンティティをさらに作成するには、64 ビット符号付き整数が確実に利用できなければならなくなっています。この件は、2019 年 7 月に初めてお知らせしました。問題が起こらないように、アプリケーションが 64 ビット符号付き整数値の範囲の ID を扱えることを確認してください。また、ここに記載されていない他のエンティティ ID についても、アプリケーションが 64 ビット符号付き整数をサポートできることを確認してください。

AdWords API と Google Ads API ベータ版で影響を受ける ID
AdWords API Google Ads API ベータ版
入札戦略 BiddingStrategyConfiguration.bidding_strategy_id

BiddingStrategyId(複数レポート)
BiddingStrategy.id
予算 BudgetOrder.id AccountBudget.id

BillingSetup.id
ユーザーリスト UserList.id

CriterionUserList.userListId

CLICK_PERFORMANCE_REPORT.UserListId

AUDIENCE_PERFORMANCE_REPORT.Id
UserList.id
ショッピング キャンペーン ServiceLink.serviceLinkId

ShoppingSetting.merchantId

SHOPPING_PERFORMANCE_REPORT.MerchantId

SHOPPING_PERFORMANCE_REPORT.AggregatorId
MerchantCenterLink.id

ShoppingSetting.merchant_id

segments.product_merchant_id

segments.product_aggregator_id
コンバージョン アクション ConversionTracker.id

ConversionTrackerId(複数レポート)

ConversionTracker.originalConversionTypeId
ConversionAction.id
アカウント コンバージョン トラッキング構成 ConversionTrackingSettings.effectiveConversionTrackingId ConversionTrackingSetting.conversion_tracking_id

ConversionTrackingSetting. cross_account_conversion_tracking_id




Google 広告スクリプトで影響を受ける ID
JavaScript で正確に表現できる整数は最大 53 ビットまでです。今後 ID の数が大きくなることによって発生する可能性があるエラーを避けるため、Google 広告スクリプトではすべての ID を string として扱うことを強く推奨します。
Google 広告スクリプト
入札戦略 AdsApp.BiddingStrategy.getId()
予算 AdsApp.BillingAccount.getId()

AdsApp.BudgetOrder.getId()
ユーザーリスト AdsApp.Audience.getId()

AdsApp.ExcludedAudience.getId()

AdsApp.UserList.getId()

AdsApp.​ShoppingCampaignAudience.getAudienceId()

AdsApp.ShoppingCampaignAudienceBuilder.withAudienceId()

AdsApp.ShoppingCampaignAudienceSelector.withIds()

すべての Targeting -> Audience Search メソッドの getAudienceId()withAudienceId()



Content API for Shopping で影響を受ける ID
すべての ID は、REST では string、クライアント ライブラリでは INT64 として返されます。アプリケーションで ID を数値に変換する場合は、アプリケーションが 64 ビット符号付き整数を扱えることを確認してください。この例として、クライアント ライブラリの構成や REST URL で設定する販売者 ID があげられます。
Content API for Shopping
Merchant Center AccountIdentifier.merchantId

Order.merchantId

OrdersCustomBatchRequestEntry.merchantId

RegionalinventoryCustomBatchRequestEntry.merchantId

ProductsCustomBatchRequestEntry.merchantId

ProductstatusesCustomBatchRequestEntry.merchantId

AccountsCustomBatchRequestEntry.merchantId

OrderReportDisbursement.merchantId

OrderReportTransaction.merchantId

LocalinventoryCustomBatchRequestEntry.merchantId

ReturnpolicyCustomBatchRequestEntry.merchantId
ショッピング キャンペーン AccountIdentifier.aggregatorId



どこでサポートを受けることができますか

API に関する質問やサポートが必要なことがございましたら、以下からご連絡ください。


Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team