AI事業本部のDynalystでエンジニアをしている黒金です。
Dynalystでは主にインターネット広告を配信するシステムを開発しています。中でもDSPと呼ばれ、広告を出したい事業者(広告主)のためのシステムを作っています。DSPでは様々な広告配信面からの入札リクエストを受けるため、意図しない挙動をする広告配信面などでどのような現象が起きているのか調査しなければならない場合があります。
今回は、そのような状況下で本番環境での動作確認などがどのように行われているかを紹介します。

インターネット広告とDynalystについて

まずインターネット広告とその中でのDynalystの立ち位置や実際に出ている広告などについてざっくりと説明します。
日本一やさしいアドテク教室にも書いてありますが、以下のようになっています。

メディア側の広告枠を管理しているSSPと広告を出したい広告主側のDSPがリアルタイムで取引をして選ばれた広告(例えばバナー)がアプリなどに出てそれをユーザーが見る。この、ユーザーがアプリを開いて広告を見られるようになるまで1秒ほどで動いています。

rtb

DynalystではDSPを開発していてスマホゲームやアプリの広告主向けのリターゲティング広告と呼ばれる広告を配信しています。
配信対象のユーザや広告主によってクリック率などを予測し、それらの値から入札額を計算しています。各種予測値はデータサイエンティストが開発した機械学習モデルを利用しています。

withpredict

実際に配信されている広告のテスト

SSPは様々なアプリやメディアに広告枠を持っており、DynalystはたくさんのSSPと接続しているため、配信面の数や種類も膨大です。
ユーザーがアプリを開いて広告配信面に接触するたびに広告のオークションが開催されるので、広告が実際にユーザにどのように表示されているのかを逐一確認するのは難しいです。

ではどうやっているかと言うと、
SSPからのリクエストに配信面の情報が記載されているのでそのデータを分析して該当のSSPで多く配信されているアプリを割り出します。

そのアプリを実際に検証端末でダウンロードして見ます。

このままではオークションに勝って広告が出るまでが不確実なので何回もリロードなどをしないといけません。
そこで社内の検証用端末でのみ、「指定したSSP経由の広告買い付けのリクエストに対して高めの金額で入札する」という機能が実装されています。この機能を利用することでオークションにおいて勝率が高くなり、Dynalyst経由の広告が表示される確率を高め、実機での確認を楽にしています。 実際には管理画面などで広告IDやSSP、どの広告を出させるかを選ぶだけです。これによってほとんどの場合で広告が表示できる状況が整いました。

実際にテストする内容としては、

  • クリックして広告を出しているアプリに遷移できるか
  • 遷移した際に通知が飛ぶか
  • 見た目は壊れていないか

などを主に、分析や調査の際に行っておりますが、不具合の報告が上がってきた際や遷移の仕方を大きく変更するなど、見た目に関係する部分の機能改修の際にも行っております。
他にもCharlesなどの通信を確認できるツールを使ってどのようなリクエストが飛んでいるかや強制的に出す広告を変更して正しく新しい機能が動くかなどを確認しています。

charles

まとめ

今回は普段どのように広告の不具合の調査やテストなどをやっているかを説明しました。様々な広告配信面に対して複数のパラメータが絡み合って配信される広告の不具合を調査、修正するのは泥臭い作業になりがちですが、ある程度ハンドリングできる仕組みを作っているおかげで比較的簡単に遂行できていると思っています。まだまだ自動化できる部分は多くあると思っているので、着手していければと思っています。

2019年新卒入社のサーバーサイドエンジニアです。現在はDynalystでリターゲティング広告の開発をしています。