Events Overview
Events were built to be agnostic, scalable, and fully customizable to your business needs. Events capture meaningful user interactions, such as purchases, form submissions, and video views, allowing you to unlock powerful capabilities across personalization, targeting, and reporting.
When a defined interaction occurs, an event is sent to Armanet. These signals fuel your personalization programs by helping Armanet understand user intent, build audience segments, optimize goals, and refine recommendations.
Why Events Matter
Events power the core of Armanet personalization and optimization ecosystem:
- Behavioral Targeting: Reach users based on real actions, not assumptions
- Optimization Goals: Use key actions (like purchases or form submissions) as conversion signals
- Reporting & Insights: Gain a deep understanding of what drives user engagement
- Recommendations & Affinities: Automatically tailor product or content recommendations based on user behavior.
- Audience Building: Create high-value segments for retargeting and campaign activation
Privacy and PII
Many events below accept a customer object. This object must never contain a street address or any other personally identifiable information (PII), such as full name, email address in plaintext, phone number, or government ID.
Events containing a street address or PII will be denied, and repeated violations will result in the integration being shut down.
If you need to link an event to a known identity, use a hashed identifier (see Identify Users) rather than raw PII.
Standard Events
Armanet provides a comprehensive set of predefined events to cover most digital marketing and e-commerce needs.
Identify Users
To provide a primary key for us to center the identity graph on the entity that matters to you (for example, the customer):
Required Data
Most events below accept identity fields directly, or nested in a customer object. Only id is required, everything else is optional enrichment.
- Name
id- Type
- string | number
- Description
- Unique identifier for the customer. Required.
- Use a custom internal ID, a hashed email address, or a hashed phone number. Never send raw PII (see above).
- Name
country- Type
- string
- Description
- Customer's country, optional.
- Name
city- Type
- string
- Description
- Customer's city, optional. Never a street address.
- Name
state- Type
- string
- Description
- Customer's state or region, optional.
- Name
zip- Type
- string
- Description
- Customer's zip code, optional.
- Name
groups- Type
- string[]
- Description
- Segment or account type tags for the customer, optional.
- Name
daysSinceLastPurchase- Type
- number
- Description
- Days since the customer's last purchase, optional.
- Name
totalOrders- Type
- number
- Description
- Lifetime order count for the customer, optional.
- Name
isFirstPurchase- Type
- boolean
- Description
- Whether this is the customer's first purchase, optional. Only applicable to the Purchases event.
Armanet.sendEvent('identity', {
id: 17,
country: 'US',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
groups: ['Customer', 'Distributor', '...'],
daysSinceLastPurchase: 0,
totalOrders: 1,
});
The identity events are used to connect the current device and session to the user's profile, allowing for a unified multi-channel experience.
Each of the events must include the unique identifier that is being used in this section, which could be either a custom internal ID, hashed email address or a hashed phone number.
Alternatively, you can always include the identity data within any other event:
Armanet.sendEvent('addedToCart', {
customer: {
id: 17,
country: 'US',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
groups: ['Customer', 'Distributor', '...'],
daysSinceLastPurchase: 0,
totalOrders: 1,
},
items: [
{
itemId: 123456,
itemName: 'Product Name',
sku: '123456',
upc: '123456',
price: 123.45,
quantity: 1,
variationId: 1234567,
},
]
});
Purchases
Fire this event whenever a user completes a purchase.
Armanet.sendEvent('purchased', {
orderNumber: '123456',
subtotal: 100.00, // sum of item prices, before discount/tax/shipping
discount: 10.00, // amount subtracted from subtotal, not a percentage
tax: 8.55,
shipping: 5.00,
orderTotal: 103.55, // final amount charged: subtotal - discount + tax + shipping
currency: 'USD',
coupon: 'SUMMER10',
customer: {
id: 17,
country: 'US',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
groups: ['Customer', 'Distributor', '...'],
isFirstPurchase: true,
daysSinceLastPurchase: 0,
totalOrders: 1,
},
items: [
{
itemId: 123456,
itemName: 'Product Name',
sku: '123456',
upc: '123456',
price: 123.45,
quantity: 1,
variationId: 1234567,
},
]
});
Purchases are used as conversion goals and update the user’s affinity profile, helping refine recommendations and reporting.
Add to Cart
Fire this event when a user adds a product to their cart.
Armanet.sendEvent('addedToCart', {
customer: {
id: 17,
country: 'US',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
groups: ['Customer', 'Distributor', '...'],
daysSinceLastPurchase: 0,
totalOrders: 1,
},
items: [
{
itemId: 123456,
itemName: 'Product Name',
sku: '123456',
upc: '123456',
price: 123.45,
quantity: 1,
variationId: 1234567,
},
]
});
Remove from Cart
Fire this event when a user removes a product from their cart.
Armanet.sendEvent('removedFromCart', {
customer: {
id: 17,
country: 'US',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
groups: ['Customer', 'Distributor', '...'],
daysSinceLastPurchase: 0,
totalOrders: 1,
},
items: [
{
itemId: 123456,
itemName: 'Product Name',
sku: '123456',
upc: '123456',
price: 123.45,
quantity: 1,
variationId: 1234567,
},
]
});
Wishlist
Track when users add an item to their wishlist.
Armanet.sendEvent('addedToWishlist', {
customer: {
id: 17,
country: 'US',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
groups: ['Customer', 'Distributor', '...'],
daysSinceLastPurchase: 0,
totalOrders: 1,
},
items: [
{
itemId: 123456,
itemName: 'Product Name',
sku: '123456',
upc: '123456',
price: 123.45,
quantity: 1,
variationId: 1234567,
},
]
});
Search Activity
In order to track searches with richer metadata:
Armanet.sendEvent('search', {
q: 'user query here',
});
In order to track browsing or filtering search results:
Armanet.sendEvent('filter', {
page: 'search',
filter: 'brand',
value: 'BCM'
});
These events help Armanet understand user intent and improve recommendations and targeting.
Newsletter Subscriptions
In order to track newsletter signups:
Armanet.sendEvent('newsletterSignup', {
email: sha256(email),
});
This links the email to the user’s profile for cross-channel personalization.
Logins
When a user logs in:
Armanet.sendEvent('login', {
id: 17,
country: 'US',
city: 'Los Angeles',
state: 'CA',
zip: '90001',
groups: ['Customer', 'Distributor', '...'],
});
Signups
When a new user creates an account:
Armanet.sendEvent('signup', {
id: 17,
groups: ['Customer', 'Distributor', '...'],
source: 'homepage-promo'
});
Create Custom Events
If you want to track unique interactions not included in the standard list, you can define custom events.
Examples:
Armanet.sendEvent('ratedProduct', {
itemId: 123456,
rating: 5
});
Armanet.sendEvent('joinedVIPClub', {
id: 17,
tier: 'Gold'
});
Custom events can be anything that matters to your business: donations, reviews, loyalty actions, etc. In addition to powering personalization and analytics, custom events can also be used to create retargeting audiences directly within Armanet.
Every custom event you define becomes an actionable signal that can trigger inclusion (or exclusion) in a dynamic audience. This allows you to build behavior-based retargeting segments that respond instantly to what users do on your site or app.
Privacy Standards
We support the following privacy standards:
- GPC (Global Privacy Control): A setting the visitor turns on in their browser meaning "do not sell or share my data."
- IAB TCF v2.2: The standard European consent framework. We read whether GDPR applies and what the visitor agreed to
- IAB GPP (Global Privacy Platform): For US state laws, such as California CCPA/CPRA. We read which state rules apply and whether the visitor opted out of sale, sharing, or targeted advertising, forward the value and the applicable sections.
Supported CMPs: support is achieved by standard, not by direct integration. Any CMP that correctly implements IAB TCF and/or IAB GPP works. For example: OneTrust, Sourcepoint, Didomi, Usercentrics, Cookiebot, Quantcast Choice, InMobi Choice, Osano, Sirdata, LiveRamp, Ketch, consentmanager.
We do not support the deprecated US Privacy API (__uspapi), which was superseded by GPP.