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アナリティクスにビーコンを送信できる、というわけです。
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です。
必須でない欄も念のため入れておくと認識率が上がると思います。たまに「テニヲハ」の付けた付けないを忘れてしまうときもあるので。
Webhooks の設定
Webhooksは webにアクセスさせるための項目です。ですから、基本的にはヒットビルダーで作ったURLを入力すればOKです。
送信する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アナリティクス公式ツール。
>>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してみませんか。
・ ・ ・ ・ ・
>>安っ!アマゾンで半額以下になっている食品タイムセール
セール特設ページを見る
↓↓↓無料のニュースレターを配信中です