voxa-ga
Version:
Integrate Google Universal Analytics into your Alexa apps using the voxa framework
162 lines (138 loc) • 4.74 kB
Plain Text
Is the screenview the intent, or the state?
State
These really communicate what's happening in the app. Intents don't really do that
Intent
Timings may make a bit more sense this way
Both?
A rider that allows logging events
Send at the end of each request
How would we log intents?
How would we log states?
Config
=======
* Tracking code
* Debug
To Implement
=============
Done:
Responses per round-trip are logged as screens
Rider gives access to raw GA for transaction logging
Raw Intents
Raw States
Raw Slots
App version logging
Device capabilities
Start/end session control
locale logging
Rider for logging custom events
To Verfiy:
Exceptions
per-intent timings (from a state)
Docs
Not going to implement
========
* Ability to set geographical override. Could still do it manually via other params
* Making only intent logging interactive (since I can't see bounce metrics anywhere anyway)
if a user has linked their account into something or other
events from responses doc
Things we've seen before
* Logging custom events (pretty much on each reply)
* Logging exceptions
* Logging transactions (ordering)
* Setting a custom dimension (Formerly also for skill/AL separation)
* Session control for session start/end
Nice to add
=====
* Safety around parameters. Don't just log [object Object], give a warning when that is happening
* Detect device capabilities and put that in the models section
* Detect function name and version, send in the ds attribute? Or send it in the application tracking attribute.
* Ability to set the geographical override in skills that have a ZIP code
* ul, based on the request locale
* Document location URL to set our current state? Or maybe just the title?
* Only pageview events should be interactive. All other events are non-interactive
* timings: What are the categories?
* Know if the user has linked their account. Probably through acuisition channel? Or something else?
Can mobile apps do?
=========
Bounce rate. The user invokes a single intent, but nothing else
Language: Yes
To Know:
Hit type values
'pageview', 'screenview', 'event', 'transaction', 'item', 'social', 'exception', 'timing'.
{
"version": "1.0",
"session": {
"new": false,
"sessionId": "amzn1.echo-api.session.5a54e8c6-be67-4845-a20b-fd1803ecb40a",
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.230fbb7e-3d46-47fc-96df-ddd3a60a47f6"
},
"attributes": {
"modelData": {
"year": 1,
"population": 100,
"immigrants": 0,
"acres": 1000,
"bushels": 2800,
"totalDied": 0,
"percentPopDied": 0,
"acresCost": 26,
"command": {
"buy": 0,
"feed": 0,
"plant": 0
}
},
"reprompt": "Do you want to exit Hammurabi?",
"state": "exit",
"reply": {
"msgPath": "ExitQuery",
"state": "exit"
}
},
"user": {
"userId": "amzn1.ask.account.AGOTNNCGBTPGJGZ5JERNLK6PJ67FYFSHOJDGEIPZHFIO6RYHO636ODONN4B57HGGVLRCMTBOLFWJAEAMNMEU433CWPGUNM56WKOQTBEKHOZUZBJM7GHTTDNKEWWYTTMW55BGPALRTP2ZWNN3DJQAXLIP4ZVRQUPYXJNIH2VM7G76OORLRJ4Z7JUXOZWFAPMLX6NTQXQN3CTG37Q"
}
},
"context": {
"AudioPlayer": {
"playerActivity": "IDLE"
},
"System": {
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.230fbb7e-3d46-47fc-96df-ddd3a60a47f6"
},
"user": {
"userId": "amzn1.ask.account.AGOTNNCGBTPGJGZ5JERNLK6PJ67FYFSHOJDGEIPZHFIO6RYHO636ODONN4B57HGGVLRCMTBOLFWJAEAMNMEU433CWPGUNM56WKOQTBEKHOZUZBJM7GHTTDNKEWWYTTMW55BGPALRTP2ZWNN3DJQAXLIP4ZVRQUPYXJNIH2VM7G76OORLRJ4Z7JUXOZWFAPMLX6NTQXQN3CTG37Q"
},
"device": {
"supportedInterfaces": {
"AudioPlayer": {}
}
}
}
},
"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.9e9b54ec-2a91-4cb4-9047-89e9b6475bac",
"timestamp": "2017-03-24T19:25:13Z",
"locale": "en-US",
"intent": {
"name": "AMAZON.YesIntent"
}
}
}
PATH: '/var/lang/bin:/usr/local/bin:/usr/bin/:/bin',
LANG: 'en_US.UTF-8',
LD_LIBRARY_PATH: '/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib',
LAMBDA_TASK_ROOT: '/var/task',
LAMBDA_RUNTIME_DIR: '/var/runtime',
AWS_REGION: 'us-east-1',
AWS_DEFAULT_REGION: 'us-east-1',
AWS_LAMBDA_LOG_GROUP_NAME: '/aws/lambda/blah',
AWS_LAMBDA_LOG_STREAM_NAME: '2017/03/27/[$LATEST]46c85d8039f049ff9570411674cfd79b',
AWS_LAMBDA_FUNCTION_NAME: 'blah',
AWS_LAMBDA_FUNCTION_MEMORY_SIZE: '128',
AWS_LAMBDA_FUNCTION_VERSION: '$LATEST',
AWS_EXECUTION_ENV: 'AWS_Lambda_nodejs6.10',
NODE_PATH: '/var/runtime:/var/task:/var/runtime/node_modules',