Overview
Adobe Analytics event tracking captures user interactions through custom events, link tracking, and the products variable. Events are defined in your Solution Design Reference and must align with your business requirements for accurate reporting.
Event Types in Adobe Analytics
Standard Events (Commerce Events)
Pre-defined ecommerce events with specific meanings:
| Event | Description | Usage |
|---|---|---|
prodView |
Product viewed | Product detail page loads |
scAdd |
Cart addition | Item added to cart |
scRemove |
Cart removal | Item removed from cart |
scView |
Cart view | Cart page viewed |
scCheckout |
Checkout initiation | Checkout process started |
purchase |
Order completed | Transaction confirmed |
Custom Events (event1-event1000)
Define custom events for business-specific interactions:
| Event | Name | Description |
|---|---|---|
event1 |
Newsletter Signup | User subscribes to email |
event2 |
Video Start | Video playback begins |
event3 |
Video Complete | Video watched to end |
event4 |
Form Submit | Form submission success |
event5 |
File Download | Document downloaded |
Counter vs. Currency Events
- Counter Events: Increment by 1 (default) or specified value
- Currency Events: Store monetary values (event with
=syntax)
// Counter event
s.events = "event1";
// Counter with increment
s.events = "event1=5";
// Currency event (configured in Admin)
s.events = "event10=99.99";
Event Implementation
AppMeasurement Syntax
// Single event
s.events = "event1";
// Multiple events
s.events = "prodView,scAdd,event5";
// Events with values
s.events = "event1=5,event10=99.99";
// With products variable
s.products = "Electronics;SKU-12345;1;69.99";
s.events = "prodView,scAdd";
Web SDK (XDM) Approach
alloy("sendEvent", {
xdm: {
eventType: "commerce.productViews",
commerce: {
productViews: { value: 1 }
},
productListItems: [{
SKU: "SKU-12345",
name: "Wireless Headphones",
quantity: 1,
priceTotal: 69.99
}]
}
});
Launch Rule Configuration
- Create a rule for the interaction
- Set conditions (e.g., data layer event)
- Add Adobe Analytics action
- Configure events in the "Set Variables" section
Core Events Catalog
Page View Events
// Standard page view (automatic)
s.pageName = "example:electronics:headphones:pdp";
s.channel = "electronics";
s.prop1 = "product";
// events not needed - tracked automatically
// Virtual page view (SPAs)
s.t(); // Sends page view hit
Link Tracking (s.tl)
For non-navigation clicks:
// Custom link
s.tl(this, 'o', 'CTA Click - Add to Cart');
// Download link
s.tl(this, 'd', 'Download - Product Brochure.pdf');
// Exit link
s.tl(this, 'e', 'Exit - Partner Site');
Parameters:
| Position | Description | Values |
|---|---|---|
| 1 | Link reference | this or element reference |
| 2 | Link type | o (custom), d (download), e (exit) |
| 3 | Link name | Descriptive string |
Ecommerce Events
Product View
s.events = "prodView";
s.products = "Electronics;SKU-12345";
s.prop1 = "product";
s.eVar5 = "recommended"; // How they arrived
s.tl(this, 'o', 'Product View');
Add to Cart
s.events = "scAdd";
s.products = "Electronics;SKU-12345;1;69.99";
s.eVar10 = "quick-add"; // Add method
s.tl(this, 'o', 'Add to Cart');
Checkout Steps
// Checkout start
s.events = "scCheckout";
s.products = "Electronics;SKU-12345;1;69.99";
s.prop10 = "checkout-step-1";
s.t();
// Shipping selection
s.events = "event20"; // Custom checkout step event
s.eVar15 = "ground"; // Shipping method
s.prop10 = "checkout-step-2";
s.t();
Purchase
s.events = "purchase";
s.products = "Electronics;SKU-12345;1;69.99,Accessories;SKU-67890;2;25.98";
s.purchaseID = "ORD-98765";
s.transactionID = "ORD-98765";
s.eVar20 = "credit_card"; // Payment method
s.t();
Engagement Events
Scroll Depth
// At 25%, 50%, 75%, 100% thresholds
s.events = "event30"; // Scroll event
s.eVar30 = "50%"; // Depth reached
s.tl(this, 'o', 'Scroll Depth - 50%');
Video Tracking
// Video start
s.events = "event40";
s.eVar40 = "Product Demo Video";
s.eVar41 = "homepage-hero";
s.tl(this, 'o', 'Video Start');
// Video quartile (25%, 50%, 75%)
s.events = "event41";
s.eVar42 = "50"; // Percent watched
s.tl(this, 'o', 'Video Progress - 50%');
// Video complete
s.events = "event42";
s.tl(this, 'o', 'Video Complete');
Form Interactions
// Form start
s.events = "event50";
s.eVar50 = "contact-form";
s.tl(this, 'o', 'Form Start');
// Form submit success
s.events = "event51";
s.eVar50 = "contact-form";
s.tl(this, 'o', 'Form Submit Success');
// Form error
s.events = "event52";
s.eVar51 = "email-invalid"; // Error type
s.tl(this, 'o', 'Form Error');
Merchandising eVars
Conversion Syntax
Bind eVar to the conversion event:
s.events = "prodView";
s.products = "Electronics;SKU-12345";
s.eVar10 = "search-results"; // Finding method - binds at prodView
Product Syntax
Bind eVar at the product level:
// eVar10 binds to specific product
s.events = "prodView";
s.products = "Electronics;SKU-12345;;;;eVar10=search-results";
Multiple Merchandising eVars
s.products = "Electronics;SKU-12345;;;;eVar10=search|eVar11=promo123|eVar12=color-black";
Event Serialization
Prevent duplicate event counting:
// Only count once per unique ID
s.events = "event1:unique_id_12345";
// For purchases
s.purchaseID = "ORD-98765"; // Prevents duplicate purchase events
Context Data
For Processing Rules-based implementation:
s.contextData['event.name'] = 'newsletter_signup';
s.contextData['form.id'] = 'footer-newsletter';
s.contextData['page.section'] = 'blog';
Then configure Processing Rules to map:
| Context Data Variable | Maps To |
|---|---|
event.name = "newsletter_signup" |
event1 |
form.id |
eVar50 |
Naming Conventions
Event Naming
- Use descriptive names in Admin:
Newsletter Signupnotevent1 - Document in Solution Design Reference
- Group related events (e.g., Video Start, Video Progress, Video Complete)
Link Tracking Names
- Format:
[Category] - [Action] - [Label] - Examples:
CTA - Click - Add to CartNavigation - Click - Main MenuForm - Submit - Contact Us
Solution Design Reference
Document all events in your SDR:
| Event | Name | Type | Description | Triggers |
|---|---|---|---|---|
| prodView | Product View | Standard | Product detail viewed | PDP load |
| scAdd | Add to Cart | Standard | Item added to cart | Add button click |
| purchase | Purchase | Standard | Order completed | Confirmation page |
| event1 | Newsletter Signup | Counter | Email subscription | Form submit |
| event10 | Revenue | Currency | Order revenue | Purchase confirmation |
QA and Validation
Adobe Experience Platform Debugger
- Install the Debugger extension
- Navigate through user flows
- Check the Analytics tab for each hit
- Verify events, products, and eVars
Validation Checklist
| Check | Expected Result |
|---|---|
| Events fire on interaction | Single event per action |
| Product string format | Category;SKU;Qty;Price syntax |
| Purchase ID present | Unique per transaction |
| eVar bindings correct | Merchandising eVars with products |
| Event serialization | No duplicates for serialized events |
| Link tracking type | Correct o/d/e designation |
Common Issues
| Symptom | Cause | Solution |
|---|---|---|
| Events not in reports | Event not enabled in Admin | Enable in Report Suite settings |
| Duplicate purchases | Missing purchaseID | Add unique purchase identifier |
| Wrong eVar values | Incorrect expiration | Review SDR allocation settings |
| Product string errors | Malformed syntax | Validate semicolon structure |
| Missing link tracking | s.tl not called | Ensure tl() fires after variables set |
Testing with Segment/Filter
Create a test segment in Analysis Workspace:
- Create segment:
Tracking Code equals TEST - Apply to report
- Trigger test events with
?cid=TESTparameter - Verify events appear in filtered report