サービスIDが正しく取得できない
サービスIDが正しく計測できない場合は、主に以下のような原因が考えられます。
※ 「全てのユーザにおいて正しく計測できない場合」、および「一部のユーザや行動でだけ正しく計測できない場合」の両方について扱っています
USERGRAMの独自IDが表示される場合
ユーザ一覧画面の「ユーザ」欄では、計測タグによりサービス ID が計測できたユーザについてはサービス ID が表示されます。
しかし、全く値が送信されなかったり(※空文字列での送信含む)、"undefined" / "●●●●" といった明らかに不適切な値が送信されたりした場合、いずれもサービス ID の計測は行われず、これらのユーザには USERGRAM が独自で設定した ID が表示されるようになります。
これらの独自設定された ID は行動観察画面 / ユーザ一覧画面にて薄いグレーで表示されますから、もし意図せずそういった表示になっている場合は、以下のようなポイントを確認してください。
1) 計測タグを設置後、サービス ID を埋め込む処理を実装していない
USERGRAM でサービスIDを取得するためには、計測タグをそのまま設置するだけではなく、取得したい値を埋め込むために貴社サーバで追加の実装を行う必要があります。
これら実装が行われていない場合、値が空のままか、もしくは値の埋め込み場所を示す "●●●●" という文字列がそのままサービスID値として渡されてしまい、サービス ID の計測に失敗します。
そのような場合は、 こちらのページからマニュアル「【USERGRAM】計測タグの設置と動作確認方法.pdf」をダウンロードし、作業の詳細を確認の上でご対応ください。
2) 計測タグに、取得したいサービス ID を埋め込むための記述自体が無い
計測タグにサービス ID を取得するための記述自体が含まれていない場合、その計測タグへとサービス ID を埋め込む実装を行うことが出来ませんから、 1) と同様にサービス ID の計測に失敗します。
この場合は、 USERGRAM の管理画面から、 「サービス ID」にチェックを入れたうえで該当の計測タグを取り出し直し、設置をし直してください。 その後、 1) と同様に 貴社サーバ上の実装が必要です。
※サービス ID なしで計測タグを設置した後、追加でサービス ID の計測を始めたい場合は、安全のために計測タグの一部を書き換えるのではなく、タグ全体を上記の手順で取り出し直してください
3) 貴社サーバから空の値が渡されている
USERGRAM の計測タグは、 埋め込まれた値をそのまま送信しますので、空の値が渡された場合はそのまま空の値が渡され、サービス ID の計測に失敗してしまいます。
貴社サーバの処理に問題があり、サービスIDの埋め込み時に 空の値を出力してしまう場合が存在しないかを確認してください。
4) 無効なサービス ID 扱いになっている
同一のサービス ID で短期間に大量のアクセスがあった場合、USERGRAM ではそのサービス ID を "無効なサービス ID" とみなすようにし、その ID での検索ならびにデータ計測を行わないようにしております。
貴社サーバの処理に問題があり、同一サービス ID を誤って埋め込むような場合が存在しないかを確認してください。
5) タグの変更不可部分を変更している
サービス ID の埋め込みを行う際は、取り出した計測タグ内の「●●●●」の部分を計測するサービス ID の値で置き換えていただく必要がございますが、その他の部分に変更を加える必要はございません。
例えば、サービス ID を格納する配列の key 名 (serviceId) を書き換えてしまいますと、サービス ID が正しく取得できなくなりますので、「●●●●」以外の部分は変更しないようご注意ください。
6) タグマネージャの設定が正しく出来ていない
タグマネージャーを使用して USERGRAM の計測タグを配信している場合、 計測タグへとサービスID値を直接埋め込むことが出来ないため、タグマネージャーの設定を介した埋め込みが必要となります。
そのため、仮に貴社サーバからの値が正しく吐き出されていても、タグマネージャー上の設定が正しく出来てないと、値は計測タグに渡されること無く、空のままデータが送信されてしまいます。
タグマネージャーの設定に関しては、弊社では詳細のサポートは出来かねますが、 Yahoo! タグマネージャー及び Google タグマネージャでの設定例については、 こちらのページで提供している両タグマネージャー用の簡易マニュアルに設定例の記載がありますので、必要に応じてご参照の上で設定を行ってください。
7) JavaScript のソースコード上で定義されていない変数を参照している
計測タグへのサービスID値の埋め込みに JavaScript を使用している、あるいはタグマネージャーを介して JavaScript 変数を参照している場合に、定義されていない変数を参照しサービスID値に“undefined”という値が取得されてしまいます。
具体的には、以下のような状態になっていないかを確認してください。
貴社サーバの実装で、必要な JavaScript 変数を出力していない (場合がある)
計測タグやタグマネージャーから JavaScript 変数を参照する設定が正しくても、その 参照先の変数を貴社サーバが出力していない場合、未定義の変数への参照となってしまいます。
特に、貴社サーバ上で「全く実装が行われていない」場合だけでなく、 「条件によっては、変数が出力されない」ような場合が無いかについては、よく注意してください。
定義している変数名と、それを参照している変数名が異なっている
計測タグやタグマネージャーから JavaScript 変数を参照する実装と、貴社サーバからの変数を出力する実装と、両者が適切に行われていても、 互いの変数名が一致しない場合、未定義の変数への参照となってしまいます。
変数名の 「細かな綴り」「大文字小文字」等がきちんと一致しているか、改めて確認してください。
参照する JavaScript 変数が、計測タグの設置・配信よりも後に定義されている
通常、 HTML 文書とそこに含まれる JavaScript コードは上から順番に実行されていくため、もしも計測タグ、あるいは計測タグを配信するためのタグマネージャーのコンテナタグが 上に、計測したいサービスIDの変数定義が下に存在してしまうと、「計測タグの発火時には、まだサービスIDの変数が存在しない」という状態になってしまいます。
特にタグマネージャーを使用している場合、一般にタグマネージャー自身の実行タイミングは非同期となるため、 「時々サービスIDが取得できる (変数の定義後のタイミングで計測タグが配信される) が、 "undefined" で取得される場合 (変数の定義が終わる前に計測タグが配信される) もある」という現象が発生することもあります。
必ず、 計測タグが実行されるよりも前に参照先の JavaScript 変数が定義されるようにしてください。
お客様実装の JavaScript の処理に異常が存在する
その他、何らかの複雑なお客様実装の JavaScript コードを経由してサービスIDを取得している場合、そのコードの途中で異常が存在することで、最終的な結果が “undefined” になってしまう場合があり得ます。
そういった実装をしている場合、改めてコードに異常が無いかを確認してください。
サービスIDが途中で切れて計測される場合
この場合、主に以下のような原因が考えられます。
1) サービスIDの文字数が 512 文字を超えている
USERGRAM 内部システムの仕様上、サービスIDの文字数は 512 文字( 文字の種類に拘らず)が上限となっています。そのため、これを超えてデータが送信されると、値は上限を超える部分を切り捨てられ、途中で切れたものが計測されます。上限を超える文字数を送信してしまっている場合は、上限に達しないようサービスIDを指定し直してください。
※サービスIDの文字数のカウント方法について 文字の種類に依らず、全角も半角も 1 文字としてカウントします (例えば、 "あいうabc" という値の場合 6 文字と数えます) 。
その他、何かしら想定しない固定文字列が表示される場合
この場合、主に以下のような原因が考えられます。
1) エラー値や意図しない値がサービスID値として設定されている
貴社サーバ側での埋め込み実装に失敗した結果、エラー値や意図しない値がサービスID値として記録されている可能性があります。
主には次のような例がありますが、他にも何か サーバ上での処理に問題が無いかを総合的に確認してください。
- JavaScript 変数を参照するとき、
variableName
と書くべきところを、"variableName"
とクォートで囲んでしまっている - 貴社サーバでのテンプレート処理がうまくいかず、
{$variable}
や%variable%
のようなサーバ上で動作するはずのテンプレート書式がそのまま記録されてしまっている