Skip to content
English
  • There are no suggestions because the search field is empty.

Connecting Fospha to a Custom Analytics Source

How Fospha's Custom Analytics Connector works, what files you'll need to send us, and how it differs from a live GA4 connection.

Custom Analytics Connector

Fospha brings attribution, MMM, and incrementality together into one daily source of truth - but that only works if your session and order data can get into the system in the first place. If your team tracks that data in a platform other than GA4, such as Adobe, Heap, Amplitude, Piano, or Mixpanel, Fospha can still measure your full-funnel performance through a Custom Analytics Connector.

This article covers what it is, what we'll need from you, and what to expect while it's being set up.

Prerequisites

  • A daily export of session and order data from your analytics platform
  • A way to deliver that export to Fospha — either Amazon S3 or SFTP
  • Someone on your team who can confirm column mapping during setup (only needed if your platform's export can't be renamed to match our spec)

What is a Custom Analytics Connector?

With GA4, Fospha connects directly to your account and reads the data ourselves.

With a Custom Analytics Connector, you export your own session and order data as files (CSV) and send it to us on a schedule, in Fospha's documented format. It's a different delivery method, not a different level of measurement — once your data is flowing, it feeds into the same daily, full-funnel system as everything else in Fospha.

How this differs from a GA4 connection

  • Column mapping. If your platform's export uses different column names than our spec, we'll map them to our fields during setup. GA4 customers don't need this step, since we read directly from the account.
  • Campaign type. We ask for an optional campaign_type field so we can split Google Ads into Search, Shopping, Performance Max, and Display, instead of one blended "Paid Search" line. If your platform can't provide it, we fall back to a proportional split using your Google Ads data.
  • Channel field. We use your platform's own last_touch_channel field rather than raw UTM parameters. This keeps your existing channel taxonomy intact and gives better coverage for direct and organic traffic that has no UTMs. Think of it as the equivalent of GA4's Default Channel Group.
  • No live account access. Because we're working from a file rather than a direct connection, our data is only as complete as what's included in your export.

Getting your connector set up

  1. Share a sample export. We'll ask for around 90 days of Visits and Orders data, built to our documented spec, so we can confirm your data is a good fit before the full build starts.
  2. Confirm your delivery method. Let us know whether you'll send files via S3 or SFTP, and share the access details we'll need (an IAM role for S3, or an SSH key for SFTP).
  3. Send your full historic data. Once we're ready to build, we'll ask for 24 months of historic Visits and Orders data.
  4. We build and test. This typically takes around two weeks.
  5. Fospha QA. We run our own quality checks before your dashboard goes live.

Troubleshooting

My export doesn't have a campaign_type field. Does that block onboarding?
No. We'll fall back to a proportional split of your Google Ads data automatically.

My platform doesn't produce a data-driven attribution output. Is that a problem?
No. Fospha's attribution layer still runs on three of its four models, which is a known, manageable limitation rather than a blocker to onboarding.


FAQ

Do I need to rename my export's columns myself?
Not necessarily. If you can't rename them on your end, we'll map your columns to our fields during setup.

How much historic data do I need to provide?
A ~90-day sample to get started, and 24 months once we begin the full build.

Can I send files any way I like?
No — delivery needs to go through S3 or SFTP, on a daily schedule.

Does a Custom Analytics Connector give me lower-quality measurement than GA4?
No. It's a different delivery method, not a different level of measurement.