システム構築

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連携におけるセキュリティ設計
  • 段階的な検証と実装の進め方