feat(builder): Google Analytics events for builder flows#375
Conversation
Track transaction_executed via TransactionForm onTransactionSuccess, contract_ui_created on first IndexedDB save, relayer_service_configured, uikit_changed, and address_book_opened. Bump @openzeppelin/ui-renderer to ^1.2.0 and @openzeppelin/ui-types to ^1.13.0.
There was a problem hiding this comment.
Pull request overview
Adds builder-specific Google Analytics event tracking for key builder flows by extending useBuilderAnalytics and wiring the new trackers into UI interactions (preview tx success, auto-save create, relayer configuration, UI kit changes, address book open). Also bumps OpenZeppelin UI package versions required for the new renderer callback and updates export version metadata/snapshots.
Changes:
- Extend
useBuilderAnalyticswith new builder flow event helpers and add corresponding unit tests. - Emit analytics events from builder UI flows (auto-save create, relayer configured, UI kit selection, tx success in preview, address book open).
- Bump
@openzeppelin/ui-renderer/@openzeppelin/ui-typesand update exported version metadata + snapshots.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Locks updated for @openzeppelin/ui-renderer/@openzeppelin/ui-types bump and related dependency graph changes. |
| apps/builder/src/hooks/useBuilderAnalytics.ts | Adds builder-specific tracking helpers for the new GA events. |
| apps/builder/src/hooks/tests/useBuilderAnalytics.test.ts | Extends hook tests to validate the new event helpers call trackEvent with expected payloads. |
| apps/builder/src/export/versions.ts | Updates exported package version map for bumped UI packages. |
| apps/builder/src/export/tests/snapshots/ExportSnapshotTests.test.ts.snap | Updates export snapshot expectations to reflect new dependency versions. |
| apps/builder/src/components/UIBuilder/hooks/builder/useAutoSave.ts | Tracks contract_ui_created on CREATE auto-save path. |
| apps/builder/src/components/UIBuilder/StepFormCustomization/components/UiKitSettings.tsx | Tracks uikit_changed when a user selects a UI kit. |
| apps/builder/src/components/UIBuilder/StepFormCustomization/components/RelayerConfiguration/index.tsx | Tracks relayer_service_configured once the relayer flow is fully configured. |
| apps/builder/src/components/UIBuilder/StepFormCustomization/tests/UiKitSettings.test.tsx | Updates mocks to include the analytics hook used by UiKitSettings. |
| apps/builder/src/components/UIBuilder/StepFormCustomization/FormPreview.tsx | Wires transaction_executed tracking via TransactionForm’s onTransactionSuccess. |
| apps/builder/src/components/AddressBook/AddressBookDialog.tsx | Tracks address_book_opened when the dialog opens. |
| apps/builder/package.json | Bumps @openzeppelin/ui-renderer and @openzeppelin/ui-types dependency ranges. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Remove unused saveContractUI from useAutoSave deps - Use 'unknown' for missing network/ecosystem dimensions on contract_ui_created - Fire address_book_opened only on dialog open transition; stable dimensions - Document new track* helpers with JSDoc
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 12 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Adds builder-specific Google Analytics (gtag) events via
useBuilderAnalytics→useAnalytics().trackEvent.Events
transaction_executedTransactionFormonTransactionSuccesscontract_ui_createdrelayer_service_configureduikit_changedaddress_book_openedDependencies
@openzeppelin/ui-rendererto ^1.2.0 and@openzeppelin/ui-typesto ^1.13.0 (npm), aligned withopenzeppelin-uireleases that addonTransactionSuccess.versions.tsand snapshot updated by pre-push hook.Tests
useBuilderAnalytics.test.tsfor new trackers.UiKitSettings.test.tsxmocks updated for analytics hook.