The short answer
Mark three kinds of actions as key events in Google Analytics 4: a form request, a booking confirmation, and a phone result you have defined honestly (a connected call, or only a click on the number). Send the office slug and the form or campaign id. Do not send a name, email, phone number, date of birth, Social Security number, insurance member id, or anything the visitor typed about their health. A Google forwarding number measures calls from ads. A tel click measures a tap. They are not the same event. For a group of 5 to 50 or more offices, put the same office slug on every event and roll up counts by office and by region. That rollup is a count. It is not a return percentage. For privacy law questions, ask your own counsel.
Key events and Ads conversions
Google Analytics calls an important action a key event. Any event you already collect can be marked as one. After you mark it, reports such as Landing page and User acquisition can show how often people triggered it, and the Advertising section can compare how credit is split across the path. The word conversion still belongs to Google Ads. You can create an Ads conversion from a key event so bidding and Ads reporting use the same action. Those Ads conversions do not show up in the standard Analytics reports, which is why the two screens disagree when someone compares them without checking the link.
| Name it in GA4 | What it measures | Ads, if you import it |
|---|---|---|
| generate_lead | A form or a request for information. This is a recommended event. Documented parameters are currency, value, and lead_source. | A lead conversion, only if you create one from this key event. |
| booking_confirmed | The scheduler showed a confirmation for a reserved time. A custom event name must be under 40 characters, start with a letter, and describe the action. | A booking conversion, if that is the action you want to bid toward. |
| call_connected or tel_click | Two names, because a connected call and a tap are different facts. | Import call_connected only when the hit really is a call that met your duration rule. |
Do not send a dollar value unless you have a real amount that is not tied to one person. If you set value, Google's generate_lead reference says currency is required. Leaving value off is allowed. A single-office setup path is in conversion tracking. How credit is split after the event exists is in attribution.
Forwarding numbers and tel clicks
Call assets are how a phone number is added to an ad. Google says a number placed in the ad text itself can get the ad disapproved. When call reporting is on, Google assigns a forwarding number to the ad. That number can record duration, start time, whether the call connected, and, for calls over 15 seconds, the caller phone number (Google notes an exception for India). You choose a minimum duration before the call counts as an Ads conversion. Turning call reporting off shows your own number and stops that call measurement. If marketing reports are not supposed to store patient phone numbers, read the call details report before you depend on it. The GA4 events on this page still omit the number.
| Measurement | What the visitor sees | What you may count |
|---|---|---|
| Calls from ads | A call asset, location asset, or call ad, with call reporting on | A connected call that lasted at least the minimum you set |
| Calls from the website after an ad click | A Google tag and a snippet replace the on-page number with a forwarding number for that visitor | A call to that forwarding number that met the duration. The swap is for people who clicked an ad, not for everyone. |
| A tel link | The office number in the page, as a normal phone link | The click only. Google's mobile click conversion also counts the click, not the call. |
Keep the forwarding number inside ads and inside that post-click swap. The number on the door, the Google Business Profile, and the page patients save should be a number the office controls. Setup choices for source-by-source numbers are in call tracking. Per-office Ads budgets that use the same phones are in DSO budgets and call attribution.
A website tel click that did not come from an ad is still only a click. Name the GA4 event tel_click. Name a duration-qualified call call_connected, and only fire that name from a system that knows the call was connected. Mixing them makes a 40-door report look busy when many of the rows are taps.
Form events without patient details
Google's rule against sending personally identifiable information says no data may be passed that Google could use or recognize as personally identifiable. The examples include email addresses, personal mobile numbers, and Social Security numbers. The same article says visitors sometimes type that information into forms and search boxes, and that you remove it before it is sent. URLs and page titles are included: the path and the parameters have to be free of it. A separate note says Google's category is not the same thing as personal data under every privacy law, and that you should ask an attorney when you are unsure.
- •Send. form_id, office_slug, and lead_source set to a label you control, such as implants or the campaign name. lead_source is the optional parameter on generate_lead. The documented example is a category ("Trade show"), not a person's name.
- •Do not send. Name, email, phone, date of birth, Social Security number, insurance member id, or the free-text box. Google's list names names, emails, mobile numbers, and Social Security numbers, and it tells you to strip user-entered information of that kind. Treat a date of birth and a note about symptoms the same way: they stay in the form tool the office opens, not in an event parameter.
- •Do not put it in the address. /thank-you?email= and a title that includes the visitor's name both fail the URL and title rule. A thank-you path with no query string is enough to know the form finished, if you also fire the event on the success state.
Data redaction can strip email-like text across event parameters and can strip query parameters you name, on web data streams, before the hit leaves the browser. Email redaction is on for properties created after the feature shipped. Older properties need it turned on. It does not read Measurement Protocol or Data Import, and it is not a reason to collect the email in the first place. The fields a marketing form should even ask for are in navigation and appointment requests.
Booking confirmation events
Fire booking_confirmed when the scheduler shows that a time is reserved. Opening the widget, or clicking Book, is an earlier step and will over-count if you mark it as the key event. Parameters that are safe: office_slug, and a coarse visit_type such as new or returning if the scheduler already exposes that flag without a clinical label. Do not send the patient id, the procedure note, or the provider's private schedule comment.
If the scheduler emails a confirmation, that email is not an analytics payload. The GA4 event is a count plus the office. How the button sits on the page is in online scheduling. A custom event is a name plus its parameters, which Google's custom event page describes. To break a parameter out in a report, register an event-scoped custom dimension.
UTM values and office slugs
About half of a useful setup for a dental group is the naming, not the tag. URL builders document utm_source, utm_medium, utm_campaign, utm_term, utm_content, and a few others. Google's PII page then says those campaign fields must not contain personally identifiable information. An office slug is a stable id for a door, such as oak-park. It is not a doctor's name and not a patient's name.
| Parameter | Use it for | Example |
|---|---|---|
| utm_source | The system that sent the click | google, newsletter |
| utm_medium | The channel type | cpc, email, qr |
| utm_campaign | The offer or treatment theme | implants, clear-aligners |
| utm_content | The office slug, so one campaign can be read by door | oak-park |
Write the slug in lowercase with hyphens, and do not change it when a campaign refreshes. The same slug should appear in the location URL, the data layer, the custom dimension, and utm_content. A second list, kept outside Analytics, maps each slug to a region slug such as north or central. The page sets region_slug from that list. The visitor does not type it, and you do not pass the visitor's ZIP code. Google says fine-grained location, including latitude and longitude, and in some cases a postal code that can point at one residence, must not be sent.
One dictionary for the group, one row per door: slug, region, public phone, landing path, Ads campaign name. Five doors and fifty doors use the same row shape. Profile links that should match this pattern are in Business Profile governance.
Office and region rollups
A rollup here means a report that sums key events by office_slug and by region_slug. It is not the Analytics 360 product named Roll-up property, and it does not produce a return on spend by itself. In an exploration, put the key event count next to the office dimension for one date range. The region view is the same count grouped by the region the office belongs to. Offices with no events still belong on the list you maintain, so a quiet door is visible as a zero rather than missing.
- •One property, many doors. Comparison is straightforward because every slug shares the same event names. Use this when the same team is allowed to see every office.
- •One property per legal entity. Use this when one region's staff must not open another region's reports. You then add the counts in a sheet from each property's export. The sheet is still counts, joined on the same slug dictionary.
- •What you may divide. Ad cost for a campaign divided by key events for that same campaign and office, over the same dates, is a cost per key event. Publish it next to the definition of the event. Do not relabel it as a patient-value percentage or a group-wide return. One person can submit a form and also call. Those are two events and one inquiry.
Location pages that carry the slug in the URL are in location pages. The page a treatment ad should open, including doors that do not offer that treatment, is in implant, clear aligner, and cosmetic page architecture.
Red flags in a shared container
A group often installs one tag manager container on every office site. That is workable when the container sends event names and the office slug the page sets. It is a problem when the container reads the form.
- •Every input forwarded. A form trigger that pushes each field name and its value into the data layer will send the message box, the email, and the phone into Analytics as event parameters. Google's rule is to remove that information before it is sent. A shared container makes the mistake once and repeats it on every door.
- •A parameter named email, phone, name, dob, or ssn. The name is the warning. Delete the parameter. Do not rename it and keep the value.
- •One forwarding number on every profile. Patients call a number that is not that office, and the report cannot tell the doors apart. The profile number stays the office's own number.
- •tel_click labeled as a call. The column looks like demand. It is taps.
- •Redaction used as permission. Turning email redaction on, then pasting the address into a parameter, still designs the hit around data the policy tells you not to send.
Test with a fake submission in DebugView. Read the parameter list on the event. If you can see a name or a phone number, stop and remove it before the container is published to the other offices.
Questions for a multi-office group
Ask these when a vendor presents tracking for 5 to 50 or more doors. They are procurement questions, not a contract and not legal advice. A wider vendor rubric is in how to choose a DSO dental marketing company.
- Which event names are marked as key events, and which of those were used to create Google Ads conversions?
- Show a sample payload for a form and for a booking confirmation. Which parameters are present?
- Where is office_slug set, and who edits the office-to-region list?
- Is call reporting on, and does the call details report store caller numbers?
- What does a tel click count, and what minimum duration makes a forwarding-number call count?
- Is one container shared, and does any tag read form field values?
- How are key events totaled by office and by region, and which staff can open which property?
- What will you refuse to put in a URL, a page title, or a UTM value?
Checklist
Twelve checks for names, payloads, phone measurement, and the office rollup. Ticks stay in this browser only.
GA4 lead checklist
12 items
DDS Web Solutions plans this measurement with the website. Our team has been building websites since 2014, and we have served 100+ practices. Offices are in Sacramento, California (primary) and San Mateo, California. Call (415) 800-1127. Groups comparing scope can start at DSO and multi-location marketing. SmileTrak is our marketing analytics platform, included with client engagements, and it is one place call and form counts can be read by office. It does not publish a return percentage. ToothRank is a curated directory for DDS clients, not a public listings site. Smyly is a consult preview and is separate from analytics.
FAQ
What is the difference between a GA4 key event and a Google Ads conversion?
A key event is an event you mark in Google Analytics because the action matters to the business. Reports such as Landing page and User acquisition can show a Key events column. A Google Ads conversion is the action Ads uses for reporting and bidding. You can create an Ads conversion from a GA4 key event. Ads conversions do not appear in the standard Analytics reports, so the two products can both be right and still show different totals until you compare the same action.
Does a click on the phone number count as a call?
No. A tap on a tel link is a click. Google's own mobile measurement for clicks on a number counts the click, not the call. A connected call is a different measurement: call reporting assigns a Google forwarding number, and you choose a minimum duration before that call counts. Put those in separate events so a report does not treat a tap as a conversation.
Which details from a form can go into an analytics event?
An office slug, a form id, and a lead source you chose, such as the campaign name. Google's rules say not to pass information Google could recognize as personally identifiable, and the examples include email addresses, personal mobile numbers, and Social Security numbers. The same pages say to remove that kind of information from form fields before it is sent, and to keep it out of URLs, titles, custom dimensions, and UTM values. Leave the name, phone, date of birth, and anything the visitor wrote about their health in the system the front desk uses.
How should a group with many offices roll up leads?
Give every door a stable office slug and a region slug the page already knows. Register both as event-scoped custom dimensions. Count key events by those dimensions for the same date range. That is a rollup of counts. It is not a return percentage, and it does not require one property per door. Split properties only when the people who should see one office must not see another.
Does data redaction make it acceptable to send email addresses?
No. Data redaction tries to strip email-like text and the query parameters you list, on web streams, before the hit is sent. Google says it can miss some text, it can remove text that only looks like an email, and it does not cover Measurement Protocol or Data Import. New properties start with email redaction on. Treat it as a backstop. Design the event so the email was never included.
Sources
Wording on these pages can change, so confirm the live page. This is marketing guidance, not legal advice.
- •Google Analytics Help: About key events
- •Google Analytics Help: Avoid sending personally identifiable information
- •Google Analytics Help: Understanding PII in Google's contracts and policies
- •Google Analytics Help: Data redaction
- •Google Analytics Help: URL builders
- •Google Analytics Help: About custom dimensions and metrics
- •Google Analytics Help: Custom events
- •Google Analytics Help: Recommended events
- •Google for Developers: generate_lead event
- •Google Ads Help: About call reporting
- •Google Ads Help: About call assets
- •Google Ads Help: About phone call conversion tracking
- •Google Ads Help: Set up tracking for calls from a website