🦸‍♂️

『エリオスR』の新しい司令を見つけだそう!

2022/12/13に公開

はじめに

Happy Elements株式会社カカリアスタジオ(以下、HEKK)で、エリオスライジングヒーローズ(以下、エリオスR)のゲームエンジニアをしているT.Kです。

エリオスRでは、職種リーダーとして、開発スタッフが迷うことがなく、開発に専念できるようにマネジメントを主な業務として行っております。

イチ推しの『ヒーロー』はオスカー・ベイルです。
レスキューのオスカーはめちゃ格好良いです。

ちなみに、休憩時間にはコーヒー担当として、美味しいコーヒーをスタッフに振る舞い、セルフ福利厚生に勤しんでいます。
社内にコーヒー器具を勝手に持ち込ませていただき、管理グループの皆様にはこの場を借りて御礼申し上げます。

宣伝...#PR

エリオスRでは、現在「HELIOS VOLTAGE MAX!!!!! PROJECT」と題しまして、大型アップデートの開発中となっております。

タイミングが合えばこちらのお話をできれば良かったのですが、絶賛開発中ということもあり、こちらのウラ話は、次回お話できればと思います!

HELIOSスタッフ一同、新たな『ヒーロー』の物語を届けるため、全力で取り組んでおりますので、公開まで今しばらくお待ちください!!

新しい司令の見つけ方

さて、前置きが少し長くなってしまいました。
今回は、エリオスRが実戦している新しい司令(ユーザー)の見つけ方についてお話させていただきます。

昨今は、多種多様なゲームタイトルが存在しています。そのため、ユーザーの皆さんが自身の好みにマッチしたゲームタイトルに出会う方法もさまざまです。

エリオスRでは、よりゲームを深く楽しんでいただけるよう、より適切なユーザーへとプロモーションを目指しています。

もっと多くの人に『ヒーロー』のアツさを、エモさを届けたい......!

今までの課題

元来、スマートフォンゲームでは、 「広告からゲームをプレイしてくれたユーザー」「継続してゲームをプレイしているユーザー」 などの一般的な動きのユーザーに類似する潜在的なユーザー層に対してプロモーションを行う方法が主流となっています。

これらは、Googleアナリティクスなどのサービスにより、自動的に集計された情報をもとに、サービスを利用する各ユーザーがセグメントされ、適切なユーザーをターゲットとした広告掲載が行われます。

もちろんこのプロモーション方法は、HEKKをはじめとしたさまざまなスマートフォンゲームの会社様で利用されています。

しかし!
「私たちはもっと、『ヒーロー』達のアツさを!エモさを!
一人でも多くのユーザー様に届けたい!」

そんな悩みを弊社の優秀な分析チームに相談してみたところ...

T.K「なにかいい感じの方法ないですかね?」

Y.T「エリオスRを楽しんでいるユーザーをグループ化して、情報をGoogleに送れば自動的にセグメントが作れるんじゃないですかね」

なるほど、目からウロコです。

前述したプロモーションも、条件を達成時にイベントとして情報が収集され、自動的にセグメント化されているわけですので、新たに 「エリオスRを楽しんでくれているユーザー」 を定義し、条件達成時にイベント化することで同様にセグメント化するというわけです。

新しい司令を探そう

実現方法が見つかりましたので、 早速実装していきます。

エリオスRでは、分析ツールの一つとしてGoogleの提供するFirebaseを利用しています。
Firebaseは、プッシュ通知やリアルタイムモニタリングといった豊富なサービスが存在しており、非常にありがたいサービスです。

Googleのインフラで作られていることもあり、信頼性も非常に高いです。

どうやって送るのか

Firebaseのイベント計測には、クライアント側で条件発生時にイベントを送信するFirebaseAnalyticsのlogEvent()を利用します。
こちらは、Firebaseの組み込みを行っているアプリケーションであれば、追加対応の必要なく送信することができるかと思います。

しかし、今回は分析チームとの連携により、条件を満たすユーザーを事前にグルーピングし、グループに属するユーザーに対してイベントを送信します。

グループに属するユーザーが次回ログイン時にクライアントから送信することも可能ですが、必ず毎日ログインする方ばかりでもありませんので、本イベントはサーバーから直接送信するのが理想です。

また、Firebaseにはサーバーから直接イベントを送信する機能は提供されていません。
(アプリケーション開発時のバックエンドの開発支援が目的のサービスなので当然ですが......。)

ですが、Firebase Analyticsの実態はGoogle Analyticsですので、Google Analyticsに対してイベント送信をすることができれば、Firebase側でも情報を拾うことが可能となっています。

早速、Google Analyticsが提供するWebリクエストの形式でイベント送信を試してみましょう。

実際にやってみよう

事前に api_secret(Google Analytics)や firebase_app_id(Firebase)を各種プラットフォームから取得する必要がありますが、そこまで癖のある通信ではありません。

テストを行わずに本番へと送信するのはさすがに怖いので、きちんと検証用サーバーに対してイベントを送信してみましょう。

本番サーバー.../mp/collect  
検証サーバー.../debug/mp/collect  

以下が sample_event という名前のイベントを検証用サーバーに送信するサンプルです。

[送信サンプル]  
const firebase_app_id = `<firebase_app_value>`;  
const api_secret = `<secret_value>`;  
  
fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebase_app_id}&api_secret=${api_secret}`, {  
  method: "POST",  
  body: JSON.stringify({  
    app_instance_id: 'app_instance_id',  
    events: [{  
      name: 'sample_event',  
      params: {},  
    }]  
  })  
});  

検証サーバーでは、エラーが発生した際に、原因を教えてくれるので助かります。
※本番サーバーではエラーが表示されないことがあるので事前に検証サーバーで確認します。

[レスポンスサンプル](エラー発生時)  
{  
  "validationMessages": [  
    {  
      "fieldPath": "events",  
      "description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",  
      "validationCode": "NAME_INVALID"  
    }  
  ]  
}  

検証サーバーでエラーがなく送信できることが確認できれば本番サーバーに対して同じように送信できます。

最後に、サーバー側で定期的にイベントが送信されるように定期実行バッチを組み込むことで実現できます。
エリオスRでは Amazon EventBridge を用いて AWS Step Functions で仕込まれた一連の処理を実行することで定期的なバッチ処理を実現しています。

おわりに

エリオスRでは今後、「HELIOS VOLTAGE MAX!!!!! PROJECT」のリリースにより、さらに多くの方にプロモーションを行う機会が多くなります。

エリオスR史上最大規模のアップデートの機会となるため、より多くの方に私たちの想いが届けばうれしく思います。

これからもHELIOSスタッフとして『ヒーロー』の活躍をサポートしていきますので、よろしくお願いします!

GitHubで編集を提案
Happy Elements

Discussion