mochi

SIerで3年、Web制作会社で3年、主にWeb系のJava、Androidエンジニアとして働いてきました。2015年から3年、出産・育児で開発を離れており、2019年4月からシンプルメーカーで勤務しているママエンジニアです。現在はFirebase案件を担当しています。

記事一覧(11)

クロスプラットフォーム分析が可能になる「App+Webプロパティ」の特徴

GoogleAnalyticsに、アプリとウェブを跨いで分析できる"App+Webプロパティ"という新しいプロパティが追加されました。今までは、ウェブはGoogleAnalytics、アプリはFirebase、というようにレポート作成や分析をするツールが別れており、同じ方法で分析をするためには、GoogleTagManagerを使うなど一手間加える必要がありました。新しい"App+Webプロパティ"を使うことで、ウェブとアプリの測定方法を統一し、同じツールでレポート作成や分析が可能になります。(とっても便利!)今回は、新しいプロパティ"App+Web(アプリとウェブ)プロパティ"の特徴について書きたいと思います。App+Webプロパティの特徴アプリとウェブの統合分析が可能に!上にも書いた通り、今まではFirebase用Googleアナリティクスでアプリ、Googleアナリティクスでウェブサイト、というようにそれぞれのプラットフォームで別れた測定を行っていました。それぞれのプラットフォームに特化した解析を行うことが可能ですが、クロスプラットフォーム(アプリとウェブ全体)での解析を行うためには、GTMやBigQueryなど他のツールも利用し一手間かける必要がありました。ところが、この新しいプロパティを利用することで、簡単にアプリとウェブの統合分析が可能になります。例えば、こんなデータのレポートがすぐに表示可能です。様々なプラットフォームで、最も新規ユーザーを獲得している経路はどれか?プラットフォームを跨いだユニークユーザーの総数はどれくらいか?今までは、プラットフォームそれぞれユニークユーザー数は把握できましたが、重複してカウントされるユーザーが存在していたため、プラットフォームを跨いだ全体のユニークユーザーの総数を把握することは困難でした。先週、アプリとウェブサイトで何回コンバージョンが発生したか?また、プラットフォームを跨いだマーケティングキャンペーンの効果を測定することも容易になり、「キャンペーンでアプリを起動後、ウェブサイトで購入したユーザの数」を把握することも出来るようになります!柔軟なイベント測定が可能に!今までのGoogleアナリティクスは、「ユーザーベース」「セッションベース」の測定が基本的な考え方でしたが、App+Webプロパティでは、「イベントベース」の考え方で測定されます。自動的に計測されるスクロール、ダウンロード、ビデオビューなどの多くの一般的なWebイベントの他に、カスタムイベントを設定して情報を測定したりすることができます。また、導入後には追加のコーディングを必要とせず、プロパティの管理設定画面から、測定する自動イベントのON/OFFが可能になります。また、今までイベントにユーザー情報を紐付けて測定するためには都度設定が必要で、実装の手間がかかっていたウェブ側の測定も、ユーザー情報が自動で紐付けられるようになり、実装の手間をグッと省くことが出来そうです。様々なレポート作成が可能に!こちらの機能はまだあまり見れていないのですが、データ可視化のためのレポート作成機能が追加になっています!これももちろんクロスプラットフォームで、解析する側はアプリとウェブのプラットフォームの違いを意識せずにレポートを作成することが可能です。デフォルトで用意されているレポートは6種類、簡単にデータの可視化を行うことが出来ます!

FirebaseのユーザーIDをGoogleアナリティクスのカスタムディメンションに設定する方法

