0Contents
This document
- Executive summary
- Account snapshot & 90-day performance
- Campaign-by-campaign deep-dive
- The 5 critical findings (ranked by ROI impact)
- High-priority findings
- Medium-priority findings & cleanup
- Growth opportunities (build on what works)
- Search term & keyword analysis
- The Quality Score crisis
- Conversion tracking — what's broken
- Geographic intent: where the money is leaking
- Landing page & form funnel analysis
- Cross-channel comparison: Google Ads vs Facebook vs Organic
- IDX integration & rental risk audit
- 30 / 60 / 90 day implementation roadmap
- Projection: current vs optimized
- Implementation checklist (the actual tickets)
- Appendix — raw data references
1Executive summary
Lyfe Realty Group is spending roughly $1,000/month on Google Ads across two active Search campaigns (Sellers and Buyers) and one paused Performance Max campaign. Over the last 90 days the account spent $3,051 and produced 22 hard conversions (form submissions and tracked phone calls), for an effective $138.69 CPA. For a residential real estate practice in Southwest Broward where commissions are typically $5k–$30k per closed deal, this CPA is acceptable but the account has substantial unrealized headroom.
This audit identifies 5 critical issues that are actively destroying ROI right now and 15+ high-priority opportunities. The single biggest leak: the Buyers Search campaign is configured with location targeting PRESENCE_OR_INTEREST, which means roughly 92% of its $444 in spend is going to users who are not physically in Southwest Broward — they only have a passing interest in the area (vacation searches, expats, relocators researching from elsewhere, etc.). The data shows 1,484 clicks from this campaign produced only 4 conversions and most of those clicks never even reach the website as a tracked session.
Other major leaks: 82% of paid keywords have a Quality Score of 0 or null (causing 62% of Sellers impression share to be lost to ad rank, not budget); 94% of users who start a form abandon it (66 form-starts vs 4 form-completions); phone clicks are happening in GA4 but are not being counted as Google Ads conversions (the conversion action exists but is marked HIDDEN — Google's bidding algorithm is literally blind to 27 calls over 90 days); both campaigns use Maximize Conversions with no Target CPA, meaning the bidder has no efficiency anchor; and GA4 ads_personalization is disabled, so no remarketing audiences can be built.
What is not broken
- The original renter-call problem (the audit trigger) is already largely mitigated. The PMax campaign that was attracting renter traffic was paused on 2026-03-31 and has not run since. The current Sellers campaign already has 92 negative keywords blocking rental terms, and the website's IDX plugin (Bridge API → MIAMIRE MLS) is filtered to Teresa's own office only, so the site does not crawl in renter-bait listings from across the MLS. The sitemap shows zero rental URLs. The renter leak is closed at the campaign level — the next move is offense, not defense.
- Auto-tagging is enabled. The Google Ads → GA4 link exists. The Bridge MLS feed is correctly scoped. The Sellers campaign's geo targeting is correctly set to
PRESENCE. These are all baseline-correct.
2Account snapshot & 90-day performance
Where the money went
| Campaign | Type | Status | Spend (90d) | Impr | Clicks | CTR | Conv | CPA | Budget Lost IS | Rank Lost IS |
|---|---|---|---|---|---|---|---|---|---|---|
| Lyfe Realty Group_Sellers_Search_Google_Leads 3 ad groups active · 92 campaign-level negatives · MAXIMIZE_CONVERSIONS |
Search | ENABLED | $2,168 | 23,633 | 697 | 2.95% | 15 | $144.52 | 4.1% | 62.2% |
| Lyfe Realty Group_Buyers_Search_Google_Leads 1 ad group · 4 negatives · PRESENCE_OR_INTEREST geo ⚠️ |
Search | ENABLED | $444 | 9,514 | 1,484 | 15.60% | 4 | $111.11 | 62.0% | 30.4% |
| Lyfe Realty Group_Performance Max_Google_Lead Generation Ran Mar 10 – Mar 31, 2026 only · ENDED |
PMax | PAUSED | $439 | 9,208 | 205 | 2.23% | 3 | $146.26 | 26.6% | 38.2% |
| TOTAL | $3,051 | 42,355 | 2,386 | 5.63% | 22 | $138.69 | ||||
Cross-channel context (GA4, same 90 days)
| Channel | Sessions | Engaged sessions | Engagement rate | Avg session dur | GA4 conversions | Implied conv rate |
|---|---|---|---|---|---|---|
| google / cpc | 391 | 133 | 34.0% | 93s | 14 | 3.6% |
| (direct) / (none) | 346 | 150 | 43.4% | 129s | 3 | 0.9% |
| google / organic | 198 | 98 | 49.5% | 162s | 7 | 3.5% |
| fb / paid | 171 | 43 | 25.1% | 34s | 8 | 4.7% |
| ig / social | 38 | 18 | 47.4% | 175s | 0 | 0% |
| magazine / qrcode | 37 | 12 | 32.4% | 149s | 0 | 0% |
| m.facebook.com / referral | 32 | 7 | 21.9% | 8s | 0 | 0% |
| facebook.com / referral | 25 | 21 | 84.0% | 26s | 0 | 0% |
google / cpc. That's an 84% gap. Some of this is normal (call-extension clicks, instant bounces, ad-blocker traffic), but the vast majority is from the Buyers campaign — 1,484 clicks → only ~55 sessions makes sense once you realize most of those clicks are from AREA_OF_INTEREST geographic matches (people not actually in Broward) that don't engage with the site. This is the smoking gun for the Buyers campaign issue.
fb / paid drives 8 conversions on 171 sessions (4.7%) vs. google / cpc at 14 conversions on 391 sessions (3.6%). And FB sessions only average 34 seconds — they're either bouncing fast or converting fast. Whoever runs the FB ads is finding a tighter audience match. Worth investigating: can we mirror that audience signal in Google's Customer Match or in-market segments?
3Campaign-by-campaign deep-dive
3.1 Sellers Search — the workhorse
This is the campaign carrying the account. $2,168 spend (71% of total), 15 of 22 hard conversions (68%), $144.52 CPA. Sellers has been live since 2025-12-11 and is the most mature campaign. It contains four ad groups:
- Realtor / Real Estate Agent (Local) — $1,120 spend, 9 conv ($124 CPA). The best ad group in the account. CTR 3.1%. But the RSA has an ad strength of
POOR. - Home Seller / Sell My House — $563 spend, 3 conv ($187 CPA). CTR 2.1%. RSA strength
POOR. - Local Targeting (Southwest Broward Cities) — $485 spend, 3 conv ($162 CPA). CTR 3.6%. RSA strength
AVERAGE. - Competitors — PAUSED, no spend. RSA strength
POOR. A missed opportunity to capture competitor brand searches.
What this means
Without fixing Quality Score, more budget on Sellers wouldn't materially help — you'd just bid higher to compensate for low QS, paying $3.11+ per click instead of the $1.50–$2.00 a well-optimized account would pay. The fix is creative and landing-page-level, not budget-level.
3.2 Buyers Search — the leaky bucket
Newest campaign, only live since 2026-05-01 (3 weeks). $444 spend, 4 hard conversions. The metrics look superficially fine — until you decompose them:
- CTR is 15.6% — 5x higher than Sellers. Should be a red flag, not a victory.
- Average CPC is $0.30 — should be $4–$15 for real estate buyer keywords.
- 1,484 clicks produced 4 conversions = 0.27% conversion rate (8x worse than Sellers).
- 1,759
all_conversionsreported — more than the click count, because most are "Local actions" engagement signals being triple-counted.
PRESENCE_OR_INTEREST. The geographic_view breakdown shows the location_type for almost every Buyers row is AREA_OF_INTEREST — people who searched about Broward, not people in Broward. Of the campaign's $444 spend, approximately $409 (92%) went to AREA_OF_INTEREST matches. They click cheaply, don't land on the site, and don't convert. The low CPC isn't a win — it's a tell.
Compounding the problem: this campaign has only 4 negative keywords. The Sellers campaign has 92. Whoever set up Buyers did not copy the negatives over.
3.3 Performance Max — the (paused) original culprit
This was the campaign generating renter calls in February–March. It ran for 21 days (Mar 10 – Mar 31), spent $439, generated 3 conversions, and was paused. Performance was not appreciably worse than the Search campaigns on a pure CPA basis ($146 vs. $144 for Sellers), but the qualitative issue — renter inquiries because of Final URL Expansion picking up rental-themed pages or audience-signal drift — was severe enough to justify shutdown. Do not relaunch PMax until the account has 50–100 hard conversions per month to feed its algorithm; until then, Search is the safer channel for this budget.
4The 5 critical findings (ranked by ROI impact)
Ordered by projected dollar impact over the next 60 days. Each finding includes evidence, fix, and expected ROI lift.
C1. Buyers campaign location targeting is set to PRESENCE_OR_INTEREST — wasting ~92% of its budget
Critical
geo_target_type_setting.positive_geo_target_type = PRESENCE_OR_INTEREST for campaign id 23803957662. Geographic view shows location_type AREA_OF_INTEREST on the majority of Buyers rows. Spend by AREA_OF_INTEREST geo: Pembroke Pines $268.32 (880 clicks, 4 conv), Davie $79.45 (229 clicks, 0 conv), Weston $28.59 (96 clicks, 0 conv), plus smaller slices totaling ~$33. ~$409 of $444 (92%) is AREA_OF_INTEREST. GA4 confirms with the 84% click-to-session gap.
C2. 82% of paid keywords have Quality Score 0 or null — and it's costing 62% of Sellers' impression share
Critical/free-home-valuation/ works but doesn't speak to keyword themes; create variants for "Realtor near me" intent and "Sell my house" intent and direct campaigns there. (c) Add 8–12 new long-tail phrase-match keywords per ad group ("realtor Cooper City FL", "sell my house Pembroke Pines fast") instead of relying on broad match alone. Expected outcome: average QS rises to 5–6, average CPC drops from $3.11 to $1.80–$2.20, impression share rises from 33% to 60%+ on the same budget.
C3. Both campaigns use MAXIMIZE_CONVERSIONS with no target CPA — the bidder has no efficiency anchor
Critical
bidding_strategy_type = MAXIMIZE_CONVERSIONS with maximize_conversions.target_cpa_micros = 0 (no target set) and target_cpa.target_cpa_micros = 0. With no CPA target, Smart Bidding will spend any amount to get a conversion — meaning at current performance, the algorithm is willing to pay $144+ for a lead. That's fine for early ramp-up phases (and Buyers is only 3 weeks old), but Sellers has been running for 5 months with 15 conversions in the last 90 days — enough learning data to set a target.
C4. 94% of users who start a form do not finish it (66 form-starts → 4 form-submits)
Criticalform_start: 66 events from 62 usersform_submission_new: 4 eventssubmit_lead_form: 4 eventsform_valuation_submission_new: 2 events
/free-home-valuation/ is 32% (278 sessions, mobile) vs. 50% on desktop (32 sessions). Mobile is where the traffic and the abandonment is.
C5. Phone clicks are happening (27 in 90 days) but the conversion action is HIDDEN — Google's bidder can't see them
Critical
lyferealty.com (web) phone_click (id 7425424783) has status = HIDDEN, primary_for_goal = false, and include_in_conversions_metric = false — meaning Google's bidding algorithm cannot use it for optimization. Meanwhile GA4 records 27 phone_click events from 21 users in the last 90 days. Those are real, ad-driven phone calls (the click-to-call CTA's primary URL is tel:+19545947628, set in the listings plugin). The existing "Calls from ads" action (id 7399762254, type AD_CALL) only counts calls placed from call-extension ads — it does not count calls from the website.
lyferealty.com (web) phone_click conversion action: set status = ENABLED, primary_for_goal = true, include_in_conversions_metric = true, value = $50 (placeholder for downstream commission). Same for form_submission_new and form_valuation_submission_new if they aren't already counting. Once enabled, Google's bidding gains visibility into 15–25 extra conversion signals per month, which improves audience modeling and lowers CPA materially even with no budget change.
5High-priority findings
H1. Buyers campaign is missing the 90+ negative keywords that Sellers has
Highmiami association of realtors, doral isles, go section 8 broward by private landlords, Miami Board of Realtors). The account has zero shared negative keyword lists.H2. Every keyword is BROAD match — and there's no Target CPA to keep broad match honest
High"sell my house pembroke pines", "top realtor weston fl"). Pause the BROAD keywords with QS 0 that have spent > $20 and produced 0 conversions over the period — that's roughly 15 keywords, ~$280 in 90-day savings.H3. Duplicate keywords splitting spend (e.g. "realtor near me" vs "Realtor near me" vs "realtor Near Me")
HighDavie Realtor (QS 2) and Davie realtor exist separately.H4. GA4 ads_personalization_enabled = false — no remarketing audiences can be built
Highlist_google_ads_links on property 514093024 returns one link to customer 7679719496 with ads_personalization_enabled: false. Without this flag, GA4 audiences (e.g. "users who started but didn't finish a form", "users who viewed /free-home-valuation but didn't convert", "engaged users 30+ seconds") cannot be exported to Google Ads for remarketing.H5. ~$99 of 90-day spend went to rental-intent search terms despite the negative list
Highrental agents for houses— $28.15, 1 click, 1 conversion (this is likely a renter call counted as a lead)realtors that help find rentals— $15.81, 1 click, 0 convreal estate for rentals near me— $13.79, 1 click, 0 convrealtor near me for rentals— $11.29, 1 click, 0 convrent agents near me— $8.31, 1 click, 0 convrent to own homes in miramar florida— $7.44, 1 click, 0 convrent to own— $7.08, 2 clicks, 0 convrental realtors— $5.40, 1 click, 0 convrealty companies for rentals— $1.97, 1 click, 0 conv
"for rentals", "rental agents", "rental realtors", "rent to own", "help find rentals", "realtors for rent", "agents for rent", "realty for rent", "rent agent". Also flag the "rental agents for houses" conversion as a likely false positive — check the lead source and quality.H6. Multiple "Local actions" conversion actions marked as primary_for_goal = true — diluted goal signal
Highprimary_for_goal: true: "Local actions - Other engagements" (ENGAGEMENT), "Local actions - Directions" (GET_DIRECTIONS), "Local actions - Website visits" (PAGE_VIEW). All have include_in_conversions_metric: false, so they don't pollute the main "Conversions" column, but their primary-for-goal flag can still affect "Account default" conversion goals used by some campaign types. The "all_conversions" inflation (2,350 vs 22 hard) is largely from these.H7. Competitor brand searches are being paid for via broad match instead of captured deliberately
HighH8. Sellers campaign Sunday early-morning (12am–7am) hours spend money with zero conversions
HighH9. No call-extension on the website; "Clicks to call" conversion action is set up but not surfaced
Hightel:+19545947628 as lyfe_cta_primary_url. GA4 records 27 phone_click events from 21 users in 90 days. The plugin's listing-card template surfaces this CTA on every listing card and the listing-detail dialog, but it only renders inside pages that use the [lyfe_listings] shortcode (homepage, listings pages). The high-traffic /free-home-valuation/ landing page (307 sessions, 13 conv) likely does not have a sticky tap-to-call button visible above the fold on mobile./free-home-valuation/, /home-buyers/, and the homepage, calling tel:+19545947628 with a phone_click dataLayer event fire. Pair with C5 (enable phone_click as a Primary conversion) so the bid algorithm sees the additional signal. Mobile is 95% of paid traffic — this is a 5x higher leverage point than desktop.H10. ~$77 spent on near-zero-intent search terms (homestead exemption, property appraiser, etc.)
High"homestead exemption", "property appraiser", "title company", "pre foreclosure", "investment realtor", "real estate investor", "fix and flip", "wholesale real estate".6Medium-priority findings & cleanup
M1. Two GA4-imported conversions are HIDDEN but still attached to the goal pool
Mediumlyferealty.com (web) purchase (id 7399762776) and lyferealty.com (web) form_valuation_submission_new (id 7400801464) are status HIDDEN, not include_in_conversions_metric, but still exist. They were probably auto-imported when the GA4 link was created and never cleaned up. Fix: Either delete them or repurpose form_valuation_submission_new as a Primary conversion (it already fires — 2 events in 90 days).M2. Buyers ad group has only one RSA — no testing baseline
MediumM3. Conversion attribution model is GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN on web actions but GOOGLE_ADS_LAST_CLICK on Local actions — inconsistent
MediumDATA_DRIVEN attribution (available since 2022 and superior to last-click for cross-channel real estate buying cycles).M4. Click-through lookback window varies (30 vs 90 days) across actions
MediumM5. magazine / qrcode traffic (37 sessions) is producing zero tracked conversions
Mediummagazine / qrcode shows 37 sessions over 90 days with 0 conversions. The traffic is engaging (32% engagement, 149s avg duration), so they're real humans interested in the brand. Fix: Confirm the QR code lands on a dedicated landing page (not the homepage), put a clear primary CTA above the fold, and run the same form-completion analysis. This is a separate-channel issue but worth catching now.M6. GA4 property is only 6 months old; data depth limited
MediumM7. Property timezone is Etc/UTC — should be America/New_York
Mediumtime_zone: Etc/UTC. The Google Ads account is correctly America/New_York. The mismatch means GA4 "day" rolls over at 7pm Eastern in winter, 8pm in summer — distorting hour-of-day analysis. Fix: Switch the GA4 property timezone to America/New_York. Note this will affect historical data joining — make the change once, document the date.7Growth opportunities (build on what works)
O1. The "Realtor / Real Estate Agent (Local)" ad group is the gold mine — pour gas on it
OpportunityO2. Facebook is converting at 4.7% vs Google at 3.6% — investigate why
OpportunityO3. Davie/Hollywood organic search drives traffic — combine with content + paid for compound effect
OpportunityO4. Brand defense: "teresa schwarz" only has 5 clicks at $18 spent — should be near-free
OpportunityO5. The blog content on Pembroke Pines/Weston/Davie buyers is unused as audience fuel
OpportunityO6. Performance Max can return safely — but only after these prerequisites
Opportunity8Search term & keyword analysis
The 90-day search term log contains 200 unique terms consuming $939.41 in spend (30.8% of total). The remaining 69.2% is fragmented across thousands of long-tail single-impression queries. Here's the most relevant intent breakdown:
8.1 Top 25 search terms by 90-day cost (annotated)
8.2 Spend by intent category (top 200 terms, 90 days)
| Intent | Spend | % of top-200 spend | Conv | Verdict |
|---|---|---|---|---|
| SELLER Direct seller intent (valuation, listing, sell my house) | ~$320 | 34% | 7 | Core target |
| SELLER Realtor/agent local (Pembroke Pines, Davie, Hollywood, Broward) | ~$280 | 30% | 5 | Core target — expand |
| COMPETITOR Competitor brand/person searches | ~$140 | 15% | 3 | Recover via dedicated ad group (O4) |
| JUNK Investor/bargain/foreclosure/section 8 | ~$100 | 11% | 0 | Negate |
| RENTAL Rental-intent queries | ~$99 | 11% | 1 | Negate (PHRASE match) — H5 |
| JUNK Tax / appraiser / title / adjacent services | ~$80 | 9% | 0 | Negate — H10 |
| BRAND Teresa Schwarz / Lyfe Realty | ~$19 | 2% | 0 | Move to dedicated brand ad group (O4) |
Net of the recommended negatives and brand-defense restructuring, approximately $300+ over 90 days ($100/month, 10% of total spend) is recoverable as immediate efficiency, before any Quality Score work.
9The Quality Score crisis
This deserves its own section because it's the single biggest source of "invisible" waste in the account. Quality Score affects three things: the CPC you pay, your ad rank (whether you show up at all), and your eligibility for impression share. A QS of 0 is essentially a tax on every click and impression.
9.1 The distribution
9.2 What drives Quality Score (and where Lyfe stands)
| Component | What it measures | Lyfe's status | Fix |
|---|---|---|---|
| Expected CTR | Predicted CTR vs. competition for the same query | Below average — overall Sellers CTR 2.95% is OK but specific keyword CTRs are wildly inconsistent because all keywords are BROAD | Replace broad with phrase for known winners; use audience signals to refine match |
| Ad relevance | How well ad copy matches the query and the ad group theme | Below average — 3 of 4 active RSAs have ad strength POOR or AVERAGE | Rebuild RSAs with 12–15 headlines and 4 descriptions. Pin location-specific headlines for local keywords (per C2) |
| Landing page experience | Relevance, transparency, navigability, load speed of the landing page | Average — /free-home-valuation/ is on-topic for valuation keywords but not for "realtor near me" type searches; one landing page is serving multiple intents |
Build keyword-themed landing variants. "Pembroke Pines Realtor" → /pembroke-pines-realtor/ ; "Sell My House" → /sell-my-house-broward/ |
9.3 What it's costing
At a QS of 5, the average CPC discount is roughly 35% vs. QS 1–3. Sellers' current average CPC of $3.11 with $2,168 spend = 697 clicks. At QS 5 the same spend would buy roughly 1,050–1,100 clicks (50% more impressions, 50% more clicks). Conservatively translating that to conversions at the current 2.15% Sellers conversion rate: 22–24 conversions instead of 15 — a 50% lift purely from QS improvement, with no budget change.
10Conversion tracking — what's broken
The account has 11 conversion actions configured. Of those, 5 are usable, 3 should be repurposed, and 3 are noise. Cleaning this up unlocks bidding-algorithm visibility into 15–25 extra conversion signals per month.
| Conversion action | Category | Status | Primary? | In conv metric? | Verdict |
|---|---|---|---|---|---|
| Calls from ads | PHONE_CALL_LEAD (AD_CALL) | ENABLED | Yes | Yes | Keep |
| Home Valuation Form Submissions | SUBMIT_LEAD_FORM (WEBPAGE) | ENABLED | Yes | Yes | Keep — assign $50 value (placeholder) |
| lyferealty.com (web) phone_click | PHONE_CALL_LEAD (GA4_CUSTOM) | HIDDEN | No | No | Enable + Primary (C5) |
| lyferealty.com (web) form_submission_new | SUBMIT_LEAD_FORM (GA4_CUSTOM) | HIDDEN | No | No | Enable as Secondary (deduplicate vs. WEBPAGE action) |
| lyferealty.com (web) form_valuation_submission_new | SUBMIT_LEAD_FORM (GA4_CUSTOM) | HIDDEN | No | No | Enable as Secondary or delete (M1) |
| lyferealty.com (web) purchase | PURCHASE (GA4_PURCHASE) | HIDDEN | No | No | Delete — not applicable to lead-gen account |
| Home Valuation (lyferealty.com/) | SUBMIT_LEAD_FORM (WEBPAGE_CODELESS) | REMOVED | (was Yes) | (was Yes) | Leave removed |
| Clicks to call (Google Hosted) | CONTACT | ENABLED | Yes | No | Keep — confirm dedupe with Calls from ads |
| Local actions - Other engagements | ENGAGEMENT | ENABLED | Yes | No | Demote to Secondary (H6) |
| Local actions - Directions | GET_DIRECTIONS | ENABLED | Yes | No | Demote to Secondary (H6) |
| Local actions - Website visits | PAGE_VIEW | ENABLED | Yes | No | Demote to Secondary (H6) |
11Geographic intent: where the money is leaking
11.1 Google Ads geographic spend by city (90 days, top spend)
| Campaign | City (geo target) | Location type | Spend | Clicks | Conv |
|---|---|---|---|---|---|
| Sellers | Pembroke Pines (FL) | PRESENCE | $671.73 | 176 | 8 |
| Sellers | Weston (FL) | PRESENCE | $549.94 | 195 | 5 |
| Sellers | Davie (FL) | PRESENCE | $525.58 | 153 | 2 |
| Buyers | Pembroke Pines (FL) | AREA_OF_INTEREST | $268.32 | 880 | 4 |
| Sellers | Hollywood (FL) | PRESENCE | $161.54 | 55 | 0 |
| PMax (paused) | Davie (FL) | PRESENCE | $114.51 | 54 | 1 |
| PMax (paused) | Weston (FL) | PRESENCE | $108.72 | 53 | 1 |
| Sellers | Miramar (FL) | PRESENCE | $91.34 | 32 | 0 |
| PMax (paused) | Pembroke Pines (FL) | PRESENCE | $89.53 | 48 | 1 |
| Sellers | Sunrise/Plantation (FL) | PRESENCE | $87.77 | 46 | 0 |
| Buyers | Davie (FL) | AREA_OF_INTEREST | $79.45 | 229 | 0 |
| Buyers | Weston (FL) | AREA_OF_INTEREST | $28.59 | 96 | 0 |
The pattern is striking: every Sellers row is LOCATION_OF_PRESENCE (people physically in the city). Every Buyers row is AREA_OF_INTEREST (people who searched about the city). Pembroke Pines for Sellers: $672 → 8 conversions. Pembroke Pines for Buyers: $268 → 4 conversions but the location_type tells you those 4 are likely incidental — most of the 880 clicks didn't even land on the site as a session.
11.2 GA4 city breakdown (google/cpc, 90 days)
For corroboration, GA4 attributes the following cities to google / cpc traffic that did reach the site:
| City | Sessions | Engaged | Conversions | Comment |
|---|---|---|---|---|
| Miami, FL | 50 | 15 | 0 | Outside SW Broward target — 0 conv |
| Pembroke Pines, FL | 48 | 18 | 0 | Target market — engagement but no conv |
| Miramar, FL | 32 | 8 | 0 | Target market — 25% engagement is low |
| Davie, FL | 18 | 4 | 0 | Target market |
| Hollywood, FL | 18 | 6 | 0 | Adjacent target |
| Fort Lauderdale, FL | 17 | 7 | 2 | Outside SW Broward but converting |
| Plantation, FL | 16 | 7 | 1 | Central Broward — worth a city-specific keyword |
| Weston, FL | 10 | 5 | 0 | Target market |
| Miami Gardens, FL | 5 | 2 | 2 | South Broward edge — best conv rate of any city |
| Sunrise, FL | 5 | 2 | 1 | Edge market |
| Hallandale Beach, FL | 2 | 1 | 1 | SE Broward — high conv per session |
| Tampa, FL | 5 | 1 | 0 | Out of market |
| Orlando, FL | 5 | 1 | 0 | Out of market |
| New York, NY | 4 | 1 | 0 | Out of market |
| Dubai / Barcelona / Belo Horizonte / Jaipur | 9 | 3 | 0 | Bot traffic — all from Buyers AREA_OF_INTEREST |
12Landing page & form funnel analysis
12.1 The current funnel (90 days, google/cpc)
| Stage | Count | Drop-off from prior | Note |
|---|---|---|---|
| Google Ads clicks | 2,386 | — | Includes 1,484 Buyers clicks that mostly never reach the site |
| GA4 sessions (google/cpc) | 391 | -84% | The Buyers AREA_OF_INTEREST gap (C1) |
| Engaged sessions | 133 | -66% | 34% engagement is below median for real estate (45–55%) |
| Sessions landing on /free-home-valuation/ | 307 | — | 79% of google/cpc sessions land here |
| form_start events | 66 | — | 21.5% of valuation-page sessions start the form |
| form_submission_new events | 4 | -94% | The funnel breaks here (C4) |
| Google Ads "Home Valuation Form Submissions" conv | 9–12 | — | WEBPAGE-tag conversion fires more than GA4 form event — investigate dedupe |
12.2 Landing page performance breakdown
| Landing page | Sessions | Engaged | Engagement rate | Avg session dur | Conv |
|---|---|---|---|---|---|
| /free-home-valuation | 307 | 102 | 33.2% | 83s | 13 |
| /home-buyers | 51 | 17 | 33.3% | 189s | 1 |
| / | 27 | 14 | 51.9% | 57s | 0 |
| (not set) | 5 | 0 | 0% | 0s | 0 |
| /southwest-broward-real-estate-market-update-january-2026... | 1 | 0 | 0% | 0s | 0 |
12.3 Device split on the workhorse page
| Page | Device | Sessions | Engagement rate | Avg engagement time |
|---|---|---|---|---|
| /free-home-valuation/ | mobile | 278 | 32.0% | 12.3s/session |
| /free-home-valuation/ | desktop | 32 | 50.0% | 13.7s/session |
| /free-home-valuation/ | tablet | 3 | 33.3% | 8.0s/session |
13Cross-channel comparison
The agency is running Google Ads and (at least) Facebook Ads in parallel, plus organic and a magazine QR-code campaign. Looking at all paid/organic channels by efficiency:
| Channel | Sessions | Conv | Conv rate | Engagement | Read |
|---|---|---|---|---|---|
| fb / paid | 171 | 8 | 4.7% | 25.1% | Highest converting paid channel |
| google / cpc | 391 | 14 | 3.6% | 34.0% | The volume engine; CR can rise with funnel fixes |
| google / organic | 198 | 7 | 3.5% | 49.5% | Free conversions — invest in SEO |
| (direct) / (none) | 346 | 3 | 0.9% | 43.4% | Brand awareness traffic — expected low CR |
| ig / social (organic) | 38 | 0 | 0% | 47.4% | Brand presence, not direct response |
| magazine / qrcode | 37 | 0 | 0% | 32.4% | Offline → online; needs a dedicated landing page (M5) |
| m.facebook.com / referral | 32 | 0 | 0% | 21.9% | Likely organic posts |
Implications for budget allocation
- FB Paid is the highest-converting paid channel (4.7% CR vs Google's 3.6%) but only 30% of Google's session volume. Without knowing the FB ad spend, it's hard to compare CPA — but the channel deserves an audit of its own. Pull from Meta Ads Manager if not already accessible.
- Google organic is essentially free conversions at 3.5% CR. Doubling down on the existing Pembroke Pines/Weston/Davie blog content is a low-risk, high-margin play. Each blog post that ranks for "[city] real estate market 2026" is a free lead-gen funnel.
- Direct traffic (346 sessions, 3 conv) reflects brand awareness from Teresa's offline presence (BBB, magazine, word of mouth). Low CR is normal here. Don't optimize it.
- The
magazine / qrcodesource is interesting — it suggests Teresa is paying for print ads that drive site visits but no conversions. If she's paying $500–$5,000/month for print, this is a separate audit worth doing.
14IDX integration & rental risk audit
This section closes the loop on the original audit trigger (renter calls) by examining the website's MLS integration.
14.1 Integration architecture
| Layer | Component | What it does | Status |
|---|---|---|---|
| MLS source | MIAMIRE via Bridge API (api.bridgedataoutput.com) | Provides listing data via OData/REST | Standard |
| Filter | ListOfficeKey eq 'b48c8f8a8971a027fb2c9110617e7e6e' | Restricts to Lyfe Realty's own office listings only — does not pull all MLS listings | Correct scope |
| Property type filter | None | Pulls all PropertyType values (Residential, Residential Lease, Commercial Sale, etc.) | Pulls everything Teresa's office lists, including leases if any exist |
| Status filter | None | Pulls all StandardStatus values (Active, Pending, Closed, etc.) | Pending/Closed are useful for sold-history showcase |
| WordPress CPT | lyfe_listing | public=false, publicly_queryable=false, has_archive=false, rewrite=false | Listings are not exposed as individual crawlable URLs |
| Sitemap | Rank Math | post-sitemap, page-sitemap, local-sitemap only — no listing URLs | No listing URLs in sitemap |
| Display | [lyfe_listings] shortcode | Renders listings inside pages that embed the shortcode; supports type=residential, type=commercial, type=lease | Lease support exists if shortcode is used with type=lease or no type filter |
14.2 What this means for ad targeting
- PMax's Final URL Expansion cannot land on individual listing pages — they're not publicly queryable and not in the sitemap. ✓ This is good defense.
- Listings shown on the homepage or any page using the shortcode could include leases if Teresa's office has any active lease listings and the shortcode is configured with
type=allortype=lease. Need to inspect the shortcode usage on the live site to confirm — recommend checking the homepage, /home-buyers, and any "Active Listings" page. - If lease listings ever appear on the site, PMax could pick them up via Final URL Expansion → match to rental-intent queries. This is the original failure mode.
14.3 Recommendations
- Add a PropertyType filter at the API level. Modify
class-bridge-api.phpline 39 to also exclude lease properties at the source:$filter = "ListOfficeKey eq '{$office_key}' and PropertyType ne 'Residential Lease'";— this guarantees lease listings never enter the database in the first place. - Audit live shortcode usage on the homepage and other pages — confirm any
[lyfe_listings]embed hastype="residential"set explicitly, nevertype="all"or no type at all. - When PMax is relaunched (per O6), set URL Exclusions to anything that could ever show listings (e.g.
/listings/*if such a path exists) until you've confirmed the shortcode hygiene. - Document the safe deployment — these guardrails should be in a README the next developer sees, since the renter-call incident shows this is easy to regress.
1530 / 60 / 90 day implementation roadmap
- Fix Buyers campaign geo:
PRESENCE_OR_INTEREST→PRESENCE(C1) - Enable phone_click and form_submission conversions; demote Local Actions to Secondary (C5, H6)
- Create shared negative keyword list "Lyfe — Universal Negatives" with all 92 Sellers negatives + 9 rental phrase negatives (H1, H5) + 7 junk phrase negatives (H10)
- Attach the shared list to Sellers and Buyers
- Add ad schedule: Mon–Sat 7am–10pm, Sun 10am–8pm (H8)
- Pause the 15 worst-performing broad keywords (QS 0, > $20 spent, 0 conv)
- Deduplicate the casing variants of "realtor near me" / "Davie Realtor" / etc. (H3)
- Toggle GA4 Ads Personalization to ON; create 3 remarketing audiences (H4)
- Add PropertyType filter to
class-bridge-api.php; audit live shortcode usage
- Rebuild RSAs for Realtor/Real Estate and Home Seller ad groups — target Good/Excellent ad strength (C2)
- Add 10–15 long-tail PHRASE-match keywords per ad group (H2)
- Re-enable Competitors ad group with EXACT/PHRASE competitor brand keywords + Target CPA $200 (H7)
- Create dedicated Brand ad group for "teresa schwarz" / "lyfe realty" (O4)
- Set Sellers bid strategy: Target CPA = $120, monitor 14 days (C3)
- Build keyword-themed landing variants for top intents (Pembroke Pines Realtor, Sell My House, Top Davie Real Estate Agent)
- Form funnel overhaul: convert
/free-home-valuation/form to multi-step mobile-first; add real-time validation; add abandoned-form follow-up email (C4) - Add sticky mobile click-to-call button to /free-home-valuation/, /home-buyers/, and homepage (H9)
- Standardize click-through lookback to 90 days across all lead actions (M4)
- Fix GA4 timezone to America/New_York (M7)
- Step Sellers Target CPA down: $120 → $100 → $85, based on volume holding
- Build out a "Buyer in-market" Customer Match list mirroring the FB audience that's converting well (O2)
- Set up GA4 → BigQuery export for long-horizon data preservation (M6)
- Launch a low-budget Remarketing campaign ($5–10/day) targeting the 3 audiences from Phase 1
- Expand the Realtor ad group with Cooper City / Plantation / Sunrise city-specific groups (O1)
- Test 2–3 RSA variants per ad group (M2)
- Begin planning PMax relaunch — only when monthly hard conversions ≥ 30 and form completion rate > 15% (O6)
- Audit Facebook Ads in parallel; align Customer Match / lookalike strategy across both platforms
16Projection: current vs. optimized
This is a deliberately conservative model. It assumes only the C1–C5 and H1–H10 changes are implemented (Phase 1 + most of Phase 2). It does not assume PMax relaunch, FB cross-pollination, or any budget increase.
| Metric | Current (90-day actuals) | Optimized (60-day projection) | Lift |
|---|---|---|---|
| Monthly spend | $1,017 | $1,017 (unchanged) | — |
| Wasted spend (rental, junk, OOM) | ~$200/mo | ~$40/mo | -80% |
| Effective working spend | $817/mo | $977/mo | +$160/mo working |
| Avg CPC | $1.28 | $0.80–$1.00 | -25 to -40% |
| Monthly clicks (paid) | ~795 | ~1,200 | +50% |
| Click → Session rate (GA4 attribution) | 16% | 70%+ | +4x (mostly C1) |
| Form completion rate | 6% | 18–22% | +3x (C4) |
| Visible conversions / month | 7.3 | 25–40 | +3 to +5x |
| Effective CPA | $138 | $25–$40 | -70 to -80% |
The "+3 to +5x conversions" lift breaks down roughly as:
- +15–20 conversions/month from form-funnel fix (C4) — converting existing form-starts
- +5–10 conversions/month from phone_click being enabled (C5) — making previously invisible signal visible
- +3–6 conversions/month from C1 (geo fix) restoring Buyers efficacy
- +2–4 conversions/month from H4 (remarketing) re-engaging abandoners
- Net of overlaps and modeling uncertainty: +15–25 net new conversions/month
17Implementation checklist
Every finding above, restated as an actual ticket. Tick them off as the team executes. Sorted by phase and dependency.
Phase 1 — Quick wins (Days 1–14)
- [ ] (C1) Buyers campaign → Settings → Location options → set Target to "Presence: People in or regularly in your targeted locations"
- [ ] (C5) Conversions → edit
lyferealty.com (web) phone_click→ set status ENABLED, primary_for_goal=true, include_in_conversions_metric=true, value=$50 - [ ] (H6) Conversions → "Local actions" (Engagement, Directions, Website visits) → demote all three to Secondary
- [ ] (H1) Tools → Shared library → Negative keyword lists → create "Lyfe — Universal Negatives"
- [ ] (H1) Migrate all 92 Sellers campaign-level keyword negatives into the shared list
- [ ] (H5) Add PHRASE-match negatives:
"for rentals","rental agents","rental realtors","rent to own","help find rentals","realtors for rent","agents for rent","realty for rent","rent agent" - [ ] (H10) Add PHRASE-match negatives:
"homestead exemption","property appraiser","title company","pre foreclosure","investment realtor","real estate investor","fix and flip","wholesale real estate" - [ ] (H7) Add PHRASE-match negatives for competitor brands:
"exp realty","lennar homes","team realty","compass florida","susan hesselman","century village","berkshire hathaway","keller williams" - [ ] (H1) Attach the shared list to Sellers + Buyers
- [ ] (H8) Both campaigns → Ad schedule → Mon–Sat 7am–10pm ET, Sun 10am–8pm ET
- [ ] (H2) Pause keywords with QS=0, spend > $20, 0 conv over 90 days (≈15 keywords)
- [ ] (H3) Identify case-duplicate keywords; keep highest QS variant, pause others
- [ ] (H4) GA4 Admin → Product Links → Google Ads → toggle Ads Personalization ON
- [ ] (H4) Create 3 GA4 audiences for remarketing (form starters, valuation viewers, all visitors)
- [ ] (IDX) Edit
includes/class-bridge-api.phpline 39: appendand PropertyType ne 'Residential Lease'to filter - [ ] (IDX) Audit live pages for
[lyfe_listings]shortcode usage; ensuretype="residential"set explicitly
Phase 2 — Creative & funnel (Days 15–45)
- [ ] (C2) Rebuild RSA in "Realtor / Real Estate Agent (Local)" ad group — 12+ headlines, 4 descriptions, pin local-city headlines for city queries
- [ ] (C2) Rebuild RSA in "Home Seller / Sell My House" ad group similarly
- [ ] (C2) Create keyword-themed landing page variants:
/pembroke-pines-realtor/,/sell-my-house-broward/ - [ ] (H2) Add 10–15 long-tail PHRASE-match keywords per ad group
- [ ] (H7) Re-enable "Competitors" ad group with EXACT/PHRASE competitor keywords, $5–10/day budget, Target CPA $200
- [ ] (O4) Create new "Brand" ad group: EXACT [teresa schwarz], [lyfe realty], [lyfe realty group], [lyferealty], with manual CPC cap $1.50
- [ ] (C3) Sellers → bidding → set Target CPA = $120 (after 7 days of Phase 1 data)
- [ ] (C4) Form funnel: convert
/free-home-valuation/form to multi-step (1 field per screen on mobile) - [ ] (C4) Add real-time validation + inline errors
- [ ] (C4) Add abandoned-form follow-up email (fires 60 min after form_start with no submission, if email field was filled)
- [ ] (H9) Add sticky mobile tap-to-call button to /free-home-valuation/, /home-buyers/, /
- [ ] (M4) Standardize click-through lookback to 90 days, view-through to 1 day on all lead conversion actions
- [ ] (M7) GA4 Admin → Property → Property details → set time zone to America/New_York
- [ ] (M3) Conversion actions: set attribution to Data-driven on all Primary conversions
- [ ] (M1) Delete or repurpose HIDDEN conversion actions (web purchase, web form_valuation_submission_new)
Phase 3 — Expand & scale (Days 46–90)
- [ ] (C3) Step Sellers Target CPA: $120 → $100 (if volume holds) → $85
- [ ] Set Buyers Target CPA = $80 (after C1 fix matures, conversion volume stabilizes)
- [ ] (O2) Audit Facebook Ads audience signals; build matching Customer Match list in Google Ads
- [ ] Launch dedicated low-budget Remarketing campaign ($5–10/day) targeting the 3 Phase 1 GA4 audiences
- [ ] (O1) Split "Realtor / Real Estate Agent (Local)" ad group by city tier (Pembroke Pines, Weston, Davie as separate ad groups)
- [ ] (O5) Create "Blog readers — buyer intent" and "Blog readers — seller intent" GA4 audiences from URL paths
- [ ] (M2) Add 2nd RSA variant to each enabled ad group for A/B
- [ ] (M5) Audit magazine QR code → confirm dedicated landing page with clear CTA
- [ ] (M6) GA4 Admin → Data Streams → BigQuery Link → enable daily export
- [ ] (O6) Begin PMax relaunch planning only if monthly conversions ≥ 30 and form completion rate > 15% sustained for 30 days
18Appendix — raw data references
Source queries
- Google Ads MCP:
googleads/google-ads-mcpvia Claude Code, customer 7679719496, login_customer_id 5754939043 - GA4 MCP:
googleanalytics/google-analytics-mcp, property 514093024 - Audit period: 2026-02-22 to 2026-05-22 (90 days)
- Report generated: 2026-05-22
Identifiers cited in this audit
| Object | ID | Note |
|---|---|---|
| Google Ads customer | 7679719496 | Lyfe Realty Group, USD, America/New_York |
| MCC (Winkode) | 5754939043 | Manager account |
| GA4 property | 514093024 | lyferealty.com (created 2025-11-22) |
| Sellers Search campaign | 23354895341 | ENABLED, Started 2025-12-11, $30/day |
| Buyers Search campaign | 23803957662 | ENABLED, Started 2026-05-01, $20/day, PRESENCE_OR_INTEREST ⚠️ |
| Performance Max campaign | 23643708406 | PAUSED, Ran Mar 10–31, 2026 |
| "Calls from ads" conv action | 7399762254 | AD_CALL, Primary, ENABLED |
| "Home Valuation Form Submissions" conv action | 7425418240 | WEBPAGE, Primary, ENABLED |
| "phone_click" conv action | 7425424783 | HIDDEN — enable per C5 |
| GA4 ↔ Ads link | 13061687366 | ads_personalization_enabled = false ⚠️ |
| Bridge office key | b48c8f8a8971a027fb2c9110617e7e6e | MIAMIRE feed scoped to Lyfe Realty's office only |
Geo target reference
| geoTargetConstants/... | City |
|---|---|
| 9051808 | Pembroke Pines, FL |
| 9052452 | Weston, FL |
| 1015166 | Davie, FL |
| 9052682 | Hollywood, FL |
| 9195057 | Sunrise / Plantation, FL |
| 1015230 | Miramar, FL |
| 9194518 | Cooper City, FL |
| 9052942 | Hallandale Beach / Aventura, FL |
| 21142 | Florida (state) |
Method notes & limitations
- Two MCP field-name gaps were encountered. The MCP version installed does not expose
campaign.url_expansion_opt_outorcustomer_negative_criterion.keyword.textas selectable fields. URL expansion settings could not be queried directly; the analysis instead infers Final URL Expansion behavior from search-term and landing-page patterns. Account-level keyword negatives were inferred to be absent from the empty result oncustomer_negative_criterion+ emptyshared_set+ emptyshared_criterionqueries. These do not affect the audit conclusions but should be validated via the Google Ads UI when implementing the recommendations. - The conversion count discrepancy (22 hard vs 2,350 all_conversions) is normal — all_conversions includes "Local actions" engagement events that are not in the optimizer's primary metric. The audit's "conversions" figure refers to the strict count (form submissions + tracked calls).
- Quality Score readings come from
keyword_viewfor the period. Keywords with insufficient impressions return null QS; these are counted in the "QS 0 or null" bucket. The recommendation to "rebuild RSAs and landing pages" is the same regardless of whether the bucket is "true zero" or "not enough data" — both indicate the account hasn't earned its Quality Score yet. - Projection numbers are conservative midpoints. The model uses lower-bound estimates from published case studies (e.g. multi-step form lifts 30–50% — we used 30% effective; QS 5 vs QS 1 = 35% CPC discount — we used 25% applied). Actual results may exceed projections.