## 概要
ASPに計上される成果データを、Google広告・Yahoo!広告・Meta広告・Microsoft広告などへ
オフラインコンバージョンとして自動連携するSaaSです(利用者800名超)。
立ち上げ時からシステム担当として参画し、5年半以上継続しています。
## 体制と役割
- 事業側1名・技術側1名の2名体制で、技術側を単独で担当
- 事業側とプロダクト構想・開発の優先度をすり合わせ、仕様・工数・技術的な制約を説明したうえで合意する進め方を継続
- 要件定義から設計・実装・テスト・リリース・運用保守までの全工程を担当
- リポジトリ全5,788コミットのうち5,358コミット(92.6%)を担当
## 主な機能
- 100社超のASPとの成果データ連携(CSV取込・ポイントバック)
- Google Ads API v17.0/Yahoo!広告/Meta広告/Microsoft広告/TikTok広告 へのオフラインコンバージョン送信
- GMOペイメントゲートウェイと連携したポイント制課金(従量課金・繰越・有効期限管理・自動更新)
- A/Bテスト基盤(配信パターンの比較検証、表示数・クリック数・CTRのレポート)
- AWS(Lightsail/RDS/S3)による本番環境の構築・運用
## 取り組んだ課題と判断
### ASPごとに異なるデータ仕様
ASPごとに、CSVの列の位置や列名、文字コード、税込・税抜の扱い、読み飛ばす行、
ポイントバックで受け取るパラメータ名などがすべて異なります。
媒体ごとに個別のコードを書くと、連携先が増えるたびに改修が必要になるため、
これらの差分をコードではなく、設定テーブルのデータとして持たせる設計にしました。
ASP1社ごとに30項目を超える設定で取込・ポイントバックの挙動を切り替えられるため、
新しいASPの追加や仕様変更の多くを、コードを変えずに設定の変更で吸収できます。
### レガシーPHPからLaravelへの移行
既存システムは自分の開発経験が浅い時期に書いたコードで、構造が整理されておらず、
自動テストもありませんでした。保守性と安全性を高めるため、Laravelへの移行を決めました。
一括で作り直す案は、移行に膨大な時間がかかるうえ、不具合が出た際に原因箇所を
特定しづらくなるため採用せず、モジュール単位の段階移行を選択しました。
移行済みのモジュールはアーカイブとして管理し、新旧を並行稼働させながら、
サービスを止めずに置き換えています。
### ジャンルの異なるサービスへのピボット
事業の主軸が、ポップアップ配信ツールから広告成果連携ツールへと大きく変わりました。
ジャンルがまったく異なるため、旧サービスと新サービスは、フロントエンド・バックエンドともに
別系統(Tools01/Tools02)として分離して運用し、両者に共通する部分だけを
上位の階層に切り出して共通化しました。決済の仕組みは大部分をそのまま流用し、
新サービスの立ち上げにかかる工数を抑えています。
### ポイント制課金の設計
ポイントの増減と残高(ストック)をDB上でどう持つかを設計の中心に置き、
繰越・有効期限・自動更新まで含めて整合が取れるテーブル構造を設計しました。
## 実績
- ASPからの成果データ取込:180日間で802,540件
- Google広告へのオフラインコンバージョンAPI送信:約4か月間で15,625,595件