APIが賭け金を教えてくれます
Google自身の開発者ドキュメントは率直です。"If the contact information is not correctly formatted before hashing, the API still accepts the hashed information, but it can't be matched with a customer." エラーも警告もなく、ただ誰ともマッチしないリストが静かにできあがります。ですから以下の手順はほとんどが書式の話で、ハッシュ化は終盤の1ステップにすぎません。
ステップ1 – 識別子は1列に1つ、まずプレーンテキストで
識別子ごとに独立した列を持たせてシートを組みます――メールアドレス、電話番号、氏名の各項目、必要に応じて国と郵便番号。そして電話番号と郵便番号の列は貼り付ける前にプレーンテキストにしてください(表示形式 → 数字 → プレーンテキスト)。さもないと、先頭のゼロと長い番号は届いた瞬間に無音で壊されます。
ステップ2 – Googleが明記するルールに従って正規化する
ハッシュ化する項目について、Googleのファイル形式ドキュメントは具体的です。
- すべて小文字にし、前後の空白を除去する。
- メールアドレス、Gmail限定のルール:
gmail.comとgooglemail.comのアドレスについては、ユーザー名部分のピリオドと+以降をすべて削除します――Jane.Doe+Shopping@googlemail.comはjanedoe@googlemail.comになります。この2つのドメインについてのみ明記されたルールです。他のドメインに適用しないでください。 - 電話番号: E.164――"Include the country code and '+' sign." 完全な書式設定の手順はE.164ガイドにあります。短く言えば、数字のみ、国番号、先頭に
+です。
ステップ3 – 自分でハッシュ化するか、Googleに任せるか
明記された経路は2つあります。
- 平文でアップロードし、Google側がマッチング前にハッシュ化する。
- 自分でハッシュ化する――SHA-256、16進出力(Googleの表現では "Use hex SHA256")――こうすれば生の顧客データが読める形でシートを出ることはありません。コンプライアンスを重視するチームが取る経路であり、この作業がそもそもGoogle スプレッドシート上に存在する理由でもあります。Google スプレッドシートには組み込みのハッシュ関数がないため、ハッシュ化の工程にはApps Scriptかアドオンが必要です。
ステップ4 – アップロード前に検証する
無音の失敗のほとんどを捕まえる、10秒の確認が2つあります。
- 長さの確認: SHA-256の16進ダイジェストはちょうど64文字――
=LEN(B2)=64が切り詰めと二重ハッシュ化を一度に洗い出します。 - 抜き取り確認: 手で正規化した値を1つハッシュ化し、入力の大文字小文字を変えたときにダイジェストが変わることを確かめます。
John@とjohn@が同じダイジェストになるなら、どこか手前でデータが前処理されています。
ステップ5 – アップロードして、期待値を設定する
ファイルをGoogle Adsの顧客リストにアップロードします。処理は即時ではありませんし、マッチしたサイズは行数より小さくなります――マッチングはログイン中のGoogleアカウントに対して行われ、書式の丁寧さではそこは変わりません。書式の丁寧さが変えるのは、本来マッチしうる行が実際にマッチするかどうかです。数字がおかしく見えるなら、マッチ率のトラブルシューティングガイドが原因を診断順にたどります。
Hash Dataの位置づけ
Hash Dataはハッシュ化の工程をシートの中に置きます。複数のアルゴリズムを数式として提供し、=HASHPHONE() は番号をE.164に正規化して1ステップでハッシュ化します――上記でもっとも間違えやすい2つの工程が、1つにまとまります。
出典
- Google Adsヘルプ – 顧客データファイルの形式を設定する – 2026年8月20日閲覧
- Google Ads API – Get started with Customer Match – 2026年8月20日閲覧
- Google スプレッドシートの関数リスト – 2026年8月20日閲覧