What I used
Your 5 GA4 key events, 2 Google Ads conversion actions, goal, link status (linked; you are Editor in GA4 and Admin in Google Ads) and bid strategy (Maximize conversions). Matches below use only the triggers you described.
Key event map
| ID | Key event | Fires on | Same action in Google Ads | Overlap | Import |
|---|---|---|---|---|---|
| K1 | generate_lead | quote form submit | A1 Website lead form (same form submit) | overlap: both would be Primary | no: A1 already counts it |
| K2 | phone_click | tap on the site phone link | none (A2 counts calls from call assets on ads, a different action) | none | yes, Secondary |
| K3 | scroll_90 | 90% scroll on any page | none | none | no: not tied to the goal |
| K4 | book_inspection | booking confirmation page, sends price | none | none | yes, Primary |
| K5 | newsletter_signup | newsletter join | none | none | no: not tied to the goal |
K1 and A1 both fire on the quote form submit. If K1 came in as Primary next to A1, one form fill would likely count twice in the Conversions column. That is my own note from your triggers; confirm with a test submit after any change.
Import plan (held)
Count rule from Platform facts: Every is best for sales, One for leads. I treat a booked inspection as a sale because it carries the inspection price; say so if a booking can be canceled before payment.
| Import | Primary or secondary | Count | Value | Why |
|---|---|---|---|---|
| K4 book_inspection | Primary | Every | value as sent by GA4 (inspection price) | the goal: booked inspections |
| K2 phone_click | Secondary | One | none | a lead signal to watch; a tap is not a finished call |
Primary actions show in the Conversions column and feed bidding; Secondary ones show only in All conversions. Primary and secondary changes are made in Google Ads, not GA4. If any of these actions sits in a custom goal used by the campaign, it is used for bidding even as Secondary.
Bid strategy note: Maximize conversions is Smart Bidding. Adding book_inspection as a Primary action changes what it optimizes for, so expect the standard 7 to 14 day learning phase. Make the changes together, once, rather than one at a time.
Order of changes:
| Step | Change | Status |
|---|---|---|
| 1 | In Google Ads: Goals, Conversions, New conversion action, Import, Google Analytics properties, Web; pick book_inspection and phone_click | HELD |
| 2 | Set book_inspection to Primary, count Every, use GA4 value | HELD |
| 3 | Set phone_click to Secondary, count One | HELD |
| 4 | Leave generate_lead out of the import; keep A1 Website lead form as is | HELD |
| 5 | In GA4, decide whether scroll_90 should stay a key event (it does not affect Google Ads once it is not imported) | HELD |
Counts
| Item | Count |
|---|---|
| Key events reviewed | 5 |
| Imports | 2 |
| Not imported | 3 |
| Overlaps found | 1 |
| Held changes | 5 |
Questions for you
- Can a booked inspection be canceled or rescheduled before you are paid? If yes, count One may fit better than Every.
- Should A1 Website lead form stay Primary now that bookings will also be Primary, or move to Secondary so bidding leans toward bookings?
- Does your campaign use a custom goal? If yes, which actions are in it?
Needs your decision
- Every change in the order table above: HELD until you approve.
