|

2024-11-11

Tips

AppSheetとLooker Studioをシームレスに連携してデータを可視化する方法

Looker StudioAppSheet

AppSheetとLookerStudioのシームレスな連携

皆さん、AppSheet使ってますか?

普段は既存のデータの利活用(可視化や施策の実行)を中心にコンサルティングや実装を支援させていただいていますが、今回データを蓄積するところから提案をさせていただく機会があり、蓄積した後のデータの利活用も見据え、今流行りのAppSheetを活用してデータをできるだけクリーンかつ構造化して蓄積する、ということに挑戦してみました。

 

いやぁ、すごいですね。AppSheet。

モバイルファーストのUIでPCのブラウザだと正直使いにくそう・・・と勝手なイメージを持っていましたが、今年の夏にデスクトップモードがGAになり、これがまた良くできていて、利活用シーンが一気に広がった印象です。

 

ただ、チャートなどを用いたデータ可視化に関してはまだまだ発展途上で必要最低限の機能しか提供されていないので、餅は餅屋、データの入力や管理はAppSheetで、可視化はBIツールでという形で現時点ではツールをうまく使い分けるのが良さそうです。今回はLooker Studioを採用しましたが、AppSheetとLooker Studioは近い内にいい感じで統合されていくような気がしています。

 

この記事では、AppSheetとLooker Studioを連携してデータを可視化する際の痒いところに手を届かせるワークアラウンドをご紹介させていただきます!

 

AppSheetとLooker Studioのシンプルな連携方法

前提

  • Googleスプレッドシートをデータソースとしてアプリを構築

  • AppSheetにLooker Studioを接続してレポートを構築

この2つをいい感じに連携させよう、というのが今回の目的です。

 

どうやって連携するか?

当初、管理も可視化もできれば一箇所で完結したいよなと思い、一番に考えたのがLooker Studioで構築したレポートのiFrameをAppSheet内にembedできないかということでした。が、すぐにAppSheetにはiFrameの埋め込みはできないことが判明しました。(逆にAppSheetをiFrameでLooker Studioに埋め込むことはできます。)

仕方ないので、アプリ内にLooker Studioを開くリンクボタンを設置する方向で考えます。

 

1.新規で Actions を作成し、Do this は External: go to a website を選択。 image

 

2.Target に構築したLooker Studioの共有URLを設定

 

3.view の設定で作成した Actions を追加

 

たったこれだけでアプリ内にLooker Studioのレポートを開くボタンが設置できました。

ノーコード万歳!

 

AppSheetとLooker Studioの一歩進んだ連携方法

ただ上記のやり方では単にLookerStudioで構築したレポートのデフォルトの画面が開くだけで、アプリ側で参照している情報でフィルタされたグラフを表示したい(こういった要望はかなり多いと思います)、といった際にはレポートを開いた後に、わざわざ手動でLooker Studioのコントロール(フィルタという呼び方の方が一般的かと思います)の値を設定しなければなりません。

 

このようなケースにおいて、データソースがBigqueryの場合はLooker Studioのカスタムクエリとパラメータを使うことで課題が解決できます。具体的にはAppSheetのActionsでリンク先のURLを指定する際に指定の形式でURLパラメータを付与することで、特定のデータのみにフィルタされたレポートを直接開くことができます。が、残念ながら今回はデータソースにスプレッドシートを採用しているためこの方法は使えません。

 

参考URL:カスタムクエリでパラメータを使用する - Looker Studioのヘルプ

https://support.google.com/looker-studio/answer/10588439?hl=ja

 

参考URL:オーバーライド可能な設定パラメータ  |  Community Connectors  |  Google for Developers https://developers.google.com/looker-studio/connector/data-source-parameters?hl=ja#set_url_parameters

 

今回ばかりは成すすべなしか・・・と諦めかけたとき、Looker Studioのカスタムブックマークリンクの存在を思い出しました。

カスタムブックマークリンクを有効にすると、閲覧者のフィルタ設定がパラメータとしてレポートの URL に追加され、このリンクをブックマークすることで閲覧者がいつでも自分がカスタマイズしたビューでデータを表示できる。という便利機能です。

 

参考URL:レポートの設定を含むカスタム ブックマーク リンクを作成する - Looker Studioのヘルプ

https://support.google.com/looker-studio/answer/7664330?hl=ja

 

フィルタの値がURLパラメータに設定されるのならば、パラメータの値を調整すれば任意のフィルタの値を設定したURLが作成できるのでは?ということで検証を開始しました。

 

カスタムブックマークリンクを活用したLooker Studioのフィルタの値の操作

まずはサンプルのデータ・アプリ・レポートを用意します。

 

