Phone calls inside GA4, on the right session, with no copying secrets.
Sign in with Google and pick the property: Call Bullet creates the sending key, custom definitions and a phone_call_lead key event for you. Calls are added to the visitor's real GA4 session so they sit against the right landing page, campaign and ad click. Choose which events to send, add values in £, send a test and watch delivery health here.
How it works
- The website script picks up the visitor's GA4 browser and session IDs (only with consent).
- When that visitor rings, the call event is sent to GA4 against the same session.
- Calls with no website visit are still sent as offline calls, without identifiers.
What data it uses
- GA4 browser and session IDs (with consent)
- Call time, length, outcome, source and tracking number
- No caller numbers, names, recordings or transcripts
How a call reaches GA4
Website visit
The visitor lands from an ad or search. Their GA4 session is noted (with consent).
Phone call
They ring the tracking number shown to them.
GA4 session
The call is added to that same session — right landing page, campaign and click.
Easier than pasting secrets
| Call Bullet | Usual manual setup | |
|---|---|---|
| API secret | Created for you when you sign in | Create and paste it yourself |
| Key event | phone_call_lead created and marked for you | Create and mark it by hand |
| Session match | Call joins the visitor's own GA4 session | Often a new, unattributed user |
| Testing | One-click test with a Realtime link | Wait and hope |
| Health | Sent, matched, offline and failed counts | No visibility |
Set it up in five minutes
- 1
Open the integration
In Call Bullet choose the client from the switcher, then go to Integrations → Google Analytics 4.
Integrations → Google Analytics 4
- 2
Sign in with Google
Use the Google account that has Editor access to the client's GA4 property. Call Bullet asks only for Analytics access.
Step 1 · Google account
- 3
Pick the web stream
Choose the property and web stream for the client's website. Call Bullet creates a sending key, custom definitions and the phone_call_lead key event. You can connect up to 5 properties per client.
Step 2 · Add property
- 4
Choose what's sent
Pick a preset — Recommended, Leads only or Everything — or switch events on and off yourself. Set the minimum length for a quality call and any £ values.
Step 3 · Events
- 5
Send a test
Press Send test. When Google accepts it, open Realtime from the link shown and look for callbullet_test_call.
Step 4 · Test
- 6
You're live
Every new call is now sent automatically. Watch sent, matched and failed counts on the same page. Optionally send the last 3 days of calls.
Step 5 · Health
Can't give Google access? Connect manually
- In GA4 open Admin → Data collection → Data streams and click the website's web stream.
- Copy the Measurement ID (it starts with G-).
- On the same page open Measurement Protocol API secrets → Create, name it Call Bullet and copy the value.
- In Call Bullet press Add manually, paste both values and press Check and save.
- In GA4 Admin → Events, mark phone_call_lead as a key event once it has arrived.
Events we send
| GA4 event | When | Details |
|---|---|---|
| callbullet_phone_call | Any call ends | cb_source, cb_tracking_number, cb_outcome, call_duration |
| phone_call_lead | Answered and at least the minimum length (key event) | Same as above, plus value in GBP if set |
| callbullet_first_call | First call from a new caller | cb_first_time = yes |
| callbullet_missed_call | Unanswered or abandoned | cb_outcome |
| callbullet_voicemail | Caller left a message | cb_outcome |
| callbullet_lead_qualified | You mark the call qualified | value if set |
| callbullet_lead_won | You mark the call won | value in GBP |
| callbullet_phone_click / number_shown | Website visitor taps or sees the number (with consent) | Sent through the site's own GA4 tag |
Troubleshooting
- Nothing appears in Realtime
- Wait up to two minutes, check you're looking at the same property, and turn off ad blockers while testing your own visits.
- Calls show as a new user, not the visitor's session
- The visitor didn't consent to analytics cookies, or the call came from outside the website (Business Profile, print). These are sent as offline calls.
- A call from last week wasn't sent
- Google only accepts backdated events for about 72 hours. Older calls stay in Call Bullet but aren't sent to GA4.
- Sending failed after it worked
- The API secret was probably deleted in GA4. Remove the property in Call Bullet and add it again.
- "A numeric Property ID is required"
- You used the G- measurement ID where a property number was expected. Signing in with Google picks the right one automatically.
- I can't see my property in the list
- The Google account needs Editor access to that property. Ask the owner to add you, or use Add manually.
Questions
- Do I need to create an API secret in GA4?
- No. When you sign in with Google, Call Bullet creates it for you. The paste option is there if you can't give access.
- Will calls double count?
- No. Each call, property and event is sent once and recorded here.