システム構築
2020年2月 - 2020年6月
新規アフィリエイトシステムの設計〜構築
ECナビの定額アフィリエイトにおける不正CVポイント付与対策システムを設計・構築。トラッキングキー発行&DB保存方式による不正対策を実装し、現在多数のASPで運用中。
プロジェクト概要
チーム構成:1名
役割:設計・開発・効果測定・保守
期間:2020年2月 - 2020年6月
技術スタック
PHP7.3JavaScriptSQLHTMLCSSMySQLLinux/UNIX自社FWRedshiftETL
プロジェクト背景
ECナビでは当時時点で、ECナビのASP繋ぎこみでは、ASP側にはユーザーIDしか渡っていないため、案件のすり替え等による成果の不正が行われる可能性があった。そのため多角的なアプローチを行い不正を阻止する方針で、ナビとASP間での不正対策案として考案した。
課題・チャレンジ
- 過去の不正事例(広告ID書き換えによる高額案件でのポイント付与)への対策
- ASP側のパラメータ長制限(最小32文字)への対応
- 月830万件の大量データ処理とDB容量管理
- 2年間のデータ保持による約120GBのDBサイズ予想
- 暗号化方式とトラッキングキー方式の比較検討
解決策・アプローチ
- ランダムな文字列(トラッキングキー)発行&DB保存方式を採用
- 約2億件のテストデータによる性能検証を実施
- トラッキングキーの生成方式を最適化(base64エンコード、URLセーフ変換)
- パーティション毎の定期削除設定によるDB容量管理
- Redshiftへのバックアップデータ移行設定
技術詳細
アーキテクチャ
トラッキングキー発行&DB保存方式による不正対策システム。1成果に対して1つのユニークなランダム文字列を生成し、URLに付与してASPに遷移。生成したトラッキングキーはDBに保存し、成果通知時に照合する仕組み。
データベース設計
トラッキングデータ保存用DB、backup用Redshift、パーティション毎の定期削除設定。約2億件のテストデータで性能検証を実施し、1件のselectが0.08秒以内を実現。
主要なAPI・機能
- トラッキングキー生成API
- 成果通知照合API
- 管理画面修正
- ETLデータ移行
成果・学び
成果
- 不正CVポイント付与を完全に防止するシステムを構築
- 2つのASPで実際に運用開始し、トラッキングキーによる不都合・不具合等なく運用
- 成果通知時の問い合わせ対応コストを削減
- 新規ASPとの繋ぎこみは必ずこの方式で提携することを決定
- 現状21万件強のデータで安定運用中
学び
- 不正対策システムの設計手法
- 大量データ処理の性能検証方法
- 暗号化とトラッキングキーの比較検討プロセス
- DB容量管理とパーティション設計
- ASP連携におけるセキュリティ設計
- 段階的な検証と実装の進め方