GoogleアナリティクスでGoogle Homeを計測する方法

Google HomeをGoogleアナリティクスで計測
Googleアナリティクスのメジャメントプロトコルと、イフトのウェブフックスを使いますと、Google Homeのボイスを、特定ボイス限定ですが、Googleアナリティクスで計測できます。

こんにちは、Googleアナリティクス大好きカグア!です。今回は IoT 解析をしてみました。とはいってもホント簡単ですよ。

本記事では、Measurement Protocolと、IFTTTでのビーコン送信について掘り下げて解説しています。

関連記事
>>「ヒットがありません」とGoogleアナリティクスの通知を解決する方法
>>Web制作者がgtag.jsで知っておきたいGoogleアナリティクスの今
>>Google Data Studio 利用可能ディメンション&指標一覧541個

Google HomeをGoogleアナリティクス計測

Googleアナリティクスで、Google Homeを計測するというのは、こんな感じです。Google Homeがしゃべると、Googleアナリティクスのリアルタイムがピコーン!ってなるのがわかるかと思います。
https://www.youtube.com/watch?v=LJ_BVwOWDEE

GoogleアナリティクスのMeasurement Protocol で、イベント発生させています。イベントですから、コンバージョン計測にも使えるかと思います。

例えば、リアルで「Google Homeに話してくれたら半額クーポンをプレゼント!」みたいなキャンペーンをやったときに、これで計測できますよね。

Google Homeが喋ったあと、だいたい4~5秒後にイベントが反応してくれてる感じです。

では早速、Google HomeとGoogleアナリティクスの連携方法を見ていきましょう。

声をイベントトラッキングで計測する方法

Google Home 計測の仕組み

仕組みはとても簡単です。イフトというWebサービス連携サービスを使います。これを使いますと、Google Home のGoogle Assistant API から音声の挙動を確認でき、それをトリガーにWebアクセス(Webhooks)ができるのです。そのWebアクセスに、GoogleアナリティクスのMeasurement Protocol を使えば、Googleアナリティクスにビーコンを送信できる、というわけです。
イフトデIoTを連携

Webhooksでのウェブアクセスは、さすがにJavaScriptは動きません。つまりそのままのアクセスではGoogleアナリティクスは動かないのです。そこで、URLを叩きさえすれば、Googleアナリティクスにビーコンを送信できるMeasurement Protocolを使うというわけです。

メジャメントプロトコルのヒットビルダー(ペイロード=URLで使うパラメータを生成)はこちらです。とくにクライアントIDは、ランダムな UUID(バージョン 4)である必要があるため、Hit Builder を使うほうが無難です。
>>Hit Builder — Google Analytics Demos & Tools
ヒットビルダー

Measurement Protocolの詳しいパラメーターは公式ドキュメントで確認できます。こちらで、参照元やメディアなどペイロードに必要なパラメーター名を調べます。
>>Measurement Protocol のパラメータ リファレンス  |  アナリティクス Measurement Protocol  |  Google Developers

それでは、ヒットビルダーで実際に作りました、Measurement Protocol のURLがこちらになります。

Hit Builder で実際につくったURL

これをWebアクセスしますと、Googleアナリティクスに直接「イベント発生したよ」とシグナルを送信できます。

  • ヒットビルダーで v=1~~~ というペイロードを作る
  • アクセスするのはhttps://www.google-analytics.com/collect
  • URLはエンコードしておく

これを、イフトのWebHooks にしゃべらせれば良いとなります。それでは、イフトについてご紹介しましょう。

イフトとはサービス連携サービス

例えば、Twitterに投稿したらFacebookにも同じ内容と投稿する、GPSで自宅圏内に入ったらスマホのWi-Fiをオンにする、ITサービスにおいて~したら~する、という連携をさせられるようにするサービスがIFTTT(イフト)です。
>>Learn how IFTTT works – IFTTT
イフト

現在、さまざまなサービスと連携がされていて、しかも無料で使え、ユーザーの作ったサービス連携(アプレット)も豊富、ということで人気を博しています。ここに、Google Homeを司る=Google Assistant と、ウェブアクセスをしてくれる=Webhooks がありますので、それらを使うというわけです。

イフトはIoT家電などのコントロールをできるサービスや機器は非常に多いですので、Google Homeを持っていない人も、Googleアナリティクスに興味がないという人でも、ぜひ使ってみて欲しいサービスです。登録や利用は無料から使えます。

それではイフトにログインし、早速アプレットを作っていきましょう。IFTTTにログイン後、画面右上の「New Applet」からすぐに作り始められます。

IFTTTを使ってGoogle Homeを計測する

Google Assistant の設定

イフトのアプレット作成では必ず2つのサービスを連携させます。~したら~せよ、の2つです。IF~THEN~、と置き換えられます。

ではまず「IF(もし~したら)」のトリガーで、Google Assistant を設定します。以下のように、どう呼んだとき、どう言わせるかなどを、入力していけばOKです。
Google Assistant の設定

必須でない欄も念のため入れておくと認識率が上がると思います。たまに「テニヲハ」の付けた付けないを忘れてしまうときもあるので。

Webhooks の設定

Webhooksは webにアクセスさせるための項目です。ですから、基本的にはヒットビルダーで作ったURLを入力すればOKです。
webhooksの設定

送信するURLによってはPOSTでセキュリティを上げたほうが良いわけですが、とりあえず今回はGETで大丈夫です。

・・・と、ここまで書くとさくっとできそうな感じですよね。

ヒットビルダーでペイロードを作って「Send hit to Google Analytics」としてリアルタイムがピコーン!ってなると、普通にそれが使えるものと思いますよね。

ですよね(泣)!

