

# Google 広告のクリエイティブを書き出し、出典の証拠を保存する方法

公開されているGoogle 広告のクリエイティブを出典の記録とともに保存するには、広告主ID、クリエイティブID、出典ページ、メディアやプレビューへのポインター、公開されている日付、収集時刻を保持する必要があります。リンクを保存したライブラリに残るのは、証拠の記録とポインターです。外部のメディアが永続的なファイルとして保存されるわけではありません。広告クリエイティブとは、公開されている1件の広告であり、キャンペーンではありません。観測記録とは、収集時点の広告クリエイティブについて、日時とともに残した1件の記録です。ポインターとは、リソースへのリンクです。マニフェストとは、収集設定と収集結果の概要をまとめたファイルです。

ドメイン検索では、複数の異なる広告主アカウントが一致する場合があります。[広告主を確認](/ja/articles/%E7%AB%B6%E5%90%88%E5%BA%83%E5%91%8A%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E4%BD%9C%E6%88%90%E5%89%8D%E3%81%AE%E5%BA%83%E5%91%8A%E4%B8%BB%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E7%A2%BA%E8%AA%8D/)し、不明な値は不明なまま保持してください。後日リンクにアクセスできなくなっても、Googleがその広告を削除した証拠にはなりません。

## 用語の定義

- 広告クリエイティブ：公開されている1件の広告です。キャンペーンではありません。
- 広告主ID：Googleが広告主のアカウントを識別するためのIDです。
- クリエイティブID：Googleが広告主の配下にある広告クリエイティブを識別するためのIDです。
- 観測記録：収集時点の広告クリエイティブの記録です。
- ポインター：外部のメディアやプレビューのリソースへのリンクです。
- マニフェスト：収集設定と収集結果の概要をまとめたファイルです。
- バリエーション：1件の広告クリエイティブ記録に含まれるメディアまたはプレビューの項目です。必ずしも個別の広告テストを意味するものではありません。
- プレビュー：広告クリエイティブを表示するために使う、出典側のリソースです。レンダリングが必要な場合があり、常にダウンロード可能なファイルとは限りません。
- Actor：ホスティング環境で動作するデータ収集プログラムです。
- 公開Task：保存され、公開されているActorの設定です。
- **`null`**：使用できる値がないことを示します。ゼロではありません。

## 収集設定と対象範囲

