Mobile Setup
Send analytics events from your iOS or Android mobile app to Hardal using the HTTP POST API with JSON payloads and custom event fields
Event Schema
Send a POST request to your Hardal endpoint for every event.
POST https://signal.<yourcustomdomain>.com/push/hardal
Required header: Content-Type: application/json
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "your_event_name",
"url": "app://screen-name",
"title": "Screen Title",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"your_field": "your_value",
"another_field": 123
}
}
}'
Response codes: 200 Success — 400 Invalid request — 401 Invalid Signal ID
Consent Parameter
Use consent parameter if you are planning to use Destinations for sending data to consent requiring endpoints; such as Ads channels.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "your_event_name",
"url": "https://yourdomain.com/page",
"title": "Page Title",
"device_type": "desktop",
"language": "en-US",
"platform": "web",
"data": {
"your_field": "your_value",
"another_field": 123,
"consent": true
}
}
}'
Consent is required for Destinations in Marketing category. This requirement might change due to your region and regulations.
Navigate to the related section for recommended events.
Sales Events
Track product views, cart actions, checkout steps, purchases, and refunds
Lead Events
Track form submissions, signups, logins, shares, subscriptions, and trials
Game Events
Track virtual currency, levels, scores, achievements, and tutorials
App Status
Track app installs, opens, and updates
Identify
Link events to known users after login, signup, or consent
Sales
page_view
Fires when a user views a screen.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "page_view",
"url": "app://home",
"title": "Home",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"screen_name": "HomeScreen"
}
}
}'
view_item
Fires when a user views a product detail screen.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "view_item",
"url": "app://product/YOGA-MAT-PRO",
"title": "ZenFlex Pro Yoga Mat",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"currency": "USD",
"value": 79.99,
"items": [
{
"item_id": "YOGA-MAT-PRO",
"item_name": "ZenFlex Pro Yoga Mat",
"item_brand": "FlowGear",
"item_category": "Sports",
"item_category2": "Yoga",
"price": 79.99,
"quantity": 1
}
]
}
}
}'
view_item_list
Fires when a user views a product list.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "view_item_list",
"url": "app://discover/top-picks",
"title": "Top Picks For You",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"item_list_id": "top_picks",
"item_list_name": "Top Picks For You",
"items": [
{
"item_id": "BOTTLE-INS-32",
"item_name": "HydroKeep Insulated Bottle 32oz",
"item_brand": "HydroKeep",
"item_category": "Sports",
"item_category2": "Hydration",
"price": 34.99,
"quantity": 1,
"index": 0
}
]
}
}
}'
select_item
Fires when a user taps a product from a list.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "select_item",
"url": "app://search?q=backpack",
"title": "Search Results",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"item_list_id": "search_results",
"item_list_name": "Search Results",
"items": [
{
"item_id": "BAG-TREK-40L",
"item_name": "SummitPack 40L Hiking Backpack",
"item_brand": "TrailBound",
"item_category": "Outdoor",
"item_category2": "Backpacks",
"price": 119.00,
"quantity": 1,
"index": 3
}
]
}
}
}'
view_promotion
Fires when a user views a promotion.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "view_promotion",
"url": "app://home",
"title": "Home",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"promotion_id": "PROMO_SUMMER25",
"promotion_name": "Summer Splash Sale",
"creative_name": "summer_splash_hero",
"creative_slot": "app_home_carousel"
}
}
}'
select_promotion
Fires when a user taps a promotion.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "select_promotion",
"url": "app://home",
"title": "Home",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"promotion_id": "PROMO_SUMMER25",
"promotion_name": "Summer Splash Sale",
"creative_name": "summer_splash_hero",
"creative_slot": "app_home_carousel"
}
}
}'
search
Fires when a user performs an in-app search.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "search",
"url": "app://search",
"title": "Search",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"search_term": "noise cancelling headphones"
}
}
}'
add_to_cart
Fires when a user adds an item to their cart.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "add_to_cart",
"url": "app://product/DRONE-MINI-4K",
"title": "SkyLens Mini 4K Drone",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"currency": "USD",
"value": 249.00,
"items": [
{
"item_id": "DRONE-MINI-4K",
"item_name": "SkyLens Mini 4K Drone",
"item_brand": "SkyLens",
"item_category": "Electronics",
"item_category2": "Drones",
"price": 249.00,
"quantity": 1
}
]
}
}
}'
remove_from_cart
Fires when a user removes an item from their cart.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "remove_from_cart",
"url": "app://cart",
"title": "Cart",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"currency": "USD",
"value": 34.99,
"items": [
{
"item_id": "BOTTLE-INS-32",
"item_name": "HydroKeep Insulated Bottle 32oz",
"item_brand": "HydroKeep",
"item_category": "Sports",
"item_category2": "Hydration",
"price": 34.99,
"quantity": 1
}
]
}
}
}'
add_to_wishlist
Fires when a user adds an item to their wishlist.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "add_to_wishlist",
"url": "app://product/LAMP-DESK-ARC",
"title": "ArcLight Desk Lamp",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"currency": "USD",
"value": 189.00,
"items": [
{
"item_id": "LAMP-DESK-ARC",
"item_name": "ArcLight Adjustable Desk Lamp",
"item_brand": "LumenCraft",
"item_category": "Home",
"item_category2": "Lighting",
"price": 189.00,
"quantity": 1
}
]
}
}
}'
view_cart
Fires when a user views their cart.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "view_cart",
"url": "app://cart",
"title": "Cart",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"currency": "USD",
"value": 328.99,
"items": [
{
"item_id": "DRONE-MINI-4K",
"item_name": "SkyLens Mini 4K Drone",
"item_brand": "SkyLens",
"item_category": "Electronics",
"item_category2": "Drones",
"price": 249.00,
"quantity": 1
},
{
"item_id": "YOGA-MAT-PRO",
"item_name": "ZenFlex Pro Yoga Mat",
"item_brand": "FlowGear",
"item_category": "Sports",
"item_category2": "Yoga",
"price": 79.99,
"quantity": 1
}
]
}
}
}'
begin_checkout
Fires when a user begins checkout.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "begin_checkout",
"url": "app://checkout",
"title": "Checkout",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"currency": "USD",
"value": 328.99,
"coupon": "APPFIRST",
"items": [
{
"item_id": "DRONE-MINI-4K",
"item_name": "SkyLens Mini 4K Drone",
"item_brand": "SkyLens",
"item_category": "Electronics",
"item_category2": "Drones",
"price": 249.00,
"quantity": 1
},
{
"item_id": "YOGA-MAT-PRO",
"item_name": "ZenFlex Pro Yoga Mat",
"item_brand": "FlowGear",
"item_category": "Sports",
"item_category2": "Yoga",
"price": 79.99,
"quantity": 1
}
]
}
}
}'
add_shipping_info
Fires when a user submits shipping information.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "add_shipping_info",
"url": "app://checkout/shipping",
"title": "Shipping",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"currency": "USD",
"value": 328.99,
"coupon": "APPFIRST",
"shipping_tier": "Express",
"items": [
{
"item_id": "DRONE-MINI-4K",
"item_name": "SkyLens Mini 4K Drone",
"item_brand": "SkyLens",
"item_category": "Electronics",
"price": 249.00,
"quantity": 1
},
{
"item_id": "YOGA-MAT-PRO",
"item_name": "ZenFlex Pro Yoga Mat",
"item_brand": "FlowGear",
"item_category": "Sports",
"price": 79.99,
"quantity": 1
}
]
}
}
}'
add_payment_info
Fires when a user submits payment information.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "add_payment_info",
"url": "app://checkout/payment",
"title": "Payment",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"currency": "USD",
"value": 328.99,
"coupon": "APPFIRST",
"payment_type": "Apple Pay",
"items": [
{
"item_id": "DRONE-MINI-4K",
"item_name": "SkyLens Mini 4K Drone",
"item_brand": "SkyLens",
"item_category": "Electronics",
"price": 249.00,
"quantity": 1
},
{
"item_id": "YOGA-MAT-PRO",
"item_name": "ZenFlex Pro Yoga Mat",
"item_brand": "FlowGear",
"item_category": "Sports",
"price": 79.99,
"quantity": 1
}
]
}
}
}'
purchase
Fires when a user completes a purchase.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "purchase",
"url": "app://order/confirmation",
"title": "Order Confirmed",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"transaction_id": "APP-ORD-20250718-4412",
"value": 328.99,
"currency": "USD",
"tax": 26.32,
"shipping": 9.99,
"coupon": "APPFIRST",
"payment_type": "Apple Pay",
"items": [
{
"item_id": "DRONE-MINI-4K",
"item_name": "SkyLens Mini 4K Drone",
"item_brand": "SkyLens",
"item_category": "Electronics",
"item_category2": "Drones",
"price": 249.00,
"quantity": 1
},
{
"item_id": "YOGA-MAT-PRO",
"item_name": "ZenFlex Pro Yoga Mat",
"item_brand": "FlowGear",
"item_category": "Sports",
"item_category2": "Yoga",
"price": 79.99,
"quantity": 1
}
]
}
}
}'
refund
Fires when a user receives a refund. Include items for item-level reporting.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "refund",
"url": "app://order/APP-ORD-20250718-4412",
"title": "Refund",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"transaction_id": "APP-ORD-20250718-4412",
"value": 79.99,
"currency": "USD",
"tax": 6.40,
"items": [
{
"item_id": "YOGA-MAT-PRO",
"item_name": "ZenFlex Pro Yoga Mat",
"item_brand": "FlowGear",
"item_category": "Sports",
"price": 79.99,
"quantity": 1
}
]
}
}
}'
Leads
generate_lead
Fires when a user submits a lead form.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "generate_lead",
"url": "app://contact",
"title": "Contact",
"device_type": "mobile",
"language": "en-IN",
"platform": "app",
"data": {
"lead_id": "LEAD-55021",
"currency": "USD",
"value": 750,
"lead_source": "In-App Banner",
"name": "Priya Sharma",
"category": "Small Business",
"type": "quote_request",
"label": "Q3 Push Campaign",
"country": "IN",
"city": "Mumbai",
"district": "Maharashtra"
}
}
}'
sign_up
Fires when a user creates an account.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "sign_up",
"url": "app://register",
"title": "Sign Up",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"method": "Apple"
}
}
}'
login
Fires when a user logs in.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "login",
"url": "app://login",
"title": "Login",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"method": "Biometrics"
}
}
}'
share
Fires when a user shares content.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "share",
"url": "app://product/DRONE-MINI-4K",
"title": "Share",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"method": "iMessage",
"content_type": "product",
"item_id": "DRONE-MINI-4K"
}
}
}'
subscribe
Fires when a user subscribes to notifications.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "subscribe",
"url": "app://settings/notifications",
"title": "Notification Settings",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"list_name": "Deal Alerts",
"list_id": "PUSH_DEALS"
}
}
}'
trial_start
Fires when a user starts a free trial.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "trial_start",
"url": "app://premium",
"title": "Go Pro",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"plan": "pro",
"trial_days": 7,
"value": 9.99,
"currency": "USD"
}
}
}'
Games
earn_virtual_currency
Fires when a user earns virtual currency.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "earn_virtual_currency",
"url": "app://game/reward",
"title": "Reward",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"virtual_currency_name": "Crystals",
"value": 200
}
}
}'
spend_virtual_currency
Fires when a user spends virtual currency.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "spend_virtual_currency",
"url": "app://game/shop",
"title": "Shop",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"virtual_currency_name": "Crystals",
"value": 80,
"item_name": "Flame Shield"
}
}
}'
tutorial_begin
Fires when a user begins a tutorial. No additional parameters.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "tutorial_begin",
"url": "app://game/tutorial",
"title": "Tutorial",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {}
}
}'
tutorial_complete
Fires when a user completes a tutorial. No additional parameters.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "tutorial_complete",
"url": "app://game/tutorial",
"title": "Tutorial Complete",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {}
}
}'
App Status
app_install
Fires when a user opens the app for the first time. No additional parameters.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "app_install",
"url": "app://launch",
"title": "First Launch",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {}
}
}'
app_open
Fires when a user opens the app (not first time).
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "app_open",
"url": "app://home",
"title": "Home",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"from_push": true,
"deeplink_url": "app://product/DRONE-MINI-4K"
}
}
}'
app_update
Fires when a user updates the app.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "event",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "app_update",
"url": "app://home",
"title": "Home",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"previous_version": "3.1.2"
}
}
}'
Identify
distinct
Fires when a user logs in, signs up, or gives consent. Links subsequent events to a known user profile.
curl -X POST https://signal.yourdomain.com/push/hardal \
-H "Content-Type: application/json" \
-d '{
"type": "identify",
"payload": {
"website": "YOUR_WEBSITE_ID",
"name": "distinct",
"url": "app://account",
"title": "Account",
"device_type": "mobile",
"language": "en-US",
"platform": "app",
"data": {
"email": "priya@example.com",
"firstName": "Priya",
"lastName": "Sharma",
"customerId": "USR_78310",
"phone": 919876543210,
"birthday": "1992-09-05",
"gender": "female",
"city": "Mumbai",
"state": "MH",
"zip": "400001",
"country": "IN"
}
}
}'
Item Object
Used by view_item, view_item_list, select_item, add_to_cart, remove_from_cart, add_to_wishlist, view_cart, begin_checkout, add_shipping_info, add_payment_info, purchase, and refund.
view_item, add_to_cart, and purchase must send the same item details for accurate funnel reporting.
Unique product identifier. Example: DRONE-MINI-4K
Product name. Example: SkyLens Mini 4K Drone
Brand name. Example: SkyLens
Primary category. Example: Electronics
Unit price. Use discounted price if applicable. Example: 249.00
Quantity. Defaults to 1. Example: 1