Biblioteca DGoogleAnalytics para integração do Delphi com o Google Analytics
Olá pessoal, tudo bem com vocês?
hoje estamos apresentando uma novidade sensacional!
O Google Analytics já é um velho conhecido de quem possui algum blog ou site, trata-se de uma ferramenta gratuita que o Google oferece para que você possa monitorar o seu site, ou seja, saber as páginas mais acessadas, tempo de visita, mecanismos de localização e etc.
Mas já imaginou como seria legal ter todas estas funções de análise para o seu APP?
O mais legal é que isso é possível, e totalmente sem custos, graças a biblioteca DGoogleAnalytics, publicada no GitHub por maiconsi.
Esta biblioteca implementa toda a utilização das APIs de comunicação do Google Analytics.
Vamos dar uma olhadinha no código
Código completo da unit de exemplo que acompanha os fontes do repositório.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| unit Google.View.Principal;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls;
type
TfrmPrincipal = class(TForm)
LabelAnalytics: TLabel;
BtnSendEvent: TButton;
BtnSendPageView: TButton;
Button1: TButton;
procedure BtnSendEventClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnSendPageViewClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmPrincipal: TfrmPrincipal;
implementation
uses
GoogleAnalyticsGlobal;
{$R *.dfm}
procedure TfrmPrincipal.BtnSendEventClick(Sender: TObject);
begin
_GoogleAnalytics
.Event('Relatorio',
'Imprimir',
'Vendas do dia',
'Inclua aqui qualquer informacao relevante do evento');
ShowMessage('Imprimir relatório de vendas do dia.');
end;
procedure TfrmPrincipal.BtnSendPageViewClick(Sender: TObject);
begin
_GoogleAnalytics
.PageView('ERP',
'frmCadastroCliente',
'Cadastro de clientes');
ShowMessage('Abrir formulário de cadastro de clientes.');
end;
procedure TfrmPrincipal.Button1Click(Sender: TObject);
begin
_GoogleAnalytics
.Event('Avisos',
'Alerta',
'Valor do desconto excedido!',
'Inclua aqui qualquer informação relevante do evento');
ShowMessage('Alerta para o usuário.');
end;
procedure TfrmPrincipal.FormShow(Sender: TObject);
begin
_GoogleAnalytics
.PageView('ERP',
'frmPrincipal',
'Formulário principal');
end;
end. |
unit Google.View.Principal;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls;
type
TfrmPrincipal = class(TForm)
LabelAnalytics: TLabel;
BtnSendEvent: TButton;
BtnSendPageView: TButton;
Button1: TButton;
procedure BtnSendEventClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnSendPageViewClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmPrincipal: TfrmPrincipal;
implementation
uses
GoogleAnalyticsGlobal;
{$R *.dfm}
procedure TfrmPrincipal.BtnSendEventClick(Sender: TObject);
begin
_GoogleAnalytics
.Event('Relatorio',
'Imprimir',
'Vendas do dia',
'Inclua aqui qualquer informacao relevante do evento');
ShowMessage('Imprimir relatório de vendas do dia.');
end;
procedure TfrmPrincipal.BtnSendPageViewClick(Sender: TObject);
begin
_GoogleAnalytics
.PageView('ERP',
'frmCadastroCliente',
'Cadastro de clientes');
ShowMessage('Abrir formulário de cadastro de clientes.');
end;
procedure TfrmPrincipal.Button1Click(Sender: TObject);
begin
_GoogleAnalytics
.Event('Avisos',
'Alerta',
'Valor do desconto excedido!',
'Inclua aqui qualquer informação relevante do evento');
ShowMessage('Alerta para o usuário.');
end;
procedure TfrmPrincipal.FormShow(Sender: TObject);
begin
_GoogleAnalytics
.PageView('ERP',
'frmPrincipal',
'Formulário principal');
end;
end.
Veja que para enviar uma visualização de página, utilizamos
1
2
3
4
| _GoogleAnalytics
.PageView('ERP',
'frmCadastroCliente',
'Cadastro de clientes'); |
_GoogleAnalytics
.PageView('ERP',
'frmCadastroCliente',
'Cadastro de clientes');
Já para envio de um evento, um exemplo é:
1
2
3
4
5
| _GoogleAnalytics
.Event('Avisos',
'Alerta',
'Valor do desconto excedido!',
'Inclua aqui qualquer informação relevante do evento'); |
_GoogleAnalytics
.Event('Avisos',
'Alerta',
'Valor do desconto excedido!',
'Inclua aqui qualquer informação relevante do evento');
A Classe ainda implementa outras funções como Exceptions e ScreenView, ou seja, realmente implementando todas funções de comunicação oferecidas.
Certo, mas você deve estar se perguntando, como vinculo estes eventos a minha conta?
Então se você reparar no exemplo, verá que há no uses a unit GoogleAnalyticsGlobal, é nela que informamos os dados de nossa conta, veja abaixo;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| unit GoogleAnalyticsGlobal;
interface
uses
Google.Controller.Analytics.Interfaces;
var _GoogleAnalytics: iControllerGoogleAnalytics;
implementation
uses
Google.Controller.Analytics;
const
//Google Analytics property ID.
GooglePropertyID = 'UA-000000000-0'; // colocar a sua UA fornecida pelo GOOGLE analytics.
AppName = 'Minha Aplicacao';
AppLicense = 'Comercial';
AppEdition = 'ERP';
VersaoSistema = '1.0.0';
initialization
_GoogleAnalytics := TControllerGoogleAnalytics
.New(GooglePropertyID);
_GoogleAnalytics.AppInfo
.AppName(AppName)
.AppVersion(VersaoSistema)
.AppLicense(AppLicense)
.AppEdition(AppEdition);
end. |
unit GoogleAnalyticsGlobal;
interface
uses
Google.Controller.Analytics.Interfaces;
var _GoogleAnalytics: iControllerGoogleAnalytics;
implementation
uses
Google.Controller.Analytics;
const
//Google Analytics property ID.
GooglePropertyID = 'UA-000000000-0'; // colocar a sua UA fornecida pelo GOOGLE analytics.
AppName = 'Minha Aplicacao';
AppLicense = 'Comercial';
AppEdition = 'ERP';
VersaoSistema = '1.0.0';
initialization
_GoogleAnalytics := TControllerGoogleAnalytics
.New(GooglePropertyID);
_GoogleAnalytics.AppInfo
.AppName(AppName)
.AppVersion(VersaoSistema)
.AppLicense(AppLicense)
.AppEdition(AppEdition);
end.
Uma vez configurada esta unit, é só dar uses ela onde precisar na sua aplicação e utilizar normalmente conforme o exemplo.
Quem tiver interesse pode ter acesso aos fontes no repositório no github:
https://github.com/maiconsi/DGoogleAnalytics
Para facilitar o entendimento, também criamos um vídeo demonstrando o uso.
Beleza pessoal? Dúvidas ou sugestões deixe o seu comentário!
Gostou do Post?
Compartilhe para a nossa comunidade poder crescer, obrigado.
APOIO DA COMUNIDADE via PagSeguro: https://pag.ae/7VccpnuCN
Um grande abraço é até o próximo post.
-
Giovani Da Cruz
-
5.013 views
- 2 comentários
- 27 de abril de 2020
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
Ola Adailson Priori, talvez possa ser algo com o último parâmetro.
Tente assim por exemplo:
_GoogleAnalytics
.Event(‘Avisos’,
‘Alerta’,
‘Valor do desconto excedido!’,
”);
Olá, alguem sabe me dizer se ainda funciona, pois estou tentando fazer a comunicação e não estou conseguindo.