これまでに、GTMを使ってFirebaseとGoogleアナリティクスを連携する方法、Firebaseの特定のイベントをブロックする方法を書いてきました。今回は、GAのカスタムディメンションの設定方法を書きたいと思います。関連:FirebaseとGAを連携する方法関連:GAに連携するときに、Firebaseの自動イベントを除外する方法今回の内容は、FirebaseとGAを連携して、FirebaseのユーザーIDをカスタムディメンションに設定する方法です。FirebaseのユーザーIDは、ユーザーを一意に識別することが可能な値で、一度アプリ内で設定すると、自動でイベントのユーザープロパティに付与される仕様なので、イベント毎にユーザーIDを送信する必要はありません。このユーザーIDと、GAで用意されているカスタムディメンションを使うことで、より使い勝手の良いレポートを作成することが可能です。カスタムディメンションとは、標準で用意されているレポートとは違う、独自の切り口で解析を行うことが可能にするためのGoogleAnalyticsの機能です。例えば、有料会員と無料会員を分けて計測したい、性別で PV数を分けて表示したいといったことが、カスタムディメンションを使うことで可能となります。参考:カスタム ディメンション / 指標設定手順前提条件アプリにFirebaseAnalytics、GoogleTagManagerが導入済みの状態であること各導入方法は下記を参照ください。FirebaseAnalyticsの導入 iOS、Android - GoogleTagManagerの導入 iOS、AndroidAndroid、iOSそれぞれのGTM コンテナが作成済みであることコンテナの追加方法アプリ側でユーザーIDの設定を行っていること実装方法は下記サイトをご確認ください。ユーザー ID を設定する手順1  Googleアナリティクスで、カスタムディメンションを作成します「管理」>プロパティ列の「カスタム定義」>「カスタムディメンション」>「新しいカスタムディメンション」 と辿って、カスタムディメンションの設定を行います。任意の名前をつけ、範囲に「ユーザー」を指定し、アクティブにチェックを入れます。

Googleアナリティクスと連携するときに、Firebaseの自動イベントを除外する方法

FirebaseとGoogleアナリティクスを連携する方法

やりたいこと「FirebaseAnalyticsとGoogle Analyticsを連携し、分析データを一元管理したい」そう思ったことのあるマーケティング担当者の方は多いのではないでしょうか?この記事では、GTM(Google Tag Manager)というサービスを使って、FirebaseとGAを連携する方法をお伝えします。連携できたら何が嬉しい?FirebaseとGoogleAnalyticsの機能の差の為に、ウェブとアプリを同一条件での分析が難しかったのですが、FirebaseAnalyticsのデータをGoogleAnalyticsと連携することによって、Google Analyticsでウェブとアプリの分析を一元化できるようになります。GTMの役割Google Tag Managerは、FirebaseAnalyticsのイベントをトリガーに、GoogleAnalyticsへデータを転送する役割を担っています。具体的な設定方法を、以下にまとめていきます。前提条件アプリにFirebaseAnalytics、GoogleTagManagerが導入済みの状態であること各導入方法は下記を参照ください。FirebaseAnalyticsの導入 iOS、AndroidGoogleTagManagerの導入 iOS、AndroidAndroid、iOSそれぞれのGTM コンテナが作成済みであることコンテナの追加方法GTMで連携する方法GTMには、タグ、トリガー、変数という主に3つの設定が必要になってきます。それぞれどんな役割なのかについて説明しつつ、設定手順を書いていきます。今回は、Firebase側でカスタムイベント"event_A"に付与したパラメータ"param01"、パラメータ値"001"と設定されていて、パラメータ値が欲しい場合の設定について、詳しく説明していきます。変数とはFirebaseにて、各イベントにパラメータを設定していますが、そのパラメータ値を取得するための受け皿が、変数となります。「変数」を選択し、変数一覧を表示します。 変数一覧画面にて、「新規」ボタンを押下します。 変数タイプを「Firebase>イベントパラメータ」に設定します。 イベントタイプに「Custom Parameter」を選択します。 イベントパラメータキーに、取得したいパラメータのキーを設定します。上の例であれば、「param01」を入力します。 任意の名前を設定します。「保存」ボタンを押下します。

意識しておきたいFirebaseAnalyticsに設けられた制限

