This component implements the data collection protocol between Edgee and Piano Analytics.
- Download the latest component version from our releases page
- Place the
piano.wasm
file in your server (e.g.,/var/edgee/components
) - Add the following configuration to your
edgee.toml
:
[[destinations.data_collection]]
name = "piano"
component = "/var/edgee/components/piano.wasm"
credentials.piano_site_id = "..."
credentials.piano_collection_domain = "..."
The component maps Edgee events to Piano Analytics events as follows:
Edgee Event | Piano Analytics Event | Description |
---|---|---|
Page | page.display |
Triggered when a user views a page |
Track | Custom Event | Uses the provided event name directly |
User | N/A | Used for user identification only |
While User events don't generate Piano Analytics events directly, they serve an important purpose:
- Stores
user_id
,anonymous_id
, andproperties
on the user's device - Enriches subsequent Page and Track events with user data
- Enables proper user attribution across sessions
[[destinations.data_collection]]
name = "piano"
component = "/var/edgee/components/piano.wasm"
credentials.piano_site_id = "..."
credentials.piano_collection_domain = "..."
# Optional configurations
config.anonymization = true # Enable/disable data anonymization in case of pending or denied consent
config.default_consent = "pending" # Set default consent status if not specified by the user
Control which events are forwarded to Piano Analytics:
config.page_event_enabled = true # Enable/disable page event
config.track_event_enabled = true # Enable/disable track event
config.user_event_enabled = true # Enable/disable user event
Before sending events to Google Analytics, you can set the user consent using the Edgee SDK:
edgee.consent("granted");
Or using the Data Layer:
<script id="__EDGEE_DATA_LAYER__" type="application/json">
{
"data_collection": {
"consent": "granted"
}
}
</script>
If the consent is not set, the component will use the default consent status.
Consent | Anonymization | Piano Analytics Consent |
---|---|---|
pending | true | Exempt |
denied | true | Exempt |
granted | false | Opt-in |
Prerequisites:
- Rust
- WASM target:
rustup target add wasm32-wasip2
- wit-deps:
cargo install wit-deps
Build command:
make wit-deps
make build
Interested in contributing? Read our contribution guidelines
Report security vulnerabilities to security@edgee.cloud