この記事は7分で読むことができます。
記事サマリー
この記事を読んでわかること
-
- メールアドレスをハッシュ化する理由とその方法
- ExcelVBAを使用してハッシュ化を行う具体的な手順
こんな方へオススメの記事
-
- デジタルマーケティングや広告運用に携わる方
- 顧客データの安全な取り扱いに関心のある事業者
この記事を実践するための準備
-
- ExcelがインストールされているデスクトップPC
- Google広告などのカスタマーマッチを利用する広告プラットフォームのアカウント
カスタマーマッチとは!?
カスタマーマッチとは、Google広告などデジタルマーケティングの分野で使用される手法です。この手法では、広告主が保有する顧客データ(メールアドレスや電話番号など)を、広告プラットフォームが持つユーザーデータと照合し、より精確なターゲティング広告を配信したり、デバイスやブラウザを跨いだ精緻な計測をすることができます。
参照:カスタマーマッチについて
メールアドレスや電話番号のハッシュ化とは?
ハッシュ化とは、元のデータを固定長の文字列に変換する暗号化の一種です。カスタマーマッチにおいて、個人情報保護のためにメールアドレスや電話番号をハッシュ化します。以下の特徴があります。
- 一方向の変換(元のデータに戻せない)
- 同じ入力に対して常に同じ出力
- 小さな変更でも大きく異なる出力
- 一般的に広告で使用されるハッシュアルゴリズムはSHA-256
ExcelVBAでマクロを作ってみる
個人情報の取り扱いには細心の注意が必要です。オンラインのハッシュ化ツールも存在しますが、セキュリティ上の懸念から、多くの企業や個人がこれらのツールの使用を避けています。そこで、ExcelVBAを使用してローカル環境でメールアドレスをSHA-256でハッシュ化するマクロを作成することが、安全かつ効果的な解決策となります。
手順①:新しいExcelファイルを作成し、開発タブを有効にします
Excelのメニューから「ファイル」→「オプション」を選択します。「リボンのユーザー設定」タブを選択し、右側のリストで「開発」にチェックを入れます。「OK」をクリックして設定を保存します。
手順②:VBAエディタを開きます
「開発」タブから「Visual Basic」ボタンをクリックします。または、キーボードショートカット「Alt + F11」を使用します。
手順③:新しいモジュールを追加します
VBAエディタの左上にある「挿入」メニューをクリックします。「モジュール」を選択します。
手順④:コードを入力します
新しく作成されたモジュールに、以下のVBAコードをコピー&ペーストします。
Option Explicit
‘ SHA-256ハッシュを計算する関数
Function SHA256(ByVal sTextToHash As String) As String
Dim asc As Object
Dim enc As Object
Dim TextToHash() As Byte
Dim SharedKey() As Byte
Dim bytes() As ByteSet asc = CreateObject(“System.Text.UTF8Encoding”)
Set enc = CreateObject(“System.Security.Cryptography.SHA256Managed”)TextToHash = asc.GetBytes_4(sTextToHash)
bytes = enc.ComputeHash_2((TextToHash))SHA256 = ConvToHexString(bytes)
Set asc = Nothing
Set enc = Nothing
End Function‘ バイト配列を16進数文字列に変換する関数
Private Function ConvToHexString(vIn() As Byte) As String
Dim i As Long
For i = LBound(vIn) To UBound(vIn)
ConvToHexString = ConvToHexString & Right$(“0” & Hex$(vIn(i)), 2)
Next i
End Function‘ メールアドレスをハッシュ化するサブルーチン
Sub HashEmailAddresses()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As LongSet ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, “A”).End(xlUp).Row‘ B列にヘッダーを追加
ws.Cells(1, 2).Value = “ハッシュ化されたメールアドレス”‘ A2からA列の最後の行までループ
For i = 2 To lastRow
‘ メールアドレスを取得してハッシュ化
Dim email As String
email = ws.Cells(i, 1).Value‘ ハッシュ化されたメールアドレスをB列に出力
ws.Cells(i, 2).Value = SHA256(LCase(Trim(email)))
Next iMsgBox “メールアドレスのハッシュ化が完了しました。”, vbInformation
End Sub
手順⑤:マクロを保存します
「ファイル」→「上書き保存」を選択します。ファイル形式として「Excel マクロ有効ブック (.xlsm)」を選択します。ファイル名を付けて保存します。
手順⑥:(オプション)実行用ボタンを作成します
Excelのシートに戻り、「開発」タブから「挿入」→「ボタン」(フォームコントロール)を選択します。シート上でドラッグしてボタンを配置します。「マクロの登録」ダイアログで「HashEmailAddresses」を選択し、「OK」をクリックします。ボタンの表示テキストを「メールアドレスをハッシュ化」などに変更します。
手順⑦:使用準備完了
A列のA2セルからメールアドレスを入力します(A1セルにはヘッダーを入れてください)。作成したボタンをクリックするか、VBAエディタから直接「HashEmailAddresses」サブルーチンを実行します。
メールアドレス | ハッシュ化されたメールアドレス |
sample@ishigurodo.com | 8E2FABF27AFBBF680930200421BF2B68BDA3A1EAB020F5E35ECEA431DBF1EF73 |
セキュリティに関する注意事項①:マクロを有効にする
Excelファイルを開く際、セキュリティ警告が表示される場合があります。「コンテンツの有効化」をクリックしてマクロを有効にしてください。
セキュリティに関する注意事項②:信頼できる場所の設定
頻繁に使用する場合、特定のフォルダを「信頼できる場所」に設定することで、毎回の警告を回避できます。「ファイル」→「オプション」→「セキュリティセンター」→「セキュリティセンターの設定」→「信頼できる場所」で設定できます。
セキュリティに関する注意事項③:デジタル署名
これは必要が無い場合が多いですが、より高度なセキュリティが必要な場合、VBAプロジェクトにデジタル署名を追加することを検討してください。
最後に
カスタマーマッチのためのデータハッシュ化は、プライバシー保護と効果的なマーケティングの両立に役立ちます。ExcelVBAを使用することで、小規模なデータセットに対して簡単にハッシュ化を実行できますので、是非試してみてください。
Web業界にて20年以上、大手から中堅代理店の顧問を請負。デジタルマーケティングを中心に、主に広告関係の教育や研修、コンペの相談に乗っています。またSEMのお役立ちツールもスクラッチで開発。現在も電通グループの顧問、Shirofuneのアルゴリズム作成補助など担当しています。皆さまに心から信頼されるパートナーであり続けるために日々研鑽しております。皆様に直接お会いし、お話しできる機会がありましたら、SEMの運用コンサルから無料相談まで、ぜひお気軽にお声がけください。