Skip to content

How to find and split Cross-network in GA4, step by step

Open Traffic acquisition in GA4 and find the Cross-network row. Add Session campaign and Session source platform to see what sits inside it. Check the Google Ads link and auto-tagging if it is empty, then split it with a custom channel group built on campaign names.

By , Founder & CEOUpdated 8 min read

Usually in three moves. Open Traffic acquisition in GA4 and find the Cross-network row. Add Session campaign to see which Google campaigns sit inside it. Then, if you want them apart, build a custom channel group that splits the row by campaign name. Check the Google Ads link first if the row is empty.

Two reports and one admin screen do the job. The hard part is naming campaigns today so GA4 can tell them apart tomorrow.

Step by step

  1. Open Traffic acquisition. It shows where new and returning users come from, one session at a time. The report opens on the session's channel group, which Google's help calls Session default channel grouping. Menu path: Reports > Acquisition > Traffic acquisition.
  2. Find the Cross-network row and note its revenue. Type Cross-network into the search bar above the table, then read Sessions and Total revenue. Google counts Total revenue as purchases, in-app purchases, subscriptions and ad revenue, minus refunds. Menu path: Traffic acquisition > search bar above the table.
  3. Add Session campaign as a secondary dimension. The row now breaks into the campaigns inside it, so Performance Max and Demand Gen sit on separate lines. Menu path: Traffic acquisition > the plus next to the dimension drop-down > Session campaign.
  4. Swap in Session source platform. Google defines it as the platform where you manage buying, such as Google Ads, with Manual for traffic that is not from Google media. A Manual line inside Cross-network is a tagged campaign whose name contains cross-network. Menu path: the same plus > Session source platform.
  5. Confirm the Google Ads link. Without it, Google's help says auto-tagged clicks still arrive as google / cpc, while new Google Ads dimensions such as Campaign name read (not set). Data from a new link reaches your reports within 48 hours. Menu path: Admin > Product links > Google Ads links.
  6. Check auto-tagging in Google Ads. Auto-tagging adds the click identifier Google needs to bring campaign and cost data into Analytics. In GA4 it also wins over manual UTM tags, so adding UTMs will not relabel those clicks. Menu path: Google Ads > Admin icon > Account settings > Auto-tagging > Tag the URL that people click through from my ad.
  7. Split the row with a custom channel group. Copy the default group, then add channels above Cross-network, one per campaign type. Give each two conditions: Default channel group is Cross-network, and Campaign name contains your tag, such as pmax. For example, a channel named Performance Max matches Cross-network plus pmax, and one named Demand Gen matches Cross-network plus dg. Traffic lands in the first channel it matches, and the group also applies to past data. Menu path: Admin > Data display > Channel groups > Create new channel group.
  8. Read the split where it works. Pick the new group as the primary dimension in Traffic acquisition or User acquisition. Google's help says custom channel groups cannot be used in the Key events paths report. Menu path: Traffic acquisition > dimension drop-down > your new channel group.
  9. Compare it with the key-event view. The All channels report breaks key events out by Default channel group, under your attribution model. Switch the table's dimension to Campaign to see the same campaigns by that rule. Menu path: Advertising > Planning > All channels > dimension drop-down > Campaign.

A worked example

For illustration, take an invented store that moved its Shopping budget into Performance Max at the start of May.

Traffic acquisition, Total revenue (invented)AprilMay
Paid Search€15,000€14,000
Paid Shopping€20,000€2,000
Cross-network€3,000€22,000
Google rows together€38,000€38,000

In this worked example, Paid Shopping lost €18,000 and Cross-network gained €19,000. For illustration, the Google rows together did not move at all: only the label did.

Step 3 then splits May's Cross-network row. The lines below are invented too.

Session campaign in Cross-network, May (invented)Total revenueSession source platform
pmax-shopping-feed€19,500Google Ads
dg-video-prospecting€1,500Google Ads
meta-cross-network-retargeting€1,000Manual

