{"id":1597,"date":"2026-02-12T11:02:22","date_gmt":"2026-02-12T11:02:22","guid":{"rendered":"https:\/\/www.kadam.net\/blog\/?p=1597"},"modified":"2026-05-07T11:04:39","modified_gmt":"2026-05-07T11:04:39","slug":"ga4-for-performance-teams","status":"publish","type":"post","link":"https:\/\/www.kadam.net\/en\/blog\/advertisers\/ga4-for-performance-teams\/","title":{"rendered":"GA4 for Performance Teams: Models, Metrics, and Strategies"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>Google Analytics 4 in Performance Marketing<\/strong><\/h2>\n\n\n\n<p>GA4 is built on an event-based model: every user interaction \u2014 page view, click, form submission, or purchase \u2014 is recorded as a separate event.<\/p>\n\n\n\n<p>Unlike Universal Analytics, which relied on session-based metrics, GA4 connects user touchpoints into a single journey. For cross-device tracking (when a user starts on mobile and converts on desktop), you need to configure User-ID or enable Google Signals. Without this, GA4 only links events within the same device or browser.<\/p>\n\n\n\n<p>Traffic data from Kadam is sent to GA4 via UTM parameters in the destination URL. Kadam supports macro substitution (for example, ?utm_source=kadam&amp;utm_campaign={campaign_id}&amp;clickid={click_id}).<\/p>\n\n\n\n<p>Conversions are sent to GA4 from the advertiser\u2019s tracker (Voluum, Keitaro, RedTrack, etc.) via Measurement Protocol after receiving a postback from Kadam. Kadam itself does not send events to GA4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Key GA4 Metrics for Performance<\/strong><\/h2>\n\n\n\n<p>Key metrics include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>number of events and conversions<\/li>\n\n\n\n<li>engagement: scroll depth, time on page, clicks<\/li>\n\n\n\n<li>Session conversion rate and User conversion rate<\/li>\n\n\n\n<li>predictive metrics based on machine learning<\/li>\n<\/ul>\n\n\n\n<p>Performance CR (conversions \/ clicks) is calculated on the Kadam and tracker side.<\/p>\n\n\n\n<p>GA4 does not provide this metric directly. Instead, it offers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Session conversion rate (sessions with conversion \/ total sessions)<\/li>\n\n\n\n<li>User conversion rate (users with conversion \/ total users)<\/li>\n<\/ul>\n\n\n\n<p>To approximate performance CR in GA4, you need to configure custom events and calculate it via Explorations.<\/p>\n\n\n\n<p>Important: even then, the GA4 metric will always be lower than the tracker\u2019s CR, because GA4 only sees users who reached the landing page and were not blocked. Comparing Conversions \/ Clicks (Kadam) with Session conversion rate (GA4) directly is incorrect \u2014 these are fundamentally different metrics.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Attribution in GA4<\/strong><\/h2>\n\n\n\n<p>By default, GA4 uses a Data-driven attribution model: conversions are distributed across touchpoints based on their probabilistic contribution.<\/p>\n\n\n\n<p>Available alternatives:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Last click (paid and organic)<\/li>\n\n\n\n<li>Google paid channels last click<\/li>\n\n\n\n<li>First click (paid and organic)<\/li>\n<\/ul>\n\n\n\n<p>Linear, Position-based, and Time decay models were removed from GA4 in October 2023 and are no longer available.<\/p>\n\n\n\n<p>For performance traffic, it\u2019s important to understand limitations:<\/p>\n\n\n\n<p>GA4 does not work with postback logic and does not perform lead deduplication in the way affiliate trackers do.<\/p>\n\n\n\n<p>GA4 does have technical deduplication via event_id when using Measurement Protocol, but this only prevents duplicate event submissions \u2014 it does not match conversions to clicks.<\/p>\n\n\n\n<p>Therefore:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the tracker is the source of truth for conversions and billing<\/li>\n\n\n\n<li>GA4 is used for behavioral analysis<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>GA4 + Postback + Tracker Setup<\/strong><\/h2>\n\n\n\n<p>A typical flow for push and pop traffic:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>A user clicks a push\/pop ad \u2014 Kadam records the click and assigns a unique click_id.<\/li>\n\n\n\n<li>Kadam redirects to the tracker URL (Voluum, Keitaro, RedTrack), including UTM parameters and click_id.<\/li>\n\n\n\n<li>The tracker logs the click and redirects the user to the offer.<\/li>\n\n\n\n<li>The user completes a conversion \u2014 the affiliate network or CRM sends a postback to the tracker.<\/li>\n\n\n\n<li>The tracker matches the conversion using click_id:\n<ul class=\"wp-block-list\">\n<li>sends a postback back to Kadam<\/li>\n\n\n\n<li>sends an event to GA4 via Measurement Protocol<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Important: Kadam is a traffic source, not a data relay.<\/p>\n\n\n\n<p>The tracker receives the click because its URL is set as the campaign destination.<\/p>\n\n\n\n<p>Without click_id, matching conversions to clicks is impossible \u2014 it is a required parameter.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Traffic Sources and Analytics in GA4<\/strong><\/h2>\n\n\n\n<p>GA4 does not automatically categorize push and pop traffic. Without proper tagging, they fall into Direct or Referral.<\/p>\n\n\n\n<p>Even with UTM tagging, GA4 typically assigns push\/pop traffic to the \u201cOther\u201d channel (or sometimes \u201cDisplay\u201d).<\/p>\n\n\n\n<p>To separate it into a dedicated channel, create a Custom Channel Group:<br>Admin \u2192 Data Display \u2192 Channel groups.<\/p>\n\n\n\n<p>To avoid data loss:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>use UTM parameters<\/li>\n\n\n\n<li>minimize redirects<\/li>\n\n\n\n<li>ensure parameters are preserved<\/li>\n<\/ul>\n\n\n\n<p>Each redirect increases the risk of losing UTM parameters and click_id.<\/p>\n\n\n\n<p>Cost and impression data can also be uploaded to GA4 via Data Import (Admin \u2192 Data Import \u2192 Cost data), allowing you to calculate ROI directly in GA4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Kadam Macros in UTM Tagging<\/strong><\/h2>\n\n\n\n<p>Kadam allows you to use macros in destination URLs. These macros are automatically replaced with real values at the moment of the click.<\/p>\n\n\n\n<p>This enables you to pass traffic parameters to both the tracker and GA4 without manually tagging each campaign.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Required for Matching (Tracker + GA4)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>{click_id} \u2014 unique click identifier (required for postback)<\/li>\n\n\n\n<li>{campaign_id} \u2014 campaign ID<\/li>\n\n\n\n<li>{ad_id} \u2014 creative ID<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Traffic Parameters (for Attribution and Segmentation)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>{country_code} \u2014 country ISO code (US, BR, etc.)<\/li>\n\n\n\n<li>{city} \u2014 city<\/li>\n\n\n\n<li>{subdivision} \u2014 region\/state<\/li>\n\n\n\n<li>{platform} \u2014 OS (Windows, Android, iOS)<\/li>\n\n\n\n<li>{platform_version} \u2014 OS version<\/li>\n\n\n\n<li>{browser} \u2014 browser<\/li>\n\n\n\n<li>{device} \u2014 device type (DESKTOP \/ MOBILE \/ TABLET)<\/li>\n\n\n\n<li>{isp} \u2014 internet provider<\/li>\n\n\n\n<li>{language} \u2014 browser language<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Placement Parameters (for Optimization)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>{site_id} \u2014 publisher ID<\/li>\n\n\n\n<li>{block_id} \u2014 ad placement ID<\/li>\n\n\n\n<li>{page_cat_id} \u2014 page category ID (Adult, News, etc.)<\/li>\n\n\n\n<li>{page_url} \u2014 placement URL<\/li>\n\n\n\n<li>{site} \u2014 referrer<\/li>\n\n\n\n<li>{sub_age} \u2014 push subscription age<\/li>\n\n\n\n<li>{area} \u2014 local area (if available)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Financial and Technical Parameters<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>{cpc} \u2014 actual click cost<\/li>\n\n\n\n<li>{price_model} \u2014 pricing model (CPC \/ CPM \/ CPA Target)<\/li>\n\n\n\n<li>{gaid} \u2014 Google Advertising ID (Android)<\/li>\n\n\n\n<li>{idfa} \u2014 Identifier for Advertisers (iOS)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Example URL with UTM and Tracking Parameters<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/offer.com\/landing?utm_source=kadam&#038;utm_medium=push&#038;utm_campaign={campaign_id}&#038;utm_content={ad_id}&#038;utm_term={country_code}&#038;clickid={click_id}&#038;geo={country_code}&#038;platform={platform}&#038;cpc={cpc}\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Important<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>click_id is the key parameter linking Kadam, the tracker, and GA4<\/li>\n\n\n\n<li>losing click_id or UTM parameters breaks attribution<\/li>\n\n\n\n<li>the more parameters you pass, the deeper your analytics<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Campaign Optimization Using GA4 Data<\/strong><\/h2>\n\n\n\n<p>GA4 does not run A\/B tests \u2014 Google Optimize was discontinued on September 30, 2023.<\/p>\n\n\n\n<p>Alternatives:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>VWO<\/li>\n\n\n\n<li>AB Tasty<\/li>\n\n\n\n<li>Optimizely<\/li>\n\n\n\n<li>GA4 + Google Ads Experiments<\/li>\n<\/ul>\n\n\n\n<p>With Kadam:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>traffic distribution is handled on the network side<\/li>\n\n\n\n<li>GA4 tracks user behavior<\/li>\n\n\n\n<li>optimization focuses on combinations with the best CR and ROI<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Data Quality and Discrepancies<\/strong><\/h2>\n\n\n\n<p>To ensure data quality:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>audit UTM tagging<\/li>\n\n\n\n<li>validate click_id tracking<\/li>\n\n\n\n<li>compare GA4 and tracker data<\/li>\n\n\n\n<li>account for blockers<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why Data Differs<\/strong><\/h3>\n\n\n\n<p>Main reasons:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>different attribution models<\/li>\n\n\n\n<li>different user identification methods<\/li>\n\n\n\n<li>blockers (JS, cookies)<\/li>\n\n\n\n<li>data loss during redirects<\/li>\n\n\n\n<li>different tracking points<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Acceptable Discrepancies<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>display traffic: 10\u201320% \u2014 normal<\/li>\n\n\n\n<li>push\/pop traffic: 30\u201350% \u2014 typical<\/li>\n<\/ul>\n\n\n\n<p>Investigate when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>discrepancy >50%<\/li>\n\n\n\n<li>or a sudden change occurs<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>FAQ<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>How does GA4 attribution differ from a tracker?<\/strong><\/h3>\n\n\n\n<p>GA4 distributes conversion value across touchpoints (data-driven).<br>Trackers typically use last-click attribution.<\/p>\n\n\n\n<p>Use:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>tracker \u2014 for conversions and billing<\/li>\n\n\n\n<li>GA4 \u2014 for behavioral insights<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why connect GA4 with postbacks?<\/strong><\/h3>\n\n\n\n<p>Without postbacks, GA4 misses conversions that happen outside the browser.<br>This leads to incomplete performance data.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why do GA4 and Kadam data differ?<\/strong><\/h3>\n\n\n\n<p>Due to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>attribution differences<\/li>\n\n\n\n<li>user identification<\/li>\n\n\n\n<li>delays<\/li>\n\n\n\n<li>blockers<\/li>\n<\/ul>\n\n\n\n<p>This is normal within acceptable ranges.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A detailed GA4 guide for performance marketing: events, attribution, postbacks, tracker integration, and push, pop, and redirect traffic analysis.<\/p>\n","protected":false},"author":5,"featured_media":1598,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[2],"tags":[92],"class_list":["post-1597","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-advertisers","tag-guides-tutorials"],"custom_author":"Kadam","_links":{"self":[{"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/posts\/1597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/comments?post=1597"}],"version-history":[{"count":1,"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/posts\/1597\/revisions"}],"predecessor-version":[{"id":1599,"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/posts\/1597\/revisions\/1599"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/media\/1598"}],"wp:attachment":[{"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/media?parent=1597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/categories?post=1597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kadam.net\/blog\/wp-json\/wp\/v2\/tags?post=1597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}