この記事は、Google Developers ブログからの再掲です。

編集者注: 投稿者の Romain Vialard さんは、Google デベロッパー エキスパートで、Google スプレッドシートのアドオン Yet Another Mail Merge のデベロッパーでもあります。


Google Apps スクリプト を使用すると、Google スプレッドシート、ドキュメント、フォーム用のアドオンを簡単に作成して公開できます。現在、アドオンは数百種類が公開されており、その多くを何十万ものユーザーが利用しています。どのような要素がユーザーを引き付けているのか、アドオンの利用者を増やすには何を改善すればいいかを知るには、Google アナリティクスが最適のツールです。


Cookie とユーザーの識別

アドオンは、Google スプレッドシート、ドキュメント、フォームの内部で動作し、ダイアログやサイドバーにコンテンツを表示することができます。このようなカスタム インターフェースは Google Apps スクリプト HTML Service によって実現されて、多少の制限はありますが、このサービスによってクライアント サイドの HTML、CSS、JS が提供されます。

制限の 1 つに、Cookie が永続的ではなくなるというものがあります。Google アナリティクスでは、ユーザーがダイアログやサイドバーを開くたびに、毎回新しいクライアント ID を使用して Cookie が作成されます。結果として、アナリティクスには、各セッションが新規ユーザーによって開始されたかのように表示され、セッション数とユーザー数がほとんど同じになってしまいます。



この状況には、localStorage を使用してクライアント ID を保存することで対処できます。これによって、Cookie を使用せずにユーザー情報を永続化できます。コードにこの変更を加えると、ユーザーに関する指標の精度が格段に向上します。

アドオンを実行するきっかけとして、トリガーや定期的なコード実行のほか、ドキュメントを開く、Google フォームに回答するなどのユーザー操作を指定できます。その場合、ダイアログやサイドバーが表示されないため、ユーザー操作に関するデータは、Google アナリティクス Measurement Protocol(このサービスのご利用に際してはこちらのポリシーをご確認ください)と Google Apps スクリプト の UrlFetch サービスを使用して、直接 Google アナリティクス サーバーに送信してください。

ユーザー操作を指定する場合は、クライアント ID も必要になります。私は Apps スクリプト の User Properties サービスを使用することをおすすめします。ウェブ上には、アナリティクスの呼び出しごとに一意のクライアント ID を生成する方法が多数紹介されています。ただし、ユーザー数を正確に把握することはできません。

アナリティクスの呼び出しにクライアントとサーバーの双方で同じクライアント ID を使用したい場合、クライアント側で生成されたクライアント ID をサーバーに送信することもできますが、現時点では、Google アナリティクスに用意されている User ID を使用するのが最適な手段です。クライアント ID はクライアントかデバイスを表したものですが、User ID はユーザーごとに一意の ID で、ユーザーが認証済みであるためアドオンで簡単に使用できます。User ID はサーバー側で生成し、ユーザー プロパティの 1 つとして保存しておき、アナリティクスの呼び出しの際に(クライアント側とサーバー側の両方で)再利用できます。


カスタム ディメンションとカスタム指標

アドオンでは通常、ページ ビューではなくイベント トラッキングが使用されます。イベント トラッキングでは、カテゴリ、アクション、ラベル、値に基づいて各イベントに多様なパラメータを設定できますが、カスタム ディメンションとカスタム指標を使用すると、さらに多くの情報を追加できます。

たとえば、Yet Another Mail Merge は、主にメールの送信に使用されているアドオンですが、利用状況を詳しく把握できるように、カスタム ディメンションを多数追加しています。これを使用して、新しいキャンペーン(一括メール送信)ごとに、ユーザーに関連付けられたデータ(無料ユーザーか有料ユーザーか、gmail.com ユーザーか Google for Work / Education ユーザーか、など)と、キャンペーンに関連付けられたデータ(メールのサイズ、メールのトラッキングが有効かどうか)を記録しています。このカスタム ディメンションをカスタムのレポートやダッシュボード内で再利用できます。



こうしたことをすべて活用することで、有用性の高いデータが取得できます。Yet Another Mail Merge では、2015 年 10 月まで、1 日あたり最大 100 件のメールを無料で送信できました。アナリティクスによると、1 回のキャンペーンで 50 件以上のメールを送信しているお客様のほとんどは、実際には送信メールが無料割り当て分の 100 件に達していましたが、有料プランへの切り替えは進みませんでした。

この分析情報を踏まえて、無料プランの上限を 1 日 50 件に減らすとともに、紹介プログラムを導入しました。このプログラムに参加したユーザーは無料分の割り当てを増やすことができます(料金は発生しませんが、ユーザーがユーザーを紹介してくれる点にメリットがあります)。この変更後、収益は大きく向上し、ユーザー数も増えました。



もちろん、Google アナリティクスを使用して、紹介プログラムの効率をトラッキングすることもできます。

アドオンの詳細な分析に役立つように、この記事で取り上げたツールに関するドキュメントから関連性の高いページをいくつかご紹介します。アプリの利用者の増加に役立てていただければ幸いです。

Google アナリティクス: localStorage を使用してクライアント ID を保存する
Google アナリティクス: Measurement Protocol
Apps スクリプト: UrlFetch サービス
Apps スクリプト: Properties サービス
Google アナリティクス: User ID
Google アナリティクス: イベント トラッキングについて
Google アナリティクス: カスタム ディメンション / 指標

投稿者: Romain Vialard、Google デベロッパー エキスパート。数年間の Google Apps コンサルタントの経験を経て、現在は Yet Another Mail Merge Form Publisher などのアドオンをはじめとする Google Apps ユーザー向けサービスに取り組んでいます。