ECサイトを運用していると時々被害に遭ってしまうのがいたずら購入。
サイトを運営するお客さまの手をも煩わせる、起こってほしくないトラブルのひとつです。
先日私が運用しているサイトでもその被害に遭いました。
毎月Google アナリティクスの「eコマース」からどれくらい売れたかを集計しているのですが、このトラブルのため正確なデータがわからない事態に…。
数回に渡っての被害だったので、今後のためにも犯人のIPアドレスを特定しアクセスを除外するフィルタを作成することを試みてみました。
実施の前に
今回の実施にあたり、2つの点を心に留めておく必要があります。
Google アナリティクスはIPアドレスを特定できない
残念ながらGoogle アナリティクスにはIPアドレスを特定する機能がありません。
この作業を行う前に対象であるIPアドレスを特定する必要がありますので、使用しているシステムやツールと組み合わせて工夫して情報を割り出してみましょう。
簡単ではありますが、記事の最後に、私が今回行ったFutureShop2(フューチャーショップ2)の機能を活用した方法をお伝えいたします。
過去のデータを変更することはできない
今回作成するフィルタによって、被害に遭った過去のデータも適用されることを期待してしまいますが…フィルタが適用されるのは設定後の未来のデータが対象です。
つまり、過去のデータには適用することができません。
起こってしまった過去の出来事はあきらめましょう…。
それではいってみましょう。
まずは使用しているビューを複製
それでは、本件の作業を行う前にビューを複製しましょう。
複製する理由は、すでに設定されているフィルタを誤って触らないようにするためです。
まずは左サイドのメニューから「管理」へ移動します。
そして画面一番右の「ビュー」にある「ビュー設定」をクリックします。
ビューの設定の画面の右側にある「ビューのコピー」をクリック。
ここで新規ビュー名に複製するビューの名前をつけましょう。
今回は「スパムや不正なアクセスを除外」としました。
入力したら「ビューをコピー」のボタンをクリックして完了します。
次は複製したビューにフィルタの設定を行っていきます。
フィルタで除外する
「管理」の画面に戻り、「ビュー」の上から5つ目のメニュー「フィルタ」をクリックします。
以下のページでは新しいフィルタを追加することができます。
複製元から引き継いだフィルタを誤って削除しないよう注意しましょう。
「フィルタを追加」をクリックします。
次は実際にフィルタの設定を行っていきます。
特定のIPアドレスからのトラフィックを除外する方法は以下の通りです。
既存のフィルタに設定を追加することもできますが、今回は新しいフィルタを作成してみましょう。
(1):「新しいフィルタを作成」を選択する。
(2):任意の「フィルタ名」を入力する。
(3):「定義済み」を選択する。
(4):「除外」を選択する。
(5):「IPアドレスからのトラフィック」を選択する。
(6):「等しい」を選択する。
(7):除外したい「IPアドレス」を入力する。
上記を設定したら、これにてフィルタの作成は完了です。
IPアドレスをどうやって調べるか
冒頭でお話ししたとおり、Google アナリティクスだけではIPアドレスを特定できません。
今回被害に遭ったサイトはFutureShop2で構築したサイトでした。
FutureShop2にはサイトにアクセスしたユーザの情報を格納してくれる「アクセスログ」という機能がありますので、これを活用します。
「アクセスログ」にはアクセス毎に以下のような情報が保管されています。
IP/データの送り方法(ここに日付と時間が記載されます)/ファイル名/プロトコル/ステイタスコード/バイト数/リンク元/ブラウザのバージョン
この「アクセスログ」で確認できる情報と、Google アナリティクスからわかるデータを照らし合わせながら特定していく…というわけです。
1.該当するトランザクションIDを割り出す
まずはGoogle アナリティクスで、いたずら購入の被害に遭ったトランザクションIDを割り出します。
データを見つけやすいように「期間」を絞り込みましょう。
そして左サイドのメニューから「eコマース」→「トランザクション」へ移動。
すると日付と金額などから該当のトランザクションIDを割り出すことができます。
以下はトランザクションの例です。突出しているコンバージョンのA・Bがいたずら購入のトランザクションです。
2.ユーザ情報を割り出す
では、トランザクションIDの数字をクリックして詳細へ移動しましょう。
「セカンダリディメンション」からユーザ情報を割り出します。
「ユーザー」に今回知りたいユーザの情報が詰まっています。早速見ていきましょう。
「アクセスログ」にて保存されている情報の内、この「セカンダリディメンション」で確認できる情報は以下の通りです。
- オペレーティングシステム
- ブラウザ情報
- OS情報
上記の情報を「ユーザー」から探し出していきます。
「セカンダリディメンション」は、この他にサービスプロバイダ、地域、市町村IDなどなど、様々なユーザ情報を確認することができます。必要に応じて調査を行いましょう。
3.アクセスログをダウンロードする
では、最後は「アクセスログ」をダウンロードします。 「アクセスログ」は該当のサイトのファイルがアップされているFTPサーバーに格納されています。
格納場所はlogs
。public_html
と同じ階層にあります。
logs
には「アクセスログ」と「エラーログ」の2種類のデータが日付ごとに格納されています。
アクセスログはaccess.log.yyyymmdd.gz
、エラーログはerror.log.yyyymmdd.gz
というファイル名で保管されています。
該当の日付のaccess.log.yyyymmdd.gz
のデータを見つけてダウンロードしましょう。
4.テキストエディタでアクセスログを開く
このフェーズは個人情報がつまっているためキャプチャを割愛させていただきます。
先ほどダウンロードしたaccess.log.yyyymmdd.gz
を解凍し、ファイルをテキストエディタで開き該当の日付と時刻のあたりに移動します。
次に、Google アナリティクスから得た情報と照らし合わせて探してみましょう。
- アクセスのあった時刻
- コンバージョンに至ったページ
- OSやブラウザの情報
- オペレーティングシステムの情報
アクセスログには詳細な時間が書かれていますので、アクションのあった時刻を探れば、上記の情報でほぼユーザのIPを割り出すことができます。
今回はFutureShop2の機能を活用した方法をお伝えしましたが、他のサービスでも同様にアクセス情報を確認することが出来ると思います。ご参考になさってください。
最後に
以前「リファラースパム」に困っていたことがあり、森野さんからフィルタの設定によって除外できることを教えていただきました。それをヒントに行ったのが今回の対策です。
この特定のIPを除外する方法は今回のようなケースだけではなく、関係者のアクセスを除外して純粋なユーザのアクセスを取得したい時にも有効です。
Google アナリティクスは工夫次第で様々なことが行えるんだなあ…と改めて感じた一件でした。
お役に立てれば幸いです!
今週は以上です!チカッパでした!