Webhooks
Webhooks deliver granular performance data for your marketing campaigns to your specified endpoint. In essence, they are a different way of ingesting the same data you can request via the Analytics API. Instead of actively requesting data, with a webhook data is delivered to your server endpoint on a daily basis.
Webhook payloads are sent as JSON arrays containing detailed analytics information - this document describes the structure of the payloads.
Webhook Configuration
To configure webhooks for your account:
- Vist the webhooks configuration page in your Tracify dashboard
- Provide the endpoint URL where you want to receive webhook payloads
Payload Structure
Webhook payloads are delivered as JSON arrays containing analytics objects. Each object represents a complete set of analytics data for specific day split by new, returning, and total dimensions.
We only support one type of webhook payload at this time, and it is our most low level / granular structure. If you're looking for a more structured approach, require filtering, or requesting specific data, please use the Analytics API. The webhook payload will give you a breakdown to the lowest level dimension.
Data that is not available, because it doesn't apply or exist for the given ad, will not return a field.
Dimensions and Duplicated Data
When available, our webhook will return data split by customer type: new, returning, and total. For a single ad, you'll receive a payload that looks (simplified) like this:
[
{
"date": "2025-11-18",
"new_vs_returning": "new",
"campaign_id": "1111111111111111111",
"ad_spend": 100,
"customer_purchase": 7,
},
{
"date": "2025-11-18",
"new_vs_returning": "returning",
"campaign_id": "1111111111111111111",
"ad_spend": 100,
"customer_purchase": 3,
},
{
"date": "2025-11-18",
"new_vs_returning": "total",
"campaign_id": "1111111111111111111",
"ad_spend": 100,
"customer_purchase": 10,
}
customer_purchase - does not repeat.
Important
Take note of dimensions that repeat when storing and summing data. Our webhook format is designed to return all data - it may be more efficient to use the Analytics API to request the data you need, if you don't need maximum granularity.
Non-repeating Metrics
The following metrices are split by new, returning, and total, and thus do not repeat.
customer_purchasecustomer_revenuecustomer_num_itemsvisitor_pageviewvisitor_unique_pageviewvisitor_productviewvisitor_unique_productviewvisitor_addtocartvisitor_unique_addtocartvisitor_checkoutvisitor_unique_checkoutreturn_on_ad_spendcost_per_orderconversion_rateaverage_order_valuediscount_code_redemption_ratecustomer_acquisition_costnew_customer_purchase_rationew_visitor_pageview_ratio
Full Payload Example
[
{
"date": "2025-11-18",
"new_vs_returning": "new",
"channel": "meta",
"account_id": "string",
"campaign_id": "string",
"adset_id": "string",
"ad_id": "string",
"campaign_name": "string",
"adset_name": "string",
"ad_name": "string",
"ad_status": "string",
"adset_status": "string",
"campaign_status": "string",
"advertising_channel_type": "string",
"ads_count": 0,
"image": "string",
"video": "string",
"ad_creative_id": "string",
"influencer_id": "string",
"influencer_name": "string",
"cooperation_id": "string",
"cooperation_name": "string",
"placement_type": "string",
"placement_source": "string",
"labels": [
"string"
],
"cooperation_link_id": "string",
"cooperation_link_title": "string",
"discount_code": "string",
"ad_spend": 0,
"influencer_fixed_commission": 0,
"clicks": 0,
"link_click": 0,
"important_clicks": 0,
"impressions": 0,
"reach": 0,
"comment": 0,
"landing_page_view": 0,
"conversions": 0,
"all_conversions": 0,
"video_view": 0,
"onsite_conversion_post_save": 0,
"video_avg_time_watched_actions": 0,
"click_through_rate": 0,
"frequency": 0,
"thumbstop_ratio": 0,
"cost_per_click": 0,
"cost_per_mille": 0,
"customer_purchase": 0,
"customer_revenue": 0,
"customer_num_items": 0,
"visitor_pageview": 0,
"visitor_unique_pageview": 0,
"visitor_productview": 0,
"visitor_unique_productview": 0,
"visitor_addtocart": 0,
"visitor_unique_addtocart": 0,
"visitor_checkout": 0,
"visitor_unique_checkout": 0,
"influencer_variable_commission": 0,
"total_spend": 0,
"return_on_ad_spend": 0,
"cost_per_order": 0,
"conversion_rate": 0,
"average_order_value": 0,
"discount_code_redemption_rate": 0,
"customer_acquisition_cost": 0,
"new_customer_purchase_ratio": 0,
"new_visitor_pageview_ratio": 0
}
]
Field Definitions
The following is a description of each field in the webhook payload.
Basic Information
The date for which the analytics data is reported, formatted as YYYY-MM-DD.
Indicates whether the data represents new or returning customer activity. Values: "new" or "returning" or "total".
The marketing channel or platform source (e.g., "meta", "google", "tiktok")
Influencer Information
The unique identifier for the influencer or content creator.
The name of the influencer or content creator.
The unique identifier for the influencer cooperation.
The name of the influencer cooperation.
The type of ad placement within an influencer cooperation (e.g., "story", "feed", "reel").
The source or platform where the cooperation was placed.
Array of labels or tags associated with the cooperation.
The unique identifier for the cooperation tracking link.
cooperation_link_title · string
The title or description of the cooperation tracking link.
The discount code associated with the cooperation.
influencer_fixed_commission · number
The fixed commission amount paid to the influencer.
influencer_variable_commission · number
The variable commission amount paid to the influencer based on performance.
Tracify Metrics
The total number of customer purchases attributed to the advertisement.
The total revenue generated from customer purchases attributed to the advertisement.
The total number of items purchased by customers attributed to the advertisement.
The total number of page views from visitors attributed to the advertisement.
visitor_unique_pageview · number
The number of unique visitors who viewed any page on your site. Unique's are counted per session.
The total number of product page views from visitors attributed to the campaign.
visitor_unique_productview · number
The number of unique visitors who viewed product pages. Unique's are counted per session.
The total number of add-to-cart actions from visitors attributed to the campaign.
visitor_unique_addtocart · number
The number of unique add-to-cart actions. Unique's are counted per session.
The total number of checkout attempts from visitors attributed to the campaign.
visitor_unique_checkout · number
The number of unique visitors who initiated checkout. Unique's are counted per session.
Tracify Calculated KPIs
Total spend is ad spend across all channels including influencer commissions.
The average cost per click on the advertisement. ad_spend / clicks
The cost per thousand impressions (CPM). (ad_spend / impressions) * 1000
The revenue generated for every dollar spent on advertising (ROAS). customer_revenue / ad_spend
The average cost to generate one order. total_spend / customer_purchase
The percentage of visitors who completed a conversion. (conversions / visitor_unique_pageview) * 100
The average monetary value of each order. customer_revenue / customer_purchase
discount_code_redemption_rate · number
The percentage of conversions that used the discount code. (conversions_with_discount / conversions) * 100
customer_acquisition_cost · number
The average cost to acquire a new customer. total_spend / new_customers
new_customer_purchase_ratio · number
The percentage of purchases from new customers. (new_customer_purchases / total_purchases) * 100
new_visitor_pageview_ratio · number
The percentage of page views from new visitors. (new_visitor_pageviews / total_pageviews) * 100
Ad Platfom Information
The unique identifier for the advertising account.
The unique identifier for the advertising campaign.
The unique identifier for the ad set within the campaign.
The unique identifier for the specific advertisement.
The name of the advertising campaign.
The name of the ad set within the campaign.
The name of the specific advertisement.
The current status of the advertisement (e.g., "active", "paused", "archived").
The current status of the ad set (e.g., "active", "paused", "archived").
The current status of the campaign (e.g., "active", "paused", "archived").
advertising_channel_type · string
The type of advertising channel (e.g., "social", "search", "display").
The total number of ads in a given campaign.
URL or identifier for the ad image creative.
URL or identifier for the ad video creative.
The unique identifier for the ad creative asset.
Ad Platform Metrics
These metrics repeat for each change in the new_vs_returning dimension. They are imported via your connected ad manager accounts
The total amount spent on within your respective ad platform.
The total number of clicks on the advertisement (Channels other than Meta)
The total number of clicks on links within the advertisement (Meta only)
Important clicks are the sume of clicks and link clicks. Because Meta reports link clicks, we report them as a separate metric.
The total number of times the advertisement was displayed.
The number of unique individuals who saw the advertisement.
The total number of comments on the advertisement.
The total number of landing page views from the advertisement.
The total number of primary conversions attributed to the advertisement by the ad platform (e.g. Meta) and not by Tracify.
Applies to Google only. All conversions is a way of looking at all conversions as counted by Google across all campaigns. Learn more at Google's All Conversions documentation.
The total number of video views for video advertisements.
onsite_conversion_post_save · number
The number of conversions that occurred after users saved the content.
video_avg_time_watched_actions · number
The average time users spent watching video content.
???? The percentage of impressions that resulted in clicks. (clicks / impressions) * 100
The average number of times each person was exposed to the advertisement. impressions / reach. Meta only.
The percentage of users who watched at least 3 seconds of a video ad. Also known as Hook Rate. Meta only.