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.