Page Viewed
When to Use
Trigger this event on each route change in Single Page Applications (SPA) where URL changes don't trigger automatic page loads. For standard multi-page websites, page views are tracked automatically by the DATA Reshape script — this event is not needed.
Complete Reference
event object required
name string required
Use only static value page_viewed for event.name.
name: "page_viewed"
value number required
Set to 0 for page views.
value: 0
currency string required
Currency code. Use your default currency.
currency: "EUR"
context object required
Context is required for this event — provide the current route URL and page type. View complete Context Object documentation
url string required-if-applicable
Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates.
url:"https://shop.example.com/products/laptop?color=silver&storage=512gb&utm_source=google"
URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations.
page_type string recommended
Type of page (product, home ...)
page_type: "product"
environment string recommended
Allowed values: prod, dev
environment: "prod"
user object recommended
id string recommended
Unique customer identifier in your system.
id: "CUSTOMER_INTERNAL_ID"
email string recommended
Customer email address(es) provided in plaintext or as SHA-256 hashed values.
email: "[email protected]"
// or
email: "3e1ufd1rdnh8l1rfz6xlreyw2yryd4zrf8zsk1pxh2x8wbsp2mw1g93rs5nx68dq"
phone string recommended
Customer phone number(s) in E.164 format (plaintext) or as SHA-256 hashed values.
phone: "+40712345678"
// or
phone: "unw5r66oikql4n4tlg2c54bkd2npephsbwwhxuoxreu6ph8uv6k424y9x15opy9y"
first_name string recommended
Customer first name
first_name: "John"
last_name string recommended
Customer last name
last_name: "Doe"
country string
Country name or ISO country code
country: "Romania"
region string recommended
State, province, or region name
region: "Bucuresti"
city string recommended
City or locality name
city: "Bucuresti"
street string
Street address including number
street: "Strada Principala 1"
postal_code string
Postal code or ZIP code
postal_code: "700000"
orders_total_number number recommended
Cumulative number of orders placed by this user
orders_total_number: 5
orders_canceled_number number recommended
Cumulative number of orders placed and canceled by this user
orders_canceled_number: 0
orders_total_value number recommended
Cumulative lifetime user orders value (decimal format: 2500.50)
orders_total_value: 1234.99
orders_refunded_value number recommended
Cumulative lifetime user orders value canceled (decimal format: 2500.50)
orders_refunded_value: 250.99
predicted_value number
Predicted lifetime value of a customer for your business
predicted_value: 100.99
created_at number recommended
Timestamp in milliseconds since Unix epoch representing the first time the user was recorded
created_at: 1754926521690
properties object recommended
Custom Customer Properties Examples
Use the properties object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns.
- E-commerce Customer
- B2B Lead/Customer
- Subscription Service
- Content Platform
properties: {
customer_type: "returning",
membership_level: "platinum",
preferred_category: ["electronics", "fashion"],
last_purchase_date: "2024-12-15",
average_order_value: "350.00",
payment_method_preference: "card",
registration_date: "2023-06-15"
}
properties: {
company_size: "enterprise",
industry: "fintech",
job_title: "marketing_director",
decision_maker: "true",
budget_range: "50000-100000",
lead_source: ["linkedin", "webinar"],
qualification_status: "qualified",
sales_stage: "proposal"
}
properties: {
subscription_tier: "premium",
billing_cycle: "annual",
feature_usage: ["analytics", "reporting", "api"],
trial_user: "false",
renewal_date: "2025-06-30",
support_level: "priority",
usage_frequency: "daily"
}
properties: {
content_preferences: ["technology", "business"],
engagement_level: "high",
newsletter_subscriber: "true",
social_media_follower: "true",
content_consumption: "premium",
device_preference: ["mobile", "desktop"],
timezone: "Europe/Bucharest"
}
Examples
- Complete
- Implementation
- Minimal
window.reshape = window.reshape || [];
reshape.push({
"event": {
"name": "page_viewed",
"value": 0,
"currency": "EUR"
},
"context": {
"url": "https://shop.example.com/electronics/cameras",
"page_type": "category",
"environment": "prod"
},
"user": {
"id": "CUST_12345",
"email": "[email protected]",
"phone": "+40712345678",
"first_name": "Alexandru",
"last_name": "Popescu",
"country": "RO",
"region": "Brasov",
"city": "Brasov",
"orders_total_number": 8,
"orders_canceled_number": 1,
"orders_total_value": 2156.75,
"orders_refunded_value": 299.99,
"predicted_value": 3500.00,
"created_at": 1640995200000,
"properties": {
"customer_segment": "loyal",
"acquisition_channel": "paid_search",
"loyalty_tier": "gold"
}
}
});
// On each SPA route change
window.reshape = window.reshape || [];
reshape.push({
"event": {
"name": "page_viewed",
"value": 0,
"currency": "EUR"
},
"context": {
"url": currentRouteUrl, // Current route URL from your framework's router
"page_type": "product",
"environment": "prod"
},
"user": {
"id": "CUST_123",
"email": "[email protected]"
}
});
window.reshape = window.reshape || [];
reshape.push({
"event": {
"name": "page_viewed",
"value": 0,
"currency": "EUR"
},
"context": {
"url": currentRouteUrl, // Current route URL from your framework's router
"page_type": "home"
}
});
For standard (non-SPA) websites, page views are tracked automatically. Use this event only in SPA frameworks where you need to manually notify DATA Reshape of route changes.