Cloud Functions を使用して Google アナリティクスを拡張する

Google Analytics は、ユーザーによるアプリの利用状況の把握に役立つイベント レポートを提供します。Cloud Functions(第 1 世代)を使用すると、Apple デバイスまたは Android デバイスでログに記録されたコンバージョン イベントにアクセスし、それらのイベントに基づいて関数をトリガーできます。

Google Analytics 関数をトリガーする

Cloud FunctionsGoogle Analytics AnalyticsEvent をサポートしています。 このイベントは、ユーザー アクティビティでコンバージョン イベントが生成されるたびにトリガーされます。たとえば、in_app_purchase イベントが生成されるとトリガーされる関数を作成して、アプリ内購入が行われたことを示すことができます。functions.analytics.event() メソッドを使用して関数をトリガーする Analytics イベントを指定し、onLog() イベント ハンドラ内でイベントを処理する必要があります。

exports.sendCouponOnPurchase = functions.analytics.event('in_app_purchase').onLog((event) => {
  // ...
});

イベント属性にアクセスする

Analytics イベントごとに、関連するすべてのパラメータとユーザー プロパティにアクセスできます。これには、ユーザー、デバイス、アプリの情報や、イベントの地理情報が含まれます。パラメータとユーザー プロパティの全一覧については、functions.analytics のリファレンスをご覧ください。

こちらのサンプルに示す購入トリガー関数では、ユーザーの言語やイベントの値(valueInUSD)などのユーザー属性にアクセスできます。この 2 番目の属性を使用すると、そのイベントが価値の高いコンバージョン イベントかどうかをサンプル関数でテストし、有望な顧客に高価値のクーポンを送信するための判断材料にすることができます。

/**
 * After a user has completed a purchase, send them a coupon via FCM valid on their next purchase.
 */
exports.sendCouponOnPurchase = functions.analytics.event('in_app_purchase').onLog((event) => {
  const user = event.user;
  const uid = user.userId; // The user ID set via the setUserId API.
  const purchaseValue = event.valueInUSD; // Amount of the purchase in USD.
  const userLanguage = user.deviceInfo.userDefaultLanguage; // The user language in language-country format.

  // For purchases above 500 USD, we send a coupon of higher value.
  if (purchaseValue > 500) {
    return sendHighValueCouponViaFCM(uid, userLanguage);
  }
  return sendCouponViaFCM(uid, userLanguage);
});

次のステップ

Cloud Functions での Analytics イベントの処理方法については、Google Analytics のドキュメントfunctions.analytics のリファレンスをご覧ください。また、コードサンプル coupon-on-purchase を試すこともできます。