企業のマーケティング キャンペーンのコンバージョンを追跡する Analytics アプリケーションを構築しています。コンバージョンとは、スーパーマーケットに行って商品を購入することです。会社が Heinz の場合、さまざまな製品のキャンペーンを実行する可能性があるため、キャンペーンは次のようになります。
- ベイクドビーンズ
- トマトスープ
- ケチャップ
これらはオンライン キャンペーンであるため、次のようなさまざまなメディアを使用できます。
- Webサイト
- Facebookのページ
- Flash バナー広告
- モバイルアプリ広告
また、誰かが製品を購入する場合、次のようなスーパーマーケットを介して購入されます。
- ウォルマート
- アズダ
- 安全な方法
- クローガー
そして、これらすべてのコンバージョンを追跡しています。分析アプリケーションは、上記の任意の組み合わせのコンバージョン データを表示する必要があります。たとえば、コンバージョンを表示する必要があるかもしれません...
- ベイクドビーンズ用。
- ベイクドビーンズはFacebookページから。
- スーパーマーケットのウォルマート向けですが、すべてのキャンペーンとメディア向けです。
- Facebook ページから作成された Walmart 用ですが、すべてのキャンペーン用です。
- Flash バナー広告を介して作成されたケチャップと Safeway の場合。
分析を高速化するために、生データ (数百万のレコード) を処理することを避けていますが、1 日ごとに保存されたデータの集計バージョンを保存しています。9 月 12 日の例では、ベークド ビーンズで 12 回のコンバージョンがあり、ウェブサイト経由で 6 回 (すべての製品で)、ウォルマートで 8 回のコンバージョンがあり、これらは 3 つの個別のテーブル (キャンペーン、媒体、およびスーパーマーケット)。しかし、Facebook ページ経由で作成された Ketchup と Walmart のコンバージョンを知る必要がある場合、別々のテーブルに保存することは明らかに機能しません。
上記をサポートできるデータモデルを考え出すのに苦労しています。標準のリレーショナル データベース (MySQL) を使用しています。おそらく、これを処理するためのより良い戦略があります。