はじめにFirebaseの導入が決まり、各項目どのように設定するのか設計を行う際に、考慮すべきFirebaseAnalyticsで各項目に設定された制限について書きたいと思います!FirebaseAnalyticsのエラーコードから、どのような制限があるのか検証を行いました。検証したのは、下記の一覧です。アナリティクスのエラーコードイベント関連設定数に関する制限1イベントに設定できるパラメータは25件イベントは500件/アプリが上限です。現在、イベント数が上限に達しても、不要なイベントの削除はできません。パラメータレポートは合計 100 個(数値 50 個、テキスト 50 個)※つい2週間ほど前まで、50件/プロジェクト(数値 40 個、テキスト 10 個)だったので、大幅に使いやすくなりました!イベント名、パラメータ名に関する制限1~40文字の英数字、アンダースコアドキュメントに記載はないですが、日本語も可能(日本語でも40文字までOK)1文字は必ずアルファベットである必要があります。(数字やアンダースコアで始まる値を設定することはできません。)ただし、日本語の場合は、1文字目はアルファベットでなくても設定可能です。自動イベントなどですでに利用されているイベント名、パラメータ名は設定できません。参考:自動的に収集されるイベント参考:イベントとパラメータの詳細イベント パラメータ値に関する制限文字列の場合は100文字まで設定可能(半角英字でも日本語でも、100文字までOK)数値は整数、小数、マイナス値もOKユーザープロパティ関連ユーザー プロパティ名に関する制限1~24文字の英数字、アンダースコアドキュメントに記載はないですが、日本語も可能(日本語でも24文字までOK)1文字は必ずアルファベットである必要があります。(数字やアンダースコアで始まる値を設定することはできません。)ただし、日本語の場合は、1文字目はアルファベットでなくても設定可能です。自動的に収集されるユーザープロパティと同じプロパティ名は設定できません。参考:自動的に収集されるユーザー プロパティ参考:イベントとパラメータの詳細ユーザー プロパティ値に関する制限1~36文字が設定可能1度設定したユーザープロパティを削除したい場合は、値にnullを設定すると削除できます。まとめエラーコードの番号に欠番があったりもするので、日々変化しそうです。実際に動かして検証してみることで、ドキュメントに記載されていないこと、ドキュメントとの相違点もわかりました。この設定項目に制限があったなぁと頭の片隅に置いておけば、設計の時にちょっと役に立つかもしれません!

【Firebase】FCMでonMessageReceivedが呼ばれない?

Androidアプリに、Firebase Cloud Messaging(以下FCM)を導入しました。FCMをFirebaseConsoleからテスト送信を繰り返しデバッグしている時に、受信するアプリの起動状態によって、onMessageReceivedメソッドが呼ばれたり呼ばれなかったりしたので調べてみました。FCMとは?Firebase Cloud Messaging(FCM)は、メッセージを無料で確実に配信するためのクロスプラットフォーム メッセージング ソリューションです。参考:Firebase Cloud MessagingonMessageReceivedメソッドが呼ばれない!?FCMのテスト送信を行った時、アプリを起動していない状態だと仕込んでいたログが出ていないことに気づきました。全ての通知はonMessageReceivedで作成されると思っていたのですが、どうやらそうではないようです。(産休に入る前、GCMは確かそのような仕様だったはず。。やはり技術の変遷は早いですね)アプリが起動している時onMessageReceivedが呼ばれます。通知の際のタイトルや文字、アイコンはここで設定しているため、FCM送信の画面で設定している「通知のタイトル」や「通知テキスト」とは異なる設定にすることも可能です。アプリを起動していない時onMessageReceivedは呼ばれず、通知はデバイスの通知領域(システムトレイ)で処理されます。通知の際のタイトルや文字、アイコンはFCM送信の画面で設定している「通知のタイトル」や「通知テキスト」がそのまま使用されます。Intentはどうやって渡す?この挙動の違いで困ったことがありました。onMessageReceivedで作成した通知で、通知から呼ばれるActivityにIntentを渡していたことです。onMessageReceivedを通らないとなれば、どうやって値を渡そうかと調べてみると、FCM送信の設定でIntentも渡すことができました!FCM送信の画面の、「5.その他のオプション(省略化)」> 「カスタムデータ」の設定をすることで、Intentを渡すことができます。