Skip to main content

Method Signature

constructorio.tracker.trackGenericResultClick(parameters, networkParameters?)
Tracks clicks on product results that don’t come from search, browse, recommendations, or quiz contexts. Use this for tracking clicks from custom product lists or other contexts.

Parameters

parameters
object
required
The tracking parameters.
networkParameters
object
Network-specific parameters.

Returns

Returns true on success or an Error object on failure.

Examples

Basic Usage

constructorio.tracker.trackGenericResultClick({
  itemId: 'product-123',
  itemName: 'Wireless Headphones'
});

From a Custom Product List

// User clicked on a product from "Recently Viewed" list
constructorio.tracker.trackGenericResultClick({
  itemId: 'product-456',
  itemName: 'Running Shoes',
  section: 'recently-viewed',
  analyticsTags: {
    list_type: 'recently_viewed',
    position: 3
  }
});

From a Curated Collection

// User clicked on a product from a manually curated collection
constructorio.tracker.trackGenericResultClick({
  itemId: 'product-789',
  itemName: 'Designer Handbag',
  section: 'featured-collection',
  analyticsTags: {
    collection_name: 'Spring 2024 Collection',
    position_in_collection: 5
  }
});

With Product Variation

constructorio.tracker.trackGenericResultClick({
  itemId: 'product-321',
  itemName: 'T-Shirt',
  variationId: 'size-m-color-red',
  section: 'trending-products'
});

From Email Campaign

// User clicked on a product from an email
constructorio.tracker.trackGenericResultClick({
  itemId: 'product-654',
  itemName: 'Laptop',
  analyticsTags: {
    source: 'email',
    campaign_id: 'summer_sale_2024',
    email_list: 'newsletter_subscribers'
  }
});

When to Use

Use trackGenericResultClick for product clicks from:
  • Recently viewed products
  • Trending products lists
  • Editor’s picks or curated collections
  • Product carousels without specific context
  • Email or social media campaigns
  • Custom product widgets
  • Any product list that doesn’t fit other tracking methods
Do NOT use for:

Use Cases

Recently Viewed Products

function handleRecentlyViewedClick(product, position) {
  constructorio.tracker.trackGenericResultClick({
    itemId: product.id,
    itemName: product.name,
    analyticsTags: {
      list_type: 'recently_viewed',
      position: position
    }
  });
  
  // Navigate to product page
  window.location.href = product.url;
}
function handleTrendingProductClick(product, index) {
  constructorio.tracker.trackGenericResultClick({
    itemId: product.id,
    itemName: product.name,
    section: 'trending',
    analyticsTags: {
      widget_type: 'trending_products',
      position: index + 1
    }
  });
}
function handleFeaturedProductClick(product, collectionName) {
  constructorio.tracker.trackGenericResultClick({
    itemId: product.id,
    itemName: product.name,
    analyticsTags: {
      collection: collectionName,
      featured: true,
      editorial_selection: true
    }
  });
}

Error Handling

try {
  const result = constructorio.tracker.trackGenericResultClick({
    itemId: 'product-123',
    itemName: 'Product Name'
  });
  
  if (result instanceof Error) {
    console.error('Tracking failed:', result);
  }
} catch (error) {
  console.error('Error tracking generic result click:', error);
}

Build docs developers (and LLMs) love