{"id":40,"date":"2026-11-01T19:46:38","date_gmt":"2026-11-01T19:46:38","guid":{"rendered":"https:\/\/www.vibelets.ai\/blogs\/?p=40"},"modified":"2026-11-01T19:46:38","modified_gmt":"2026-11-01T19:46:38","slug":"weekly-facebook-ads-client-report","status":"publish","type":"post","link":"https:\/\/www.vibelets.ai\/blogs\/2026\/11\/01\/weekly-facebook-ads-client-report\/","title":{"rendered":"How to report Facebook ads results to a client weekly"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Most weekly client reports are a screenshot of Ads Manager with some notes underneath. The client sees ROAS go up or down, doesn&#8217;t know whether that is good for their business, and starts to wonder what the retainer is buying.<\/p>\n\n\n<p class=\"wp-block-paragraph\">The fix is not a longer report. It is a report that ties every week to one number the client already cares about, follows the same order every time, and ends with one clear decision for the client to make.<\/p>\n\n\n<p class=\"wp-block-paragraph\">This guide gives you that structure: how to agree the number, the 5 parts to report in order, how to handle numbers that don&#8217;t match Ads Manager, and a template you can paste into your client doc today.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Key takeaways<\/h2>\n\n\n<ul class=\"wp-block-list\">\n<li>Agree the client&#8217;s business number first, such as closed sales or revenue, and report against it every week.<\/li>\n\n\n<li>Use the same 5 parts in the same order: results against target, what changed, creatives holding or fatiguing, tests running, next week&#8217;s plan and the one decision you need.<\/li>\n\n\n<li>Add MER when the client shares total revenue. It does not depend on any attribution setting.<\/li>\n\n\n<li>When your numbers differ from Ads Manager, name the attribution setting you read.<\/li>\n\n\n<li>Write each section so it survives being pasted into a chatbot: one number, one reason, one ask.<\/li>\n<\/ul>\n\n\n<h2 class=\"wp-block-heading\">Agree the business number before the first report<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Ads Manager will give you dozens of columns. The client cares about one or two things: how many sales closed, and how much revenue came in. Pick that number with them on the kickoff call and write it at the top of the report doc.<\/p>\n\n\n<p class=\"wp-block-paragraph\">For a store, it is usually revenue or orders from their own platform, such as Shopify. For a high-ticket or lead-based client, it is closed sales, not leads. Then agree a target for it, and the spend you have to hit it.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Say the client wants 400 orders a month on $16,000 of Meta spend. That is a $40 cost per order. Now every weekly report has a yardstick: roughly 100 orders a week at about $40 each. Purchases, CPA and ROAS from Ads Manager still go in the report, but as the explanation, not the headline.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Ask one more question at kickoff: will they share total revenue each week? If yes, you can report MER.<\/p>\n\n\n<h3 class=\"wp-block-heading\">What MER is, in one line<\/h3>\n\n\n<p class=\"wp-block-paragraph\">MER (marketing efficiency ratio) is the client&#8217;s total revenue divided by their total marketing spend, across every channel, for the same period. If the store made $60,000 last week and spent $15,000 on all marketing, MER is 4.<\/p>\n\n\n<p class=\"wp-block-paragraph\">MER is useful because it does not care which channel gets the credit. Ads Manager ROAS counts only the purchases Meta attributes to your ads. MER counts the whole business. When Meta ROAS looks great but MER is falling, the client is right to ask questions, and you want to be the one who raised it first.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Report in the same order every week<\/h2>\n\n\n<p class=\"wp-block-paragraph\">A fixed order means the client knows where to look, and you can&#8217;t bury a bad week at the bottom. Use these 5 parts.<\/p>\n\n\n<h3 class=\"wp-block-heading\">1. Results against the target, plus MER<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Lead with the agreed number against the target, then spend, then MER if you have it. One line each. &#8220;92 orders against a target of 100. Spend $4,000, so about $43 per order. MER 3.8, down from 4.1.&#8221; If the week missed, say so in the first sentence.<\/p>\n\n\n<h3 class=\"wp-block-heading\">2. What changed last week, and why<\/h3>\n\n\n<p class=\"wp-block-paragraph\">List each change your team made: budget moved, ad sets paused, new ads launched. Give each one its reason. &#8220;Moved $50 a day from the prospecting ad set to the retargeting ad set because its cost per purchase was $30 against $55.&#8221; Include the changes you chose not to make. A client who sees what you turned down understands what the retainer pays for.<\/p>\n\n\n<h3 class=\"wp-block-heading\">3. Which creatives are holding up and which are fatiguing<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Name the ads, not &#8220;creative performance was mixed&#8221;. For each ad that is still working, name the hook, why you think it works, and the test that would prove it. For each ad that is slipping, say what you see: cost per result climbing week on week, or click-through falling.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Ads Manager can help here. For eligible ad sets, the Delivery column can show &#8220;Creative limited&#8221; when cost per result is higher than the advertiser&#8217;s past ads but less than twice as much, and &#8220;Creative fatigue&#8221; when it is twice as much or more. If you quote that status, say it is Meta&#8217;s label, not yours.<\/p>\n\n\n<h3 class=\"wp-block-heading\">4. Which tests are running<\/h3>\n\n\n<p class=\"wp-block-paragraph\">For each test: what is being tested, what you expect to win and why, and when you will read it. &#8220;Testing 3 hooks on the bestseller video. We expect the objection hook to win. Reading results next Thursday.&#8221; If a test finished, give the result in one line, even if it lost.<\/p>\n\n\n<h3 class=\"wp-block-heading\">5. Next week&#8217;s plan, and the one decision you need<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Say what you will pause, test and launch next week. Then ask for one decision, with a date. &#8220;Can we raise daily spend from $500 to $650 from Monday? Please reply by Friday.&#8221; If you need 3 decisions, the client will make none. Pick the one that moves the number most.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Name the attribution setting when numbers don&#8217;t match<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Your report and the client&#8217;s Shopify or analytics numbers will rarely match Ads Manager. That is normal. What hurts trust is a number with no label on it.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Meta reports off-ad actions, such as a purchase on the client&#8217;s site, based on the attribution setting chosen at the ad set level. For website conversions, Meta&#8217;s standard settings count events within 1 or 7 days after a link click, within 1 day after an ad impression (view-through), and within 1 day after a non-link engagement such as a 5-second video play (engage-through). A purchase can count for the ad in Ads Manager and for email or organic search in the client&#8217;s own analytics.<\/p>\n\n\n<p class=\"wp-block-paragraph\">So whenever you quote a Meta number, add the setting in brackets: &#8220;118 purchases (7-day click, 1-day view)&#8221;. If the client&#8217;s store shows 100 orders from paid social, explain the gap in one sentence instead of hiding it.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Three more things to check before you send:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Ad sets on different attribution models. Meta says results can&#8217;t be compared in the same table across standard and incremental attribution. Use the Compare attribution settings feature instead.<\/li>\n\n\n<li>Events Manager counts. Events Manager shows most events received, while Ads Manager shows only events attributed to ads, so Events Manager will usually be higher.<\/li>\n\n\n<li>Third-party tools. Meta lists cross-device tracking, view-through credit, ad blockers and different metric definitions as reasons other tools may not match.<\/li>\n<\/ul>\n\n\n<h2 class=\"wp-block-heading\">When leads arrive but sales don&#8217;t, ask about follow-up<\/h2>\n\n\n<p class=\"wp-block-paragraph\">For clients who sell through a call or a quote, a common week looks like this: leads are on target, cost per lead is fine, closed sales are down. The reflex is to change the ads. Don&#8217;t, yet.<\/p>\n\n\n<p class=\"wp-block-paragraph\">First ask how fast the client follows up, and who does it. A lead who waits two days for a call has often moved on. If the answer is &#8220;whenever sales gets to it&#8221;, put that in the report as the finding and the decision you need. Say the ads delivered 80 leads at $25 each and only 6 closed. The useful line is &#8220;leads are on target; can someone call new leads within the hour this week so we can see if close rate moves?&#8221;, not a new set of creatives.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Write it so it survives a chatbot<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Your client may paste your report into ChatGPT, Claude or Gemini and ask &#8220;is my agency doing a good job?&#8221;. Plan for that. Vague lines like &#8220;performance stabilized as the algorithm optimized&#8221; read as filler to a person and to a model.<\/p>\n\n\n<p class=\"wp-block-paragraph\">Write each section so it stands on its own: one number, one reason, one ask. &#8220;Orders were 92 against 100 because the top ad is fatiguing. We need approval for 3 new hooks by Friday.&#8221; If that sentence is pasted alone, it still says what happened, why, and what you need.<\/p>\n\n\n<p class=\"wp-block-paragraph\">A few habits help: write the full metric name the first time, put the date range at the top, label every Meta number with its attribution setting, and never refer to &#8220;the chart above&#8221;.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Copy-ready weekly report template<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Paste this into the client doc and fill it in each week.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Week:<\/strong> [dates]. <strong>Business number:<\/strong> [closed sales or revenue]. <strong>Target:<\/strong> [number].<\/li>\n\n\n<li><strong>1. Results:<\/strong> [actual] against [target]. Spend [amount], [cost per result]. MER [x], last week [x]. Meta numbers read at [attribution setting].<\/li>\n\n\n<li><strong>2. What changed and why:<\/strong> [change] because [reason]. Considered but not done: [change] because [reason].<\/li>\n\n\n<li><strong>3. Creatives:<\/strong> Holding: [ad name], hook [hook], why [reason], test to prove it [test]. Fatiguing: [ad name], [what you see], next step [action].<\/li>\n\n\n<li><strong>4. Tests running:<\/strong> [what is tested], expected winner [hook] because [reason], read on [date].<\/li>\n\n\n<li><strong>5. Next week:<\/strong> Pause [x]. Test [x]. Launch [x].<\/li>\n\n\n<li><strong>The one decision we need:<\/strong> [question], by [date].<\/li>\n<\/ul>\n\n\n<h2 class=\"wp-block-heading\">Where Vibelets fits<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Once a client&#8217;s Meta ad account is connected and the 14-day trial starts, Vibelets audits it. Each week it writes a plan of what to pause, test and launch, with the reason for each proposed change, so parts 2 and 5 of your report have reasons you can quote. It runs only the changes your team approves, and the activity log records each change and who approved it. See <a href=\"https:\/\/www.vibelets.ai\/for\/agencies\">Vibelets for agencies<\/a>.<\/p>\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n<h4 class=\"wp-block-heading\">What is a good MER?<\/h4>\n\n\n<p class=\"wp-block-paragraph\">It depends on the client&#8217;s margins, so there is no universal number. Work out with the client what MER they need to stay profitable after product costs and overheads, set that as the floor, and report the trend against it each week.<\/p>\n\n\n<h4 class=\"wp-block-heading\">Should I report ROAS or MER?<\/h4>\n\n\n<p class=\"wp-block-paragraph\">Both, if the client shares revenue. ROAS from Ads Manager shows how Meta credits your ads under a given attribution setting. MER shows whether the business as a whole got more efficient. Lead with the one tied to the agreed business number.<\/p>\n\n\n<h4 class=\"wp-block-heading\">Why don&#8217;t my Meta purchases match Shopify?<\/h4>\n\n\n<p class=\"wp-block-paragraph\">Meta counts purchases that happen within the attribution window after a click, a view or an engagement, while the store or analytics tool may credit the same order to another channel. Name the attribution setting next to every Meta number and explain the gap in one line.<\/p>\n\n\n<h4 class=\"wp-block-heading\">How long should a weekly report be?<\/h4>\n\n\n<p class=\"wp-block-paragraph\">Short enough to read in 2 minutes. If a section runs past a few lines, cut it to one number, one reason and one ask, and move the detail to a linked appendix.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Sources<\/h2>\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.facebook.com\/business\/help\/460276478298895\">Meta Business Help Center: About attribution models and attribution settings<\/a><\/li>\n\n\n<li><a href=\"https:\/\/www.facebook.com\/business\/help\/458681590974355\">Meta Business Help Center: About actions attributed to your ad<\/a><\/li>\n\n\n<li><a href=\"https:\/\/www.facebook.com\/business\/help\/337196340694086\">Meta Business Help Center: Differences between event counts in Meta Ads Manager, Ads Reporting and Events Manager<\/a><\/li>\n\n\n<li><a href=\"https:\/\/www.facebook.com\/business\/help\/147965221941551\">Meta Business Help Center: About conversion count differences between Meta Ads Reporting and third-party reporting tools<\/a><\/li>\n\n\n<li><a href=\"https:\/\/www.facebook.com\/business\/help\/1346816142327858\">Meta Business Help Center: About creative fatigue recommendations in Meta Ads Manager<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>A weekly Facebook ads report clients can act on: agree the business number, report in the same 5 parts, add MER, and name the attribution setting.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-40","post","type-post","status-publish","format-standard","hentry","category-ai"],"_links":{"self":[{"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/posts\/40","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/comments?post=40"}],"version-history":[{"count":1,"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/posts\/40\/revisions"}],"predecessor-version":[{"id":44,"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/posts\/40\/revisions\/44"}],"wp:attachment":[{"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/media?parent=40"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/categories?post=40"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vibelets.ai\/blogs\/wp-json\/wp\/v2\/tags?post=40"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}