Firebase コンソールの Notifications Composer を使用して通知メッセージを送信できます。Admin SDK や HTTP / XMPP プロトコルでメッセージを送信する場合と比べると、柔軟性やスケーラビリティの点で劣りますが、テスト目的やターゲットを絞り込んだマーケティング、ユーザー エンゲージメントには便利な方法です。Firebase コンソールは、マーケティング メッセージの改善に役立つ、アナリティクスに基づく A/B テスト機能を提供します。
アプリ側でメッセージを受信するロジックを開発しておけば、技術的に詳しくないユーザーでも、Firebase ヘルプセンターの Notifications ページの手順に沿ってメッセージを送信できます。
Notifications Composer 内の FCM メッセージ フィールドについて
Notifications Composer からメッセージを送信する場合、Google はフォームのフィールドに入力された値を次の方法で使用します。
- [ユーザー セグメント] や [有効期限] などのフィールドによってメッセージのターゲットと配信オプションを決定します。
- [通知テキスト] や [カスタムデータ] などのフィールドは、Key-Value ペアで構成されたペイロードでクライアントに送信されます。
これらのフィールドは、FCM サーバー プロトコルで使用可能なキーにマップされます。たとえば、[カスタムデータ] に入力された Key-Value ペアは、通知のデータ ペイロードとして処理されます。他のフィールドは FCM 通知ペイロードのキーに直接マッピングされます。
Notifications Composer の一部のフィールドは FCM サーバー プロトコルでは使用できません。たとえば、アプリのバージョン、言語、ブラウザの種類やバージョン、ユーザー プロパティなど、サーバー API の to
フィールドでは実現できない方法で特定のユーザー セグメントをメッセージのターゲットに設定できます。
Firebase コンソールからクライアントに送信されるキーには次のものがあります。
キー | コンソール フィールドのラベル | 説明 |
---|---|---|
notification.title |
通知のタイトル | 通知のタイトルを示します。 |
notification.body |
通知テキスト | 通知の本文テキストを示します。 |
data |
カスタムデータ | 定義した Key-Value ペア。これらのペアは、処理するアプリのデータ ペイロードとして配信されます。 |
メッセージの配信を決定するキーには次のものが含まれます。
キー | コンソール フィールドのラベル | 説明 |
---|---|---|
sound |
通知音 |
デバイスが通知を受信したときに再生する通知音を示します。 |
time_to_live |
有効期限 | このパラメータでは、デバイスがオフラインの場合にメッセージを FCM のストレージに保持する期間(秒単位)を指定します。詳細については、メッセージの有効期間の設定をご覧ください。 |
監査ログ
Firebase サービスは、「誰がいつどこで何をしたか」を調べるために役立つ監査ログを記録します。これらは Cloud 監査ログであり、Firebase プロジェクトに接続されている GCP プロジェクトの一部として提供されます。各 Firebase プロジェクトで記録されるのは、そのプロジェクト内に直接存在するリソースの監査ログのみです。
Cloud 監査ログの概要については、Cloud 監査ログをご覧ください。Cloud 監査ログの詳細については、監査ログについてをご覧ください。
Cloud 監査ログでは、GCP プロジェクトごとにデータアクセス監査ログが維持されます。
Firebase Notifications コンソールでは、明示的に有効にした場合に限り、データアクセス監査ログが書き込まれます。データアクセス監査ログには、リソースの構成やメタデータを読み取る API 呼び出しや、ユーザー提供のリソースデータの作成、変更、読み取りを行うユーザー主導の API 呼び出しが含まれます。データアクセス監査ログは、一般公開されているリソース(すべてのユーザーまたは認証済みのすべてのユーザーが利用可能)や、GCP にログインせずにアクセスできるリソースのデータアクセス オペレーションを記録しません。
監査対象のオペレーション
次の表は、Firebase Notifications コンソールの各監査ログタイプに対応するコンソール操作(およびタイプ名)をまとめたものです。コンソール操作でタイプ名を使用すると、特定のログを検索できます。
監査ログのカテゴリ | Firebase Notifications コンソール操作 | タイプ名(UI でログを検索する場合に使用) |
---|---|---|
データアクセス ログ(DATA_READ) | キャンペーンを取得する | GetCampaign |
データアクセス ログ(DATA_READ) | キャンペーンのリストを取得する | ListCampaign |
データアクセス ログ(DATA_READ) | ABT テスト通知から情報を取得する | LegacyGetRollout |
データアクセス ログ(DATA_READ) | ターゲティングの候補を取得する | GetAudiences |
データアクセス ログ(DATA_READ) | FCM の統計情報(送信済み / 既読 / 配信済み / 変換済みの数)を取得する | GetFcmStats |
データアクセス ログ(DATA_READ) | 期間とプロジェクトのアナリティクス ラベルのリストを取得する | GetAnalyticsLabelList |
データアクセス ログ(DATA_WRITE) | キャンペーンを作成する | CreateCampaign |
データアクセス ログ(DATA_WRITE) | キャンペーンを削除する | DeleteCampaign |
データアクセス ログ(DATA_WRITE) | キャンペーンを更新する | UpdateCampaign |
データアクセス ログ(DATA_WRITE) | ABT からロールアウトを作成する | LegacyCreateRollout |
監査ログ形式
Stackdriver Logging でログビューア、Stackdriver Logging API、Cloud SDK を使用して表示できる監査ログエントリには、次のオブジェクトがあります。
ログエントリ自体。
LogEntry
型のオブジェクトです。次のようなフィールドが有用です。logName
: プロジェクト ID と監査ログのタイプを保持します。resource
: 監査対象オペレーションのターゲットを保持します。timeStamp
: 監査対象オペレーションの時刻を保持します。protoPayload
: 監査対象情報を保持します。
監査ログデータ。ログエントリの
protoPayload
フィールドに保持されるAuditLog
オブジェクトです。サービス固有の監査情報(オプション)。
AuditLog
オブジェクトのserviceData
フィールドに保持されるサービス固有のオブジェクトです。詳しくは、サービス固有の監査データをご覧ください。
これらのオブジェクトのその他のフィールドと、それらを解釈する方法については、監査ログについてをご覧ください。
ログ名
Cloud 監査ログのリソース名は、監査ログを所有するプロジェクトまたは他のエンティティを表します。たとえば、次のログ名はプロジェクトのデータアクセス監査ログを表しています。
projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access
サービス名
Firebase Notifications コンソールの監査ログでは、サービス名 gcmcontextualcampaign-pa.googleapis.com
が使用されます。
ロギング サービスの詳細については、サービスとリソースのマッピングをご覧ください。
リソースタイプ
Firebase Notifications コンソールの監査ログでは、すべての監査ログに対してリソースタイプ audited_resource
が使用されます。
一覧については、モニタリング対象リソースタイプをご覧ください。
監査ログの有効化
データアクセス監査ログはデフォルトで無効になっており、明示的に有効にしない限り書き込まれません(例外は BigQuery のデータアクセス監査ログで、これは無効にすることができません)。
データアクセス監査ログの一部または全部を有効にする方法については、データアクセス ログの構成をご覧ください。
データアクセス監査ログを有効にすると、stackdriver_name_short のログの料金に影響する可能性があります。このページの料金を確認してください。
監査ログに関する権限
監査ログを表示またはエクスポートできるかは、Cloud Identity and Access Management の権限と役割によって決まります。ログはプロジェクト内またはその他の一部のエンティティ(組織、フォルダ、請求先アカウントなど)内に存在します。詳しくは、役割についてをご覧ください。
管理アクティビティ監査ログを表示するには、その監査ログが存在するプロジェクト内で次のいずれかの Cloud IAM 役割を持っている必要があります。
- プロジェクト オーナー、プロジェクト編集者、またはプロジェクト閲覧者。
- Logging のログ閲覧者の役割。
- カスタムの Cloud IAM の役割(Cloud IAM の
logging.logEntries.list
権限が付与されていること)。
データアクセス監査ログを表示するには、監査ログを含むプロジェクト内でユーザーが次のいずれかの役割を持っている必要があります。
- プロジェクト オーナー。
- Logging のプライベート ログ閲覧者の役割。
- カスタムの Cloud IAM の役割(Cloud IAM の
logging.privateLogEntries.list
権限が付与されていること)。
ログの表示
監査ログエントリを表示する方法はいくつかあります。
基本ビューア
GCP Console でログビューアの基本的なインターフェースを使用して、監査ログエントリを取得できます。手順は次のとおりです。
GCP Console の [Stackdriver Logging] > [ログ](ログビューア)ページに移動します。
ページの上部で既存の GCP プロジェクトを選択するか、新しいプロジェクトを作成します。
最初のプルダウン メニューで、監査ログを表示するリソースタイプを選択します。特定のリソースを選択するか、
Global
を指定してすべてのリソースを選択できます。2 番目のプルダウン メニューで、表示するログタイプを選択します(データアクセス監査ログの場合は
data_access
)。これらのオプションがどれも表示されない場合は、そのタイプの監査ログはプロジェクトに存在しません。
特定のタイプのログを検索するには、そのタイプ名でフィルタします。たとえば、キャンペーンの作成に関連するログの場合は、CreateCampaign でフィルタできます。
高度なビューア
GCP Console でログビューアの高度なインターフェースを使用して、監査ログエントリを取得できます。手順は次のとおりです。
GCP Console の [Stackdriver Logging] > [ログ](ログビューア)ページに移動します。
ページの上部で既存の GCP プロジェクトを選択するか、新しいプロジェクトを作成します。
最初のプルダウン メニューで、監査ログを表示するリソースタイプを選択します。特定のリソースを選択するか、
Global
を指定してすべてのリソースを選択できます。検索フィルタ ボックスの右端にあるプルダウン矢印(▼)をクリックして、[高度なフィルタに変換] を選択します。
表示するログエントリを詳細に指定するフィルタを作成します。 プロジェクト内のすべての監査ログを取得するには、次のフィルタを追加します。それぞれのログ名の中で有効な
[PROJECT_ID]
を指定します。logName = ("projects/[PROJECT_ID]logs/cloudaudit.googleapis.com%2Fdata_access")
フィルタの詳細については、高度なログフィルタをご覧ください。
API
Stackdriver Logging API を使用して監査ログエントリを表示するには:
entries.list
メソッドのドキュメント内の [Try this API](この API を試す)セクションに移動します。[Try this API] フォームのリクエストの本文に、次のコードを入力します。こちらの事前入力されたフォームをクリックするとリクエストの本文が自動的に入力されますが、それぞれのログ名に有効な
[PROJECT_ID]
を指定する必要があります。{ "resourceNames": [ "projects/[PROJECT_ID]" ], "pageSize": 5, "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)" }
[Execute] をクリックします。
フィルタの詳細については、高度なログフィルタをご覧ください。
SDK
Cloud SDK を使用してログエントリを読み取るには、次のコマンドを実行します。それぞれのログ名の中で有効な [PROJECT_ID]
を指定します。
gcloud logging read "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
Cloud SDK の使用の詳細については、ログエントリの読み取りをご覧ください。
監査ログエントリのサンプルと、その中に記載されている最も重要な情報を見つける方法については、監査ログについてをご覧ください。
監査ログのエクスポート
監査ログは、他の種類のログをエクスポートする場合と同じ方法でエクスポートできます。ログをエクスポートする方法の詳細については、ログのエクスポートをご覧ください。監査ログのエクスポートに関する応用例の一部を以下に示します。
監査ログを長期間保持する、またはより強力な検索機能を使用するには、監査ログのコピーを Google Cloud Storage、BigQuery、Google Cloud Pub/Sub にエクスポートします。Cloud Pub/Sub を使用すると、他のアプリケーション、他のリポジトリ、サードパーティ製品にエクスポートできます。
組織全体の監査ログを管理するには、組織内の一部またはすべてのプロジェクトからログをエクスポートできる集約エクスポート シンクを作成します。
有効にしたデータアクセス監査ログが原因でプロジェクトのログ割り当て量を超過した場合は、データアクセス監査ログをエクスポートして Logging から除外できます。詳しくは、ログの除外をご覧ください。
料金
Stackdriver Logging で常に生成され、無効にできない監査ログ(すべての管理アクティビティの監査ログを含む)は無料です。
明示的にリクエストしたデータアクセス監査ログについては課金されます。
監査ログの料金の詳細については、Stackdriver の料金をご覧ください。