Update when deeplink appid and bundle id are collected (#8801)
update ga metrics collection for deeplink. It now only also collect the event right before the validation to reduce noise in impact tracking.
![build.yaml badge]
If you need help, consider asking for help on [Discord].
[build.yaml badge]: https://github.com/flutter/devtools/actions/workflows/build.yaml/badge.svg
diff --git a/packages/devtools_app/lib/src/screens/deep_link_validation/deep_links_controller.dart b/packages/devtools_app/lib/src/screens/deep_link_validation/deep_links_controller.dart
index 4bfac2d..79e17a5 100644
--- a/packages/devtools_app/lib/src/screens/deep_link_validation/deep_links_controller.dart
+++ b/packages/devtools_app/lib/src/screens/deep_link_validation/deep_links_controller.dart
@@ -531,6 +531,14 @@
Map<String, List<Path>> iosDomainPaths = {};
try {
if (currentAppLinkSettings != null) {
+ ga.impression(
+ gac.deeplink,
+ gac.AnalyzeFlutterProject.androidValidateDomain.name,
+ screenMetricsProvider:
+ () => DeepLinkScreenMetrics(
+ androidAppId: currentAppLinkSettings!.applicationId,
+ ),
+ );
final androidResult = await deepLinksService.validateAndroidDomain(
domains: domains,
applicationId: applicationId,
@@ -542,6 +550,14 @@
}
if (FeatureFlags.deepLinkIosCheck &&
currentUniversalLinkSettings != null) {
+ ga.impression(
+ gac.deeplink,
+ gac.AnalyzeFlutterProject.iosValidateDomain.name,
+ screenMetricsProvider:
+ () => DeepLinkScreenMetrics(
+ iosBundleId: currentUniversalLinkSettings!.bundleIdentifier,
+ ),
+ );
final iosResult = await deepLinksService.validateIosDomain(
bundleId: bundleId,
teamId: teamId,
diff --git a/packages/devtools_app/lib/src/shared/analytics/constants/_deep_links_constants.dart b/packages/devtools_app/lib/src/shared/analytics/constants/_deep_links_constants.dart
index d109046..5df4b2a 100644
--- a/packages/devtools_app/lib/src/shared/analytics/constants/_deep_links_constants.dart
+++ b/packages/devtools_app/lib/src/shared/analytics/constants/_deep_links_constants.dart
@@ -32,6 +32,12 @@
/// iOS Universal Links settings are loaded.
iosUniversalLinkSettingsLoaded,
+ /// Validate the host name of Android App Links
+ androidValidateDomain,
+
+ /// Validate the associated domain of iOS Universal Links
+ iosValidateDomain,
+
/// App Links are loaded and there is at least one link.
flutterHasAppLinks,