スプレッドシートでデータを準備して、アプリを作成します。 image

 

続いて、作成したアプリをLooker Studioにコネクターを利用して接続します。

ここはスプレッドシートに直接接続でも大丈夫ですが、AppSheetで追加したバーチャルカラムは使えないので可視化の要件に合わせて選択してください。 image

 

作成したアプリとテーブルを選択して追加をクリックして接続。 image

 

あっという間に成績推移のレポートができあがりました。 image

 

レポートの編集画面で ファイル > レポート設定 をクリックし、 image

 

レポート設定パネルのカスタムブックマークリンクのチェックボックスをオンにします。 image

 

これにてLooker Studio側の準備は完了しました。

 

レポートの表示画面に戻り、URLを確認してみると、

何もフィルタをかけていない状態だと下記のようなURLが表示されていると思います。

https://lookerstudio.google.com/u/0/reporting/{レポートのID}/page/{ページのID}

 

名前のコントロール(フィルタ)でライオンさんを選択すると・・・ image

 

URLの末尾にURLパラメータが追加されました!

 

このURLをブックマークに保存しておけば、いつでもすぐにライオンさんの成績が確認できる、というのがカスタムブックマークリンクの本来の使い方です。

 

今回実際に付与されたURLパラメータがこちらです。

?params=%7B%22df2%22:%22include%25EE%2580%25800%25EE%2580%2580IN%25EE%2580%2580%25E3%2583%25A9%25E3%2582%25A4%25E3%2582%25AA%25E3%2583%25B3%22%7D

 

このパラメータをデコードすると・・・

?params={"df2":"include%EE%80%800%EE%80%80IN%EE%80%80%E3%83%A9%E3%82%A4%E3%82%AA%E3%83%B3"}

何やらカスタムクエリにパラメータ値を渡す際に付与するURLパラメータと同じようなJSON配列が見えてきましたね。

 

ここで繰り返し出てくる%EE%80%80 という文字列ですが、これはUTF-8 でエンコードされた U+E000 というUnicode文字で、アプリケーショの制御目的で使われることが多いそうです。

 

これをもう一度デコードすると・・・

?params={df2:include0INライオン}

 

隠れていたライオンさんが姿を表しました🦁

 

今回作成したレポートで名前のコントロールを適用した際には、以下のような構造のURLパラメータが付与されることが分かりました。

?params=%7B%22df2%22:%22include%25EE%2580%25800%25EE%2580%2580IN%25EE%2580%2580% + 2回エンコードした名前 + %22%7D

 

続いて、AppSheet側でレポートを開くためのボタンを作成していきます。

 

AppSheetの編集画面でActionsの+ボタンをクリック image

 

Create a new actionをクリック image

 

名前をつけて、Do this は External: go to a website を選択 image

 

TargetはCONCATENATE関数とENCODEURL関数を使って、パラメータ付きのURLを構築します。

今回は名前でフィルタしたいので、[名前]を2回エンコードしています。

CONCATENATE( "https://lookerstudio.google.com/u/0/reporting/{レポートID}/page/{ページID}?params=%7B%22df2%22:%22include%25EE%2580%25800%25EE%2580%2580IN%25EE%2580%2580", ENCODEURL(ENCODEURL([名前])), "%22%7D" )

 

PositionはPrimary、Display nameは成績推移、Action iconを選択し保存すると image

 

viewにボタンが表示されるので、試しにイヌさんの個別成績の画面でボタンを押してみると・・・🐕️ image

 

名前がイヌさんでフィルタされたLooker Studioのレポートが開きました🎉 image

 

開いたあとに自分でフィルタの値を設定しないといけない一手間を無くすだけで、格段にUXが向上しましたね!

 

まとめ

今回は、Looker Studioのカスタムブックマークリンクをハックして、AppSheetからフィルタ値を動的に設定してレポートを開く方法を紹介しました。

ただし、公式ドキュメントなどには載っていない方法なので、今後カスタムブックマークリンクの仕様が変わって使えなくなるかもしれない、という点はご承知おきください。

注意点として、フィルタをかけたときに追加されるパラメータのJSON配列の中身はレポートの構成や使用するフィルタによって変わってくるので、ご自身でパラメータをデコードして確認をお願いします。

ほんの一手間で劇的なUXの向上を実現できるので、ぜひ試してみてください!

 


この記事の著者

プロフィール画像

石田 直之

朝日放送グループホールディングス株式会社 DX・メディアデザイン局 デジタル・メディアチーム

ABCグループ各社のデータ分析・利活用を中心としたデジタルマーケティングに関するプロジェクトの推進や、プライバシーガバナンスの構築を担当。米国PMI認定PMP、情報処理安全確保支援士。