Opt Technologies Magazine

オプトテクノロジーズ 公式Webマガジン

広告データの作成をサポートする開発プロダクト「CreativeDrive」の紹介

f:id:peko858:20220311154748p:plain

ビジネステクノロジー開発部の開発事例として、CreativeDriveというプロダクトについて簡単に紹介します。

はじめに

こんにちは。Opt Technologies の富山です。現在、開発・運用を担当している「CreativeDrive」というプロダクトについて概要を紹介します。

CreativeDriveとは

CreativeDriveはオプトの主事業であるインターネット広告代理業の中で「広告データの作成」をサポートするプロダクトです。

プロダクト導入以前はこの作業に標準プロセスが決まっておらず、担当者間でのデータの受け渡しやコミュニケーション(作業依頼や作業結果へのレビュー)にコストがかかっていたり、またミスが発生しやすくなったりしていました。そこで非効率的な作業を削った標準プロセスを策定し、CreativeDriveを利用すれば広告データの作成・保存・入稿担当者への依頼を無駄なくスムーズに行えるようにすることで、業務にかかる工数を削減しました。

また広告配信自体に必要なデータを作るだけではなく、広告配信後のレポート作成・分析業務で必要となるデータも作成・保持する機能があります。

まとめると、以下3つの役割を持っています。

  1. 広告に入稿する画像・動画ファイルを保存
  2. 画像・動画ファイルごとに、特徴を表現する分析用ラベルを設定
  3. 広告データを作成

1 で保持している画像・動画ファイルは、広告配信後の実績を集計したダッシュボードツールなどから参照されます。

2 3 で作成されたデータは、データウェアハウス(様々なシステムからデータを集めて整理するデータの倉庫)に連携されます。このデータウェアハウスでは広告実績データも保持しているため、画像・動画ファイルやそのラベルごとの実績集計をすることができます。

そして 1 2 3 の作業の次に行われる「媒体への入稿作業」は、別のプロダクトを利用して進めます。その際には、外部提供用のAPIを介して、CreativeDriveの上に保持している広告データを取得します。入稿作業は連続した作業となるためCreativeDriveの役割にしてしまう手段もありましたが、入稿となると「配信情報設定の管理」や「媒体へのファイルアップロード」が必要となり関心事が異なります。マイクロサービスアーキテクチャを指向し、あくまでCreativeDriveは広告データを素材情報として保持するためのプロダクトという位置付けに留めています。

CreativeDriveと周辺ツールのデータの流れ
CreativeDriveと周辺ツールのデータの流れ

使用している技術

バックエンドはRuby on Rails、フロントにはAngular(+ Teradata Covalent)を利用しています。 インフラはGoogle Cloud Platformベースで、バックエンド・フロント共に App Engine、データベースはCloud SQL(MySQL)で構築しています。

主要機能とそれを実現する技術

GoogleDriveを使った画像・動画ファイルアップロード

GoogleDrive上の指定した共有ドライブにファイルをアップロードすると、CreativeDriveのデータベースやストレージに同期される仕組みにしています。より具体的に言うと、GoogleDrive APIを使って共有ドライブの変更履歴を1分ごとに参照し、差分をデータベースやストレージに保存します。

このような仕様にするメリットは以下です。

  • 入稿用画像・動画ファイルの関連ファイル(作成途中のファイルや素材、PSDファイルなど)をGoogleDrive上にまとめて保持しておける。
  • GoogleDriveアプリを使うことで、Windowsのエクスプローラー(Macであればファインダー)上でファイル移動するかのような操作だけで、ファイルアップロードができる。
  • 大量のファイルをフォルダごとまとめてアップロードできる。
  • アップロードしたファイルの変更を再アップロードなしでできる。
  • ファイル付帯情報(画像・動画ファイルの縦横の長さなど)を何か別のライブラリで解析する必要がなく、GoogleDrive APIからまとめて取得できる。

※ただしGoogleDriveを採用したことによる課題も出てきています。例えば共有ドライブ内のフォルダ階層にルールを設けているものの、そのルール通りにしか操作できない制約を設けることができないなど。プロダクト発足当初の想定と状況が変わってきていることもあり、メリット・デメリットを整理した上での機能リプレイスも検討しています。

XLSXファイルの生成・読み込みによる広告マスタデータ作成

広告マスタデータは、画像・動画ファイルと広告本文などのテキスト情報の組み合わせによって作成されます。ユーザーはCreativeDriveで生成されるXLSXファイルを使ってMicrosoft Excel上で組み合わせデータを作り、そのファイルをアップロードすることでCreativeDriveにデータを登録します。

また生成されるXLSXファイルは、フォント変更・背景色変更・罫線設定・列幅指定・行列の固定表示・入力規則・行列のグループ化機能などを用いて、見た目をリッチに整えています。ユーザーは作成したデータについて顧客の合意を得る必要があり、その際にこのXLSXファイルをそのまま使えるようにするためです。

リッチなXLSXファイルを生成するにあたって、RubyXLを利用しています。シートやセルの生成、装飾など基本的なことはREADMEを読めば簡単に実現でき、かつXLSXファイルの読み込みもできます。固定表示やグループ化は執筆時点でREADMEには見当たりませんが、wikiやIssueを探すとサンプルコードがありますし、設定値はOpenXML SpreadsheetML自体の仕様を調べれば把握できます。

おわりに

今回はCreativeDriveの役割や実現するための技術について概要を紹介しました。今後も広告事業の業務をより効率化できるような改善や、プロダクト発足当時からの変化による課題への対応などを着実に進めていく予定です。

Opt Technologies ではエンジニアを募集中です。カジュアル面談も可能ですので、下記リンク先よりお気軽にご応募ください。