でも実は、現実はそんなに甘くなかったのです・・・。

Measurement Protocolがうまく送れない

一般的なWebサービスの連携であれば、ここまでの設定でふつうにうまくいきます。しかし、今回は何箇所かトラブルに遭遇しましたので、共有します。ここまで苦労するとは思いませんでした・・・。
苦しい

ヒットビルダーで出力されるURLが違う

Measurement Protocol ヒットビルダーで作るペイロード(URLの?より右)は、そのままですとペイロードのままです。Googleアナリティクスにシグナルを送れません。

前述のように、https://www.google-analytics.com/collect に受け渡してこそ、Webアクセスと同等のビーコンが送られます。

そこで、ヒットビルダーにある「Copy sharable link to hit」をクリックしますと、以下にも それらを含む「シェア可能な」URLが出そうな雰囲気を醸し出しています。

しかし、なんとそれは https://www.google-analytics.com/collect ではなく、https://ga-dev-tools.appspot.com/hit-builder/ を含むURLなのです。

そもそも、ヒットビルダーのページに「https://www.google-analytics.com/collect」のつづりは1文字も出てきませんので、自分でドキュメントを見て見つける、というところも時間がかかったところ。

回避策:ヒットビルダーではペイロードだけをコピーし、自分で https://www.google-analytics.com/collect? をつける。

IFTTTのWebhooks にタイポがある

IFTTTでWebhooksを選び、アクセスしたいURLをそこに入力します。しかし、そこに「?」つきのURLを入れてしまいますと、おそらく内部的にすでに?が使われていて、せっかく貼り付けたURLの?より右が消えてしまうのです。

エスケープ(処理をさせない)させればよいのではと思い、そこに書かれている <<<>>> で囲いなさいとするも、保存をしますと、>> が残ったまま!というバグ。

その後も、<>、<<>>、< など試すのですが、どうにもうまくいきません。

ですから、自分でエンコードして変換したものを貼り付けて、エスケープはしないことにしました。

また、いろいろな記事で POST を使う文献が多くみつかるのですが、どうもエンコードしたURLを貼り付けた場合は、POST+application/x-www-form-urlencoded ではないようで、これもいろいろ試して GET で落ち着きました。

エンコードもいくつか種類があるのですが、こちらが結果、最適なエンコードを出力してくれました。
>>URLエンコード・デコード|日本語URLをサクッと変換 | すぐに使える便利なWEBツール | Tech-Unlimited

回避策:URLはエンコードしたものを貼り付け、送信にはGETを使う。

IFTTTのアプレットが再編集できない

追記:翌日試したらできました。記事執筆時たまたまだったのかもしれません。

これが一番ハマッたかもです。作ったアプレットを「歯車マーク」を押して、文字修正などできる状態になり、画面したに「Save」とかあったら、普通に保存されてるって考えるじゃないですかー。

残念ながら、まったく内容は変わっておらず、保存できていない、ということでした。

ですので、上記のトラブルにハマりつつ、最適な設定を試すことを繰り返す、それらもすべて、「新規作成」ダメ!DELETE!「新規作成」ダメ!DELETE!のループをしてました。こういうサービスもあるのですね。

回避策:諦めて「新規作成」ダメ!DELETE!のループを高速に行う。

エンコード、Measurement Protocol をたたくURL、IFTTTの不保存などを乗り越えて、お届けした設定が今回のこれになります。

今回は、Googleアナリティクスのリアルタイムが、ピコーン!となったとき、ほんと久しぶりに「キタ━(゚∀゚)━!!」な気持ちになりました。みなさんも気をつけましょう。でも、

声の計測、楽しい!

Google Home、ほんとおすすめですよ!

お疲れ様です。

Google Home Mini チョーク (GA00210JP)

Google Homeだよ
楽天で詳しく見る

TSUKUMOで詳しく見る

関連情報リンク

Googleアナリティクス公式ツール。
>>Hit Builder — Google Analytics Demos & Tools

イフト。
>>Discover IFTTT and Applets – IFTTT

Measurement Protocolの公式ドキュメント。
>>Measurement Protocol のリファレンス  |  アナリティクス Measurement Protocol  |  Google Developers

%3Fみたいなエンコーディング変換一覧表はこちら。
>>TECHNICAL MANUAL – ASCII文字とURLエンコードの対応表

便利なエンコード、デコードツール。
>>URLエンコード・デコード|日本語URLをサクッと変換 | すぐに使える便利なWEBツール | Tech-Unlimited

エンティティ化とはまた違います。
>>HTMLエンティティ化

もうPHPにアクセスさせて、そのPHPでMeasurement Protocolたたけばいんじゃね?って自暴自棄にもなった瞬間もありました。
>>[メモ] PHPのfile_get_contentsを、HTTPリクエストに使うときのTIPS ::ハブろぐ

こちらもwebhooks体験ログ。feedのURLをエンコードしたって書いてありました。<<<と>>>で囲うはやらなかったみたいです。
>>WebhookからPubSubHubbubへの翻訳 – Hail2u

まとめ

Measurement Protocolを使って、IFTTTのWebhooksでコールすれば、誰でも簡単にGoogle HomeをGoogleアナリティクスで計測することが可能です(ざっくりとですが)。

ただ、IFTTTやMeasurement Protocolの公式ツールなど、すべてのツールが理想通りに動くとは限らない、というところがまた面白いところですよね。

みなさんも、何かIoT絡みでいろいろとMeasurement Protocolしてみませんか。

・ ・ ・ ・ ・

>>安っ!アマゾンで半額以下になっている食品タイムセール
セール特設ページを見る

↓↓↓無料のニュースレターを配信中です

グーグルホーム