New Meta ads client signed. Now the boring part:
→ Business Manager + ad account access
→ Pixel + CAPI wired to your CRM
→ Lead forms / landing pages connected
→ Events tested before $1 is spent
That's what I handle for agencies. White-label, monthly. DMs open.
New client in housing, jobs or financial products?
Declare the special ad category before the first campaign goes live.
Skip it and the ads get rejected.
What changes: no age or gender targeting, no zip codes, 15-mile minimum radius.
Plan the targeting around it on day 1.
@fergonzal Same double count happens on Meta when the CRM sends Lead events through CAPI on top of the pixel with no shared event_id. Quick check: open the Lead event in Events Manager and look at deduplication. If both sources fire and almost nothing is deduped, every lead counts twice.
@markdmei "Numbers checked against goals" is where BFCM debriefs go wrong if Purchase events double-fired during the sale. Before comparing, check Events Manager: if Meta shows more purchases than Shopify orders, pixel and CAPI weren't deduplicating and the top-performer list is skewed.
@_May_Ham Hooks get the sub, but Meta only learns from what you send back. If the newsletter platform passes an "engaged subscriber" event (opened 3+ emails in week one) through the Conversions API, you can optimize toward readers who stick instead of cheap signups.
@imakeBADads The onboarding form is where most of the back-and-forth hides for ad clients. Ask for their Business Manager ID so the partner request goes out day one, plus who owns the pixel and who controls the domain. Those three answers cause most week-one email chains.
@truejoshg New customer ROAS is only as clean as the list Meta uses to define "existing customers". If that Shopify customer list isn't refreshed often, recent buyers get counted as new and the target looks healthier than it is. At $600K/mo, worth automating that sync.
Client asks which ad brought in their best customer.
You open the CRM. Source: "Facebook". That's it.
Add Meta's dynamic URL parameters (campaign, ad set and ad name) to every ad.
Map them to hidden fields on the landing page form.
Now every lead shows the exact ad.
@JXTGroup Hiring ads next to intake ads in one account is where it gets messy. The hiring campaign has to run under Meta's Employment special ad category (15-mile minimum radius, no age or gender targeting), and applicants need their own form and pipeline so intake doesn't call RBTs.
A client fires your agency.
Whose Business Manager owns their pixel?
If it's yours, they leave with zero data history and the next agency blames you.
If it's theirs, offboarding takes 5 minutes.
Create every pixel in the client's BM. Share it to yours as a partner.
@grow_law Leads in, profit flat usually means nobody can see which leads became signed cases. Tag every intake with its source in the CRM and review cost per signed case by channel, not cost per lead. The tough vendor questions get much easier with that number.
@joshykobyashi Field count matters less than where the answers end up. 3 fields whose budget answer never reaches the CRM lose to 6 fields that route leads by fit. On Meta instant forms, map every custom question to a CRM field before launch or the answers stay in Meta.
@NickAbraham12 Pay per closed deal only works if the client's CRM can show which deals came from you. Agents can't fix that part: you need access and a lead source field in their CRM on day one. Without it, every invoice turns into a debate about attribution.
@SambhavOnX Running ads from the creator's account adds a step brands forget: the creator grants partnership ad permission in Meta, and it can expire or be revoked. If a top creator ad suddenly stops delivering, check that permission before calling it fatigue.
@JoseMorenoPPC Three definitions of a qualified lead means three different signals going back to Google. Pick one, make it a CRM stage, and import only that stage as the offline conversion. Then bidding learns what sales calls qualified, not what the form says.
Your client's Meta lead campaign is optimizing for form fills.
Their sales team says half the leads never pick up.
Meta has no idea. It only sees the form.
Send the CRM stage back (qualified, booked, closed) through the Conversions API. Then Meta can learn who actually buys.
@roshanp Onboarding stages is where Meta setups stall: BM partner access, pixel ownership, domain verification, all waiting on the client. Give each its own step and owner. Once the Meta integration is in, pull each pixel's last event time daily so broken tracking shows up first.
Agency owners: open Events Manager for your biggest client.
Check Event Match Quality on Lead or Purchase.
Under 6? Meta can't tie many conversions to a real person.
Send hashed email + phone through CAPI, not just the pixel. Often the fastest tracking fix in the account.
@infernoRodney $5M LTV from B2B form fills means most of the signal Meta needs sits in your CRM, not the lead form. Sending "qualified" and "signed dealer" stages back through Conversions API lets Meta optimize toward who signs, not who fills the form fastest.
@IstvanicMarin A CPA drop that's really a tracking drop is the one I'd rule out first. Compare daily Purchases in Events Manager with Shopify orders. If Meta's count fell and the store's didn't, a theme or checkout app likely broke the pixel or CAPI, not the creative.
@kylesporter The ad account is the part owners check. The pixel is the one they miss: if the dataset lives in the agency's Business Manager, years of event history leave with the agency. The owner's BM should own the dataset and the domain, agency gets partner access.