In the worked example, the last line is a Meta campaign that someone named with cross-network in it. If the name stays, Paid Social looks €1,000 poorer in this worked example while Cross-network looks richer. Fix the name in future tags, and let a custom channel group relabel the past.

One store's export is a reminder to leave room around a switch date. On its Journeys sheet, journeys of 2 to 3 touches took 12.5 days to buy. For illustration, a sale in early May may have started with an April Shopping click. Compare whole months, not the days either side of the change.

What should I check when the report looks wrong?

  • Cross-network is empty while Performance Max is spending. Check the link in step 5 and auto-tagging in step 6. Unlinked clicks still arrive as google / cpc, but without the Google Ads details GA4 uses to sort them into channels.
  • Google Ads shows more conversion value than the Cross-network row. Expected. Google's help says Google Analytics and Google Ads attribute key events differently. Compare the trend of the two, not their totals.
  • Cross-network changed after you switched attribution models. Only the key-event reports move. Traffic acquisition stays put, because session dimensions ignore the reporting attribution model.
  • Display shrank in the month you moved to Demand Gen. GA4 lists Demand Gen under Cross-network, so read Display and Cross-network together across the move.
  • (not set) appears as a campaign inside Cross-network. Google's help says new clicks from an unlinked Google Ads account show (not set) for Google Ads dimensions. Campaign names collected before the link broke stay as they were.
  • The custom group still shows one big Cross-network row. Your campaign names probably do not carry the type. A condition on Campaign name can only split what the names reveal.

Which Cross-network number should I quote?

GA4 keeps three channel dimensions, and Cross-network appears in all of them. Each one answers a different question.

DimensionWhere you find itWhat decides the row
Session default channel groupTraffic acquisitionThe session's source, by the last non-direct click
First user default channel groupUser acquisitionThe channel that first brought the user, kept as they return
Default channel groupAdvertising reportsCredit for the key event, under your attribution model

Quote the session figure when the question is what brings visits back. Quote the first-user figure when the question is who finds new buyers. Quote the key-event figure when the question is who gets credit for sales. One campaign can look large in one view and small in another, and nobody made a mistake.

What to do this week

  1. Run steps 1 to 4 for last month. Pass: you can name every campaign in Cross-network and its source platform. Fail: a Manual line or a (not set) campaign sits in the row.
  2. Put the campaign type in every Google campaign name. A short tag such as pmax or dg is enough. Pass: each Cross-network campaign carries a tag your channel group can catch. Fail: one name says neither, so its revenue stays in a plain Cross-network row.
  3. Build the custom channel group and test it on last quarter. Use step 7, then open Traffic acquisition with the new group. Pass: Performance Max and Demand Gen show as separate rows, past months included. Fail: they still share a row, so go back to the names.

Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework

Sources, 1 October 2026: Traffic acquisition report (Google Analytics Help); Default channel group (Google Analytics Help); Scopes of traffic-source dimensions (Google Analytics Help); Custom channel groups (Google Analytics Help); Connect Google Ads to Google Analytics (Google Analytics Help); About auto-tagging (Google Ads Help); All channels performance report (Google Analytics Help); Select attribution settings (Google Analytics Help); About Demand Gen campaigns (Google Ads Help).

Frequently asked questions

  • Why is my Cross-network row empty while Performance Max runs?
    Usually a missing link or auto-tagging. Without a Google Ads link, clicks still arrive as google / cpc, but the Google Ads details GA4 needs to sort them read (not set). Check Admin, Product links, Google Ads links in GA4, then auto-tagging under Account settings in Google Ads.
  • Can I split Cross-network into Performance Max and Demand Gen?
    Yes, with a custom channel group, if your campaign names say which is which. Add channels above Cross-network with two conditions: Default channel group is Cross-network, and Campaign name contains your tag. The split applies to past data too, though not in the Key events paths report.
  • Why does a Meta campaign show up as Cross-network?
    Because its name contains cross-network. GA4's rule for tagged traffic files a session there when the campaign name contains that word. Rename the campaign in future tags, and use a custom channel group if you want past sessions relabelled.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.