Auto-sync: 20260501_210000
This commit is contained in:
parent
434aa0872a
commit
9dd5c625b7
6 changed files with 37 additions and 1 deletions
|
|
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:firebase_core/firebase_core.dart';
|
import 'package:firebase_core/firebase_core.dart';
|
||||||
import 'package:firebase_auth/firebase_auth.dart';
|
import 'package:firebase_auth/firebase_auth.dart';
|
||||||
|
import 'package:firebase_analytics/firebase_analytics.dart';
|
||||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||||
|
|
||||||
// --- LIBRERIE META SDK E TRACCIAMENTO APPLE ---
|
// --- LIBRERIE META SDK E TRACCIAMENTO APPLE ---
|
||||||
|
|
@ -124,12 +125,14 @@ class _HomeScreenState extends State<HomeScreen> with RouteAware {
|
||||||
// Mostra il popup di sistema all'utente
|
// Mostra il popup di sistema all'utente
|
||||||
await AppTrackingTransparency.requestTrackingAuthorization();
|
await AppTrackingTransparency.requestTrackingAuthorization();
|
||||||
|
|
||||||
// Logga l'evento della prima apertura su Facebook
|
// Logga l'evento della prima apertura su Facebook e Firebase
|
||||||
facebookAppEvents.logEvent(name: 'app_opened_first_time');
|
facebookAppEvents.logEvent(name: 'app_opened_first_time');
|
||||||
|
FirebaseAnalytics.instance.logAppOpen();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Su Android non c'è il blocco ATT, possiamo loggare liberamente l'apertura
|
// Su Android non c'è il blocco ATT, possiamo loggare liberamente l'apertura
|
||||||
facebookAppEvents.logEvent(name: 'app_opened_android');
|
facebookAppEvents.logEvent(name: 'app_opened_android');
|
||||||
|
FirebaseAnalytics.instance.logAppOpen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import Foundation
|
||||||
|
|
||||||
import cloud_firestore
|
import cloud_firestore
|
||||||
import device_info_plus
|
import device_info_plus
|
||||||
|
import firebase_analytics
|
||||||
import firebase_auth
|
import firebase_auth
|
||||||
import firebase_core
|
import firebase_core
|
||||||
import firebase_database
|
import firebase_database
|
||||||
|
|
@ -26,6 +27,7 @@ import webview_flutter_wkwebview
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
FLTFirebaseFirestorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseFirestorePlugin"))
|
FLTFirebaseFirestorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseFirestorePlugin"))
|
||||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||||
|
FirebaseAnalyticsPlugin.register(with: registry.registrar(forPlugin: "FirebaseAnalyticsPlugin"))
|
||||||
FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin"))
|
FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin"))
|
||||||
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
|
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
|
||||||
FLTFirebaseDatabasePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseDatabasePlugin"))
|
FLTFirebaseDatabasePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseDatabasePlugin"))
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
- **2026-05-01**: Installato il pacchetto `firebase_analytics` e configurato il tracciamento esplicito dell'evento `app_open` all'interno di `main.dart` per monitorare correttamente i download derivanti dalla campagna Google Ads.
|
||||||
|
- **2026-05-01**: Revisione delle metriche di acquisizione utenti (536 download da Ads, 306 Organici negli ultimi 90 giorni). Sospesa temporaneamente la campagna Google Ads tramite la dashboard.
|
||||||
- **2026-04-28**: Modificato il campo "Telefono / Email" in due campi separati in `comp_6-7.dart` (Contraente) e `comp_9.dart` (Conducente) con implementazione Regex per formati internazionali ed email. Aggiornata logica `pdf_engine.dart` per stampare la stringa concatenata nel PDF e aggiornato il salvataggio locale `profilo_service.dart`. **Eseguito e validato test end-to-end** (`full_flow_test.dart`) verificando l'autocompilazione delle email, il bypass OTP e la generazione integra del file PDF.
|
- **2026-04-28**: Modificato il campo "Telefono / Email" in due campi separati in `comp_6-7.dart` (Contraente) e `comp_9.dart` (Conducente) con implementazione Regex per formati internazionali ed email. Aggiornata logica `pdf_engine.dart` per stampare la stringa concatenata nel PDF e aggiornato il salvataggio locale `profilo_service.dart`. **Eseguito e validato test end-to-end** (`full_flow_test.dart`) verificando l'autocompilazione delle email, il bypass OTP e la generazione integra del file PDF.
|
||||||
- **2026-04-28**: Risolti i bug del Paywall: aggiunto `SingleChildScrollView` per evitare il "bottom overflow" su schermi piccoli (es. iOS) e rimosso l'escape errato dell'interpolazione stringhe che nascondeva il prezzo (`\${_yearlyPackage...}`).
|
- **2026-04-28**: Risolti i bug del Paywall: aggiunto `SingleChildScrollView` per evitare il "bottom overflow" su schermi piccoli (es. iOS) e rimosso l'escape errato dell'interpolazione stringhe che nascondeva il prezzo (`\${_yearlyPackage...}`).
|
||||||
- **2026-04-28**: Separata l'inizializzazione dell'SDK RevenueCat (`subscription_service.dart`) in due chiavi API distinte per piattaforma: una per iOS (`appl_dIdoPn...`) configurata con il certificato P8 di App Store Connect, e una per Android (`goog_DsVh...`).
|
- **2026-04-28**: Separata l'inizializzazione dell'SDK RevenueCat (`subscription_service.dart`) in due chiavi API distinte per piattaforma: una per iOS (`appl_dIdoPn...`) configurata con il certificato P8 di App Store Connect, e una per Android (`goog_DsVh...`).
|
||||||
|
|
|
||||||
|
|
@ -14,3 +14,7 @@ L'app "CAI Facile" è in uno stato avanzato di sviluppo. Lo scambio dati remoto,
|
||||||
|
|
||||||
## Problemi Aperti / TODO
|
## Problemi Aperti / TODO
|
||||||
- **Debito Tecnico**: Sono presenti variabili non formattate in `lowerCamelCase` all'interno di `lib/global_data.dart` (es. `Cod_fiscale_cond_B`).
|
- **Debito Tecnico**: Sono presenti variabili non formattate in `lowerCamelCase` all'interno di `lib/global_data.dart` (es. `Cod_fiscale_cond_B`).
|
||||||
|
|
||||||
|
## Marketing / Pubblicità
|
||||||
|
- **Acquisizione Utenti (Google Ads)**: Campagna attiva dal 6 marzo al 1 maggio 2026. Risultati ultimi 90gg: 536 download da annunci e 306 organici. La campagna è stata **messa in pausa** il 1 maggio 2026 dopo aver validato il modello di acquisizione.
|
||||||
|
- **Tracking / Analytics**: Integrato `firebase_analytics` (maggio 2026) per il monitoraggio interno dei download (eventi `first_open` e `app_open`) in modo da riscontrare i dati di acquisizione di Google Ads direttamente nella dashboard di Firebase.
|
||||||
|
|
|
||||||
24
pubspec.lock
24
pubspec.lock
|
|
@ -281,6 +281,30 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.0.1"
|
version: "7.0.1"
|
||||||
|
firebase_analytics:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: firebase_analytics
|
||||||
|
sha256: "4f85b161772e1d54a66893ef131c0a44bd9e552efa78b33d5f4f60d2caa5c8a3"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "11.6.0"
|
||||||
|
firebase_analytics_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: firebase_analytics_platform_interface
|
||||||
|
sha256: a44b6d1155ed5cae7641e3de7163111cfd9f6f6c954ca916dc6a3bdfa86bf845
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.4.3"
|
||||||
|
firebase_analytics_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: firebase_analytics_web
|
||||||
|
sha256: c7d1ed1f86ae64215757518af5576ff88341c8ce5741988c05cc3b2e07b0b273
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.5.10+16"
|
||||||
firebase_auth:
|
firebase_auth:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,7 @@ dependencies:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
facebook_app_events: ^0.24.0
|
facebook_app_events: ^0.24.0
|
||||||
app_tracking_transparency: ^2.0.6+1
|
app_tracking_transparency: ^2.0.6+1
|
||||||
|
firebase_analytics: ^11.6.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue