Logs an event with Insider SDK, where each parameter of the event is defined as a key-value pair within the data object.
Example:
const modules = await Eitri.modules();
const logEvent = modules?.insider?.logEvent;
if (!logEvent) return;
await logEvent({
eventName: "product_view",
data: {
product_id: "12345",
category: "electronics",
price: 99.99
}
})
Object describing the event.
Name of the event.
Object describing the event's data.
Starts geofence tracking for location-based marketing campaigns.
Requires location permissions to be granted by the user to call this.
You must call it once per app app launch, ideally on app start and after permissions handling.
Users must allow "Always" and "Precise Location" permissions for geofencing to work correctly.
Example:
// Ensure that the methods exist
const modules = await Eitri.modules();
const upgradeToBackgroundPermission = modules?.geolocation?.upgradeToBackgroundPermission;
const startGeofenceTracking = modules?.insider?.startGeofenceTracking
if (!upgradeToBackgroundPermission) {
console.log("upgradeToBackgroundPermission is not available");
return;
}
if (!startGeofenceTracking) {
console.log("startGeofenceTracking is not available");
return;
}
// Check and request location permissions
// First ensure foreground permission
const foreground = await modules.geolocation.requestPermission({precision: "precise"});
if (foreground.status != "GRANTED") {
console.log("Location permission not granted");
return;
}
// Explain to the user why background permission is needed, then request it
// Try upgrade to background
const background = await upgradeToBackgroundPermission();
// Then start geofence tracking
await startGeofenceTracking()
Tracks listing/category page visits.
Example:
const modules = await Eitri.modules();
const visitListingPage = modules?.insider?.visitListingPage;
if (!visitListingPage) return;
await visitListingPage({
taxonomy: ["electronics", "smartphones"]
})
Object containing taxonomy information.
Array of category strings.
Tracks product detail page visits.
Example:
const modules = await Eitri.modules();
const visitProductDetailPage = modules?.insider?.visitProductDetailPage;
if (!visitProductDetailPage) return;
await visitProductDetailPage({
product: {
productID: "12345",
name: "iPhone 15",
taxonomy: ["electronics", "smartphones"],
imageURL: "https://example.com/iphone15.jpg",
price: 999.99,
currency: "USD"
}
})
Object containing product information.
Product object.
Tracks cart page visits.
Example:
const modules = await Eitri.modules();
const visitCartPage = modules?.insider?.visitCartPage;
if (!visitCartPage) return;
await visitCartPage({
products: [{
productID: "12345",
name: "iPhone 15",
taxonomy: ["electronics", "smartphones"],
imageURL: "https://example.com/iphone15.jpg",
price: 999.99,
currency: "USD"
}]
})
Object containing products array.
Array of product objects.
Tracks wishlist page visits.
Example:
const modules = await Eitri.modules();
const visitWishlistPage = modules?.insider?.visitWishlistPage;
if (!visitWishlistPage) return;
await visitWishlistPage({
products: [{
productID: "12345",
name: "iPhone 15",
taxonomy: ["electronics", "smartphones"],
imageURL: "https://example.com/iphone15.jpg",
price: 999.99,
currency: "USD"
}]
})
Object containing products array.
Array of product objects.
Tracks completed purchases.
Example:
const modules = await Eitri.modules();
const itemPurchased = modules?.insider?.itemPurchased;
if (!itemPurchased) return;
await itemPurchased({
saleID: "order_12345",
product: {
productID: "12345",
name: "iPhone 15",
taxonomy: ["electronics", "smartphones"],
imageURL: "https://example.com/iphone15.jpg",
price: 999.99,
currency: "USD"
}
})
Object containing sale and product information.
Unique sale identifier.
Product object.
Tracks items added to cart.
Example:
const modules = await Eitri.modules();
const itemAddedToCart = modules?.insider?.itemAddedToCart;
if (!itemAddedToCart) return;
await itemAddedToCart({
product: {
productID: "12345",
name: "iPhone 15",
taxonomy: ["electronics", "smartphones"],
imageURL: "https://example.com/iphone15.jpg",
price: 999.99,
currency: "USD"
}
})
Object containing product information.
Product object.
Tracks items removed from cart.
Example:
const modules = await Eitri.modules();
const itemRemovedFromCart = modules?.insider?.itemRemovedFromCart;
if (!itemRemovedFromCart) return;
await itemRemovedFromCart({
productID: "12345"
})
Object containing product ID.
Product identifier.
Tracks items added to wishlist.
Example:
const modules = await Eitri.modules();
const itemAddedToWishlist = modules?.insider?.itemAddedToWishlist;
if (!itemAddedToWishlist) return;
await itemAddedToWishlist({
product: {
productID: "12345",
name: "iPhone 15",
taxonomy: ["electronics", "smartphones"],
imageURL: "https://example.com/iphone15.jpg",
price: 999.99,
currency: "USD"
}
})
Object containing product information.
Product object.
Tracks items removed from wishlist.
Example:
const modules = await Eitri.modules();
const itemRemovedFromWishlist = modules?.insider?.itemRemovedFromWishlist;
if (!itemRemovedFromWishlist) return;
await itemRemovedFromWishlist({
productID: "12345"
})
Object containing product ID.
Product identifier.
Set of methods that allow Eitri shopping apps to interact with Insider SDK.