When running Cash on Delivery (COD) campaigns on Meta (Facebook and Instagram), optimizing for the wrong conversion event can ruin your ad performance and ROAS. Many ecommerce brands still optimize their ads on the “Purchase” event — but in COD, a “purchase” doesn’t mean the customer has actually paid. The real success in COD comes only when the order is delivered and paid for.
That’s why optimizing your Facebook ads on the “Delivered” event — not “Purchase” — is essential for COD success.
Why “Delivered” Is Better Than “Purchase” for COD
In prepaid ecommerce, a “Purchase” means revenue collected. But in COD:
-
Many “purchases” never get delivered or paid for.
-
Cancellations, fake orders, or refused deliveries are common.
-
Optimizing ads on “purchase” data teaches Facebook to find low-quality users.
By tracking and optimizing on “Delivered”, you train Facebook’s algorithm to find customers who actually receive and pay for their orders — improving your return on ad spend (ROAS) and reducing wasted ad budget.
How eGrow Automates “Delivered” Event Tracking
eGrow makes this process simple. When you connect your shipping company to eGrow using a webhook integration, eGrow automatically receives notifications whenever an order’s status changes — including when it’s delivered.
Then, using the Facebook Conversion API, eGrow sends a real “order_delivered” event directly to your Facebook Pixel.
This lets you create ad campaigns optimized for delivered orders instead of just “purchases.”
Step-by-Step Setup Guide
1. Connect Your Shipping Company with eGrow
-
Make sure your shipping company integration in eGrow is fully configured with webhooks.
-
This ensures order statuses automatically update to “delivered” when the shipment is completed.
2. Get Your Facebook Access Token
-
Go to your Business Manager Settings.
-
From the left menu, open Events Manager → select your Pixel.
-
Click Settings → Set up direct integration → Set up with Dataset Quality API.
-
Make sure your Pixel is selected under Select dataset.
-
Generate your Access Token.
-
Copy and save the token securely — Facebook will not show it again.
3. Create an Automation in eGrow
-
Go to Automations → Create New.
-
Trigger: Order Updated
-
Condition: Order stage has changed to Delivered
-
Action: Call Custom API
4. Configure the API Call
Endpoint & Method
POST https://graph.facebook.com/v19.0/{pixel}/events?access_token={access_token}
Replace {pixel} and {access_token} with your actual values.
Headers
Content-Type: application/json
Request Body (RAW)
{
"data": [
{
"event_name": "delivered_order",
"event_time": time(),
"action_source": "website",
"user_data": {
"em": ["sha256({{order_contact_email}})"],
"ph": ["sha256({{order_contact_phone}})"]
}
}
]
}
5. Test Your Automation
-
Click Test.
-
Replace:
sha256({{order_contact_email}}) with87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674sha256({{order_contact_phone}})with 3da672ba5dcc3e2958d881c1bf2efbaac85e1a5b2f90ea84452accdca46ece0b- time() with current timestamp in seconds, open https://www.epochconverter.com and copy value you see in The current Unix epoch time is (for example 1762849126)
- Run the test.
-
A successful response from Meta should look like:
{
"events_received": 1,
"fbtrace_id": "AHUDU7M5hW_Xsax7Haa9ZAB"
}
6. Save and Go Live
Once the test passes, save your automation.
Now, every time an order is marked Delivered by your shipping company, eGrow will automatically send a delivered_order event to Facebook — giving you the most accurate and profitable optimization data possible.
Final Thoughts
If you’re running COD campaigns and still optimizing for “Purchase,” you’re training Facebook on incomplete data.
By shifting to Delivered events through eGrow’s Conversion API automation, you’ll:
-
Target real buyers who actually receive and pay for orders.
-
Reduce wasted ad spend on unfulfilled CODs.
-
Boost ROAS and profitability across all campaigns.
eGrow turns your shipping data into smarter ads — automatically.
Start optimizing your Facebook ads for real results, not empty “purchases.”
No comments yet. Be the first to comment!