
campaign_content, which they were populating with a value in the format [ad_id]_[placement] at click time: the ad ID, an underscore, then the placement name.ad_id as a number in some response fields and as a string in others, depending on which edge you're hitting. GA4 always returns strings. The same number as a string does not equal the same number as an integer when n8n evaluates the join condition. Forcing both sides to toString() before the merge fixed it.newUsers and totalUsers as fallbacks. Both came back empty. Not zero, empty. The GA4 node in n8n doesn't surface those particular metric names in its response. The correct field is activeUsers, which is a distinct metric with a distinct name. Once I swapped to that, the column started populating.
Posted Feb 21, 2026
A course platform's growth team was reading two dashboards every morning and guessing at the connection. Now they get one Slack message with the full picture.