Product View
Track when users view a product page. This is essential for abandoned browse campaigns and product recommendations.
When to use
Add this event to all product detail pages.
Implementation
- JavaScript
- cURL
- Python
- PHP
<script type="text/javascript">
window._edrone = window._edrone || {};
_edrone.action_type = 'product_view';
_edrone.product_skus = 'SKU-12345';
_edrone.product_ids = '12345';
_edrone.product_titles = encodeURIComponent('Nike Air Max 90 - White');
_edrone.product_images = encodeURIComponent('https://yourstore.com/images/nike-air-max.jpg');
_edrone.product_urls = encodeURIComponent('https://yourstore.com/products/nike-air-max-90');
_edrone.product_availability = 1;
_edrone.product_category_ids = '1~2~3';
_edrone.product_category_names = encodeURIComponent('Shoes~Sneakers~Nike');
</script>
curl -X POST https://api.edrone.me/trace \
-d "app_id=YOUR_APP_ID" \
-d "action_type=product_view" \
-d "product_skus=SKU-12345" \
-d "product_ids=12345" \
-d "product_titles=Nike%20Air%20Max%2090%20-%20White" \
-d "product_images=https%3A%2F%2Fyourstore.com%2Fimages%2Fnike-air-max.jpg" \
-d "product_urls=https%3A%2F%2Fyourstore.com%2Fproducts%2Fnike-air-max-90" \
-d "product_availability=1" \
-d "product_category_ids=1~2~3" \
-d "product_category_names=Shoes~Sneakers~Nike" \
-d "sender_type=server"
import requests
from urllib.parse import quote
response = requests.post('https://api.edrone.me/trace', data={
'app_id': 'YOUR_APP_ID',
'action_type': 'product_view',
'product_skus': 'SKU-12345',
'product_ids': '12345',
'product_titles': quote('Nike Air Max 90 - White'),
'product_images': quote('https://yourstore.com/images/nike-air-max.jpg'),
'product_urls': quote('https://yourstore.com/products/nike-air-max-90'),
'product_availability': '1',
'product_category_ids': '1~2~3',
'product_category_names': quote('Shoes~Sneakers~Nike'),
'sender_type': 'server'
})
<?php
$data = http_build_query([
'app_id' => 'YOUR_APP_ID',
'action_type' => 'product_view',
'product_skus' => 'SKU-12345',
'product_ids' => '12345',
'product_titles' => 'Nike Air Max 90 - White',
'product_images' => 'https://yourstore.com/images/nike-air-max.jpg',
'product_urls' => 'https://yourstore.com/products/nike-air-max-90',
'product_availability' => '1',
'product_category_ids' => '1~2~3',
'product_category_names' => 'Shoes~Sneakers~Nike',
'sender_type' => 'server'
]);
$ch = curl_init('https://api.edrone.me/trace');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
Required fields
| Field | Description | Example |
|---|---|---|
action_type | Event type | product_view |
product_ids | Unique product ID | 12345 |
product_titles | Product name (URL-encoded) | Nike%20Air%20Max |
product_images | Full image URL (URL-encoded) | https://... |
product_urls | Full product URL (URL-encoded) | https://... |
product_category_ids | Category IDs (~ separated) | 1~2~3 |
product_category_names | Category names (~ separated) | Shoes~Sneakers~Nike |
Optional fields
| Field | Description | Example |
|---|---|---|
product_skus | Product SKU | SKU-12345 |
product_availability | In stock (1) or not (0) | 1 |
Category hierarchy
Use ~ to separate category levels (parent to child):
// Category path: Home > Shoes > Sneakers > Nike
_edrone.product_category_ids = '1~2~3~4';
_edrone.product_category_names = 'Home~Shoes~Sneakers~Nike';