広告クリエイティブのデータを収集するには、公開されている[Google Ads Transparency Scraper](https://apify.com/chronometrica/google-ads-transparency-scraper)などのActorを設定します。このActorには、名前、ドメイン、ID、広告主URL、広告クリエイティブURLを、対象として1〜100件指定できます。`maxItems`は1〜5,000の範囲で設定でき、既定値は全対象で合計10件です。

公開Taskの既定設定は、対象が`nike.com`、地域が`ANYWHERE`、プラットフォームが`ALL`、広告形式が`ALL`、配信詳細の取得がオフ、取得上限が20件です。[Google 広告クリエイティブのライブラリ書き出し | 広告データ](https://apify.com/chronometrica/google-ads-transparency-scraper/examples/google-ads-creative-library-export)。ドメイン検索では複数の広告主アカウントが一致する場合があるため、特定の1アカウントを調べるときは、確認済みの正確な広告主IDまたはURLを使う必要があります。ドメイン検索を使うのは、収集後にアカウントを確認し、分ける予定がある場合だけにしてください。収集上限を小さくし、調査で配信メタデータが特に必要な場合を除いて、配信詳細の取得はオフにしてください。任意の日付フィルターには、今日までの実在する日付を指定できます。収集上限は件数の制限であり、広告履歴全体を表すものではないことに注意してください。

## フィールドの対応関係とデータの限界

保存される各行には、出典プラットフォームの特定のデータフィールドが対応します。`advertiserId`と`creativeId`の組み合わせによって、広告クリエイティブを一意に識別できます。ブランド名だけでアカウントを識別してはいけません。`creativeUrl`は、公開されている出典の詳細ページを指します。`mediaUrl`と`previewUrl`は、どちらも外部の出典へのポインターであり、`null`が返る場合があります。また、プレビューはファイルそのものではなく、JavaScriptリソースの場合があります。`variations`リストと`variationCount`は、入れ子になった子アセットのURLや寸法を記録します。ただし、これらの子アセットは、独立したキャンペーンのバリエーションではありません。

`firstShownAt`と`lastShownAt`には、取得できる場合に、公開されている広告表示日が入ります。ただし、継続的な配信を保証するものではなく、収集時刻を示すものでもありません。`approxDaysShown`は出典側の概算値です。正確な連続配信日数、広告費、キャンペーンの成功を示す値として扱ってはいけません。`observedAt`のタイムスタンプは、Actorがその記録を収集した時刻を示します。リクエストした地域、プラットフォーム、広告形式のフィールドは収集条件を示すものであり、広告が配信された場所の完全な一覧ではありません。`status`と`statusReason`は行の品質を示します。`ok`は収集の成功を意味し、`partial`は広告形式が欠けていることを意味する場合があります。任意の支払者フィールドは、値が存在しない場合や取得をオフにしている場合があります。また、支払者が広告主と同じとは限りません。さらに、Googleの出典リポジトリでは、このActorが返さない地域固有のフィールドが公開される場合があります。[Google 広告の透明性に関するヘルプ](https://support.google.com/adspolicy/answer/13733850?hl=en-CA)。

## 観測記録のキーと自分で作成するマニフェスト

広告主IDとクリエイティブIDは、組み合わせて扱う必要があります。同じクリエイティブIDでも、異なる2つの広告主に属していれば、別々の広告クリエイティブを表すためです。Actorは、1回の実行内でのみ、この組み合わせの重複を除きます。後の実行では、新しい観測記録として保持します。Actorの行には実行IDが含まれないため、利用者側でフィールドを作成する必要があります。

収集結果をバッチ単位でまとめるために、利用者側で`collection_batch_id`を作成してください。実際の実行ID、ビルドバージョン、データセットの識別情報、収集設定、収集時刻、実行結果の概要は、別途、自分で作成する収集マニフェストに保持します。観測記録のキーには、バッチID、広告主ID、クリエイティブIDの組み合わせを推奨します。内部用の実行証跡は、最終的な証拠レポートとは分けて保存してください。

## JSONによるデータ保存とバリエーション

JSONは、構造化された階層を保持できるテキスト形式のデータです。完全なJSONファイルでは、入れ子になったバリエーションを保持できます。一方、CSVへの書き出しは、必要に応じて使う平坦な表形式の表示にすぎません。1つの親観測行には、子となるバリエーションの行を入れ子で含められます。ただし、その子バリエーションは、別個の広告クリエイティブのテストやキャンペーンのテストではありません。`null`は常にそのまま保持し、ゼロや作り出したデータに置き換えないでください。表示用ライブラリは元データから作成するビューなので、その基となる元の観測記録ファイルを必ず保持する必要があります。

## 収集から保存までの全手順

1. 対象範囲、地域、公開日付の対象期間、取得件数の上限を設定します。特定の1アカウントを調べる場合は、確認済みの正確な広告主IDまたはURLを使ってください。ドメイン検索は、収集後に確認する場合に限って使います。必要な場合を除いて、配信詳細の取得はオフにしてください。
2. 公開Taskの[Google 広告クリエイティブのライブラリ書き出し | 広告データ](https://apify.com/chronometrica/google-ads-transparency-scraper/examples/google-ads-creative-library-export)の設定を使って、Actorの[Google Ads Transparency Scraper](https://apify.com/chronometrica/google-ads-transparency-scraper)を実行します。
3. 自分で作成するマニフェストに収集設定を記録します。実行ID、ビルドバージョン、データセットの識別情報、収集設定、収集時刻、実行結果の概要は、公開する証拠レポートとは分けて保存してください。
4. OUTPUTの概要フィールドを確認します。これには、`creativesSaved`、`duplicatesSkipped`、`unusableCreativesSkipped`、`stopReason`、`targetOutcomes`が含まれます。一部の項目が欠けた記録、収集に失敗した対象、結果がゼロ件の対象、上限到達による停止を区別してください。出力データセットが空の場合や件数が少ない場合でも、広告主が広告を配信していなかった証拠にはならないことに注意してください。
5. 次の受け入れ基準を厳密に適用します。識別済みの観測記録として扱うには、`advertiserId`、`creativeId`、`creativeUrl`、`observedAt`が空欄でないことを必須とします。`status`と`statusReason`を確認してください。`mediaUrl`や`previewUrl`に欠損を明示する値がある場合は、そのまま保持します。`null`をゼロに変えたり、リンクを作り出したりしてはいけません。識別情報が欠けた行は、空欄同士をまとめず、別の確認用ファイルに隔離してください。
6. Actorのフィールドとは別に、利用者側で列を作成します。自分で作成した`collection_batch_id`を割り当て、バッチID、広告主ID、クリエイティブIDを組み合わせて観測記録のキーを作ります。
7. 入れ子になったバリエーションを保持するため、観測記録を完全なJSONファイルとして保存します。子バリエーションの記録は親の観測行の下に保持し、子アセットを独立した広告クリエイティブのテストやキャンペーンのテストとして数えないでください。
8. 収集とは独立してリンクを確認し、確認時刻、ポインターの種類、確認方法、結果を別途記録します。新しいポインターを取得しても以前のポインターを保持し、外部リンクが利用できなくなっても観測記録を残してください。
9. 後の収集バッチは、以前の観測記録ファイルを置き換えずに追加します。元データから作成した最新状態の表示とともに、過去の記録も保持してください。
10. 完成した出典ライブラリ、収集マニフェスト、日時付きのリンク確認記録、元データから作成した最新ビューを、レポート作成工程へ渡します。出典を再び見つけるには、元の広告主IDとクリエイティブIDの組み合わせを使います。この手順は、広告クリエイティブの採点やキャンペーンの提案に進む前に終了します。

## 独立したリンク確認とHTTP HEADリクエスト

親の識別情報とバッチ、ポインターの種類、確認時刻、確認方法、結果を含むリンク確認記録を、別途作成します。HTTP HEADリクエストは、ファイルの内容ではなく、レスポンスヘッダーだけをサーバーに要求します。レンダリングとは、ブラウザー内でプレビューを正常に表示することです。HTTPレスポンスコードの200は、その確認時点でリソースが応答したことを示します。ただし、`image/png`の応答と`application/javascript`の応答は異なります。

これらの応答はいずれも、画像が実際に表示されたこと、ファイルが永続的に保存されたこと、再利用する権利、継続的な利用可能性を証明するものではありません。2026年10月13日の小規模なメタデータ確認では、2つのアカウントから`ok`の観測記録を2件保存しました。ただし、ヘッダーの確認で証明できたのは、その日時に応答があったことだけです。繰り返し収集した履歴や、対象を完全に網羅していることは証明していません。アセットのダウンロードとプレビューのレンダリングは、この出典リンクを保存する方法の対象外です。

## 後続バッチの追加と利用できないポインターへの対応

後続バッチは、以前の観測記録ファイルを置き換えずに追加します。現在の状態を示す画面では、識別情報の組み合わせごとに最新の観測記録を表示できます。ただし、過去の記録へのリンクを必ず設けてください。古いポインターにアクセスできない場合は、出典の記録を保持し、確認に失敗したことを記録します。必要であれば、後日、許可された確認作業の際に公開の出典ページを調べてください。1つのポインターにアクセスできないことや、取得件数に上限のある収集で観測記録が得られないことは、広告が削除された証拠にはなりません。URLを推測したり、削除された広告の復元を試みたりしてはいけません。繰り返し実行するテストや長期テストは行っていないため、この例で学べるのは記録を保持する際の考え方だけです。

## 架空の例と件数の分析

この例の記録とIDはすべて架空のものです。A/B/C1/C2は説明用のラベルであり、実際の出典を使った検証用の小さなテストデータではありません。メディアファイルはダウンロードしません。

| バッチ | 広告主 | 広告クリエイティブ | バリエーション数 | リンクの状況 |
| --- | --- | --- | --- | --- |
| S1 | A | C1 | 2 | 架空の確認日時である2026年10月1日 12:05 UTC時点で、メディアへのポインターが利用可能 |
| S1 | A | C2 | 1 | その確認時点で、プレビューへのポインターが利用可能 |
| S1 | B | C1 | 1 | その確認時点で、メディアへのポインターが利用可能 |
| S2 | A | C1 | 1 | 架空の確認日時である2026年10月2日 12:05 UTC時点で、新しいポインターが利用可能。S1のポインターも保持 |
| S2 | A | C2 | 1 | 後の確認時点で、ポインターは利用不可。観測記録は保持 |

この収集で得られる観測記録は5行です。バッチS1の3行とバッチS2の2行を足して計算します（3 + 2 = 5）。重複を除いた広告クリエイティブの識別情報の組み合わせは、A:C1、A:C2、B:C1の3つです。保持した全行のバリエーション数を合計すると、バリエーションの観測記録は6件になります。計算は、2に1、1、1、1を足したものです（2 + 1 + 1 + 1 + 1 = 6）。これらのバリエーションの観測記録は、親記録に含まれる子アセットです。重複のない6件の広告クリエイティブや、個別の広告テストを表すものではありません。

識別情報ごとに最新の記録を表示するビューには、重複のない3つの識別情報に対応する3行が含まれます。その内訳は、利用可能だったことを日時とともに記録したリンク確認が2件と、利用不可だった確認が1件です。広告主BのC1は、引き続きS1の観測記録で表されます。バッチS2に含まれないことは、広告が削除された証拠にはなりません。5件すべての観測記録をライブラリに保持する必要があります。このように記録を保持することで、証拠の記録とポインターを残せます。ただし、完全な広告履歴、メディアファイルの永続的な保存、広告の成功、実環境で繰り返し実行したテストの結果を主張するものではありません。

公開されているからといって、一般的な再利用の許可が与えられるわけではありません。[Google 利用規約：その他のコンテンツ](https://policies.google.com/terms?hl=en)。この方法で保持するのは、出典の記録とポインターです。アセットのダウンロードや再公開は、この出典リンクを扱う手順の対象外です。

## Actorで次に行うとよいこと

[Google Ads Transparency Scraper](https://apify.com/chronometrica/google-ads-transparency-scraper)を開き、公開されているライブラリ用Taskをコピーしてください。広告主の識別情報を選び、上限を小さくして、識別済みの観測記録をマニフェストとともに保存します。競合レポートに使う前に、内容を確認してください。

## 出典と参考資料

- [Google Ads Transparency Scraper](https://apify.com/chronometrica/google-ads-transparency-scraper)
- [Google 広告クリエイティブのライブラリ書き出し | 広告データ](https://apify.com/chronometrica/google-ads-transparency-scraper/examples/google-ads-creative-library-export)
- [Google 広告の透明性に関するヘルプ](https://support.google.com/adspolicy/answer/13733850?hl=en-CA)
- [Google 利用規約：その他のコンテンツ](https://policies.google.com/terms?hl=en)