O analyticsProvider
deve ser configurado sempre que se quiser adicionar a capacidade de acompanhar interações com a UI do Beagle.
Existem dois tipos de registros de analytics gerados pelo Beagle:
Estes registros são gerados sempre que uma página é carregada pelo Beagle e ele contém as seguintes informações:
screen
;flutter
no caso do Beagle Flutter;Estes registros são gerados sempre que uma ação do Beagle é feita. Além de toda informação presente no registro de navegação, os registros de ação também possuem:
action
;Observe que quando criamos um registro de ação, expomos todos os atributos da ação. Isso pode ser perigoso (informações confidenciais) ou até mesmo ter baixo desempenho. O AnalyticsProvider deve fornecer uma configuração que informe quais ações devem gerar registros e quais atributos devem ser expostos.
A configuração também informa se devemos ou não gerar registros de navegação.
A configuração é criada ao implementar a interface AnalyticsProvider
na função getConfig
. Uma configuração é uma instância da classe AnalyticsConfig
. Para saber mais sobre a configuração do Analytics, leia o artigo sobre esse recurso.
Toda vez que um registro é criado pelo Beagle, ele chama o método createRecord
do AnalyticsProvider
. Se você deseja enviar este registro para um serviço de analytics, dentro deste método, você deve formatá-lo no formato esperado pelo serviço usado, criar a requisição HTTP e enviá-la.
Para obter mais exemplos, consulte a página do Analytics.
class LoggerAnalyticsProvider implements AnalyticsProvider {
@override
void createRecord(AnalyticsRecord record) {
debugPrint("Analytics Record emitted");
debugPrint("type: ${record.type}");
debugPrint("platform: ${record.platform}");
debugPrint("beagleAction: ${record.beagleAction}");
debugPrint("event: ${record.event}");
debugPrint("screen: ${record.screen}");
debugPrint("timestamp: ${record.timestamp}");
if (record.component != null) {
debugPrint("component: ${record.component?.values.join(", ")}");
}
if (record.attributes != null) {
debugPrint("attributes: ${record.attributes?.values.join(", ")}");
}
if (record.additionalEntries != null) {
debugPrint(
"additionalEntries: ${record.additionalEntries?.values.join(", ")}");
}
}
@override
AnalyticsConfig getConfig() {
return AnalyticsConfig(enableScreenAnalytics: true, actions: {
"beagle:setContext": ["contextId", "path", "value"]
});
}
}
No exemplo acima, criamos um AnalyticsProvider
que apenas cria um log para cada registro. Para ações, será mostrado apenas ações do tipo “beagle:setContext” e expoe apenas os atributos “contextId”, “path” e “value” da ação.
Para registrar o analytics provider, você precisa adicioná-lo ao BeagleService:
final beagleService = BeagleService(
analyticsProvider: LoggerAnalyticsProvider(),
// ...
);
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.