Tag: API

  • Google Ads Workflow and Data Retention: How to Adapt

    Google Ads Workflow and Data Retention: How to Adapt

    Your Google Ads team now faces two different kinds of time pressure. New ads may receive policy feedback while they are being created, while older reporting data can disappear once its retention window closes.

    The practical response is to redesign both ends of the campaign lifecycle: make compliance part of production, then make data preservation part of routine account operations. Here is a workable system you can put in place without turning every launch or export into a special project.

    Key takeaways

    • Responsive Search Ads can receive editorial feedback during drafting and a policy decision after saving, so policy checks should happen inside your creation workflow.
    • Simple, editable problems need a clear owner who can correct and resubmit them immediately. Certifications, appeals, and other complex issues need a separate escalation path.
    • Hourly, daily, and weekly reporting data is retained for 37 months, while monthly, quarterly, and annual reporting can remain available for up to 11 years.
    • Reach and frequency metrics have a three-year retention limit, so preserve them on their own schedule.
    • Expired data becomes unavailable through both the Google Ads interface and APIs. An API connection is not an archive unless it writes data to storage you control.

    Move policy review into campaign production

    The old mental model was simple: build an ad, submit it, and wait for a separate review. Real-Time Policy Reviews move feedback into the creation process. While you draft a Responsive Search Ad, Google Ads can flag editorial problems such as typos and destination-link errors. After you save it, the system can return a policy decision immediately. Ads without identified problems can move toward delivery quickly, while more complicated cases go to a post-save review screen with the issue and available next steps. The capability initially applies to Responsive Search Ads, with expansion to other campaign types planned.

    That changes what “campaign ready” should mean. Your launch checklist should no longer stop when the copy and landing page are approved internally. It should stop when the saved ad has a recorded Google Ads policy outcome.

    Separate editable issues from complex issues

    Google divides policy problems into two useful operational groups. Editable issues are problems you can correct in the ad workflow, such as formatting errors. Complex issues may require certification, an appeal, or another process that cannot be completed by rewriting a headline. Treating both groups as the same queue creates avoidable delay.

    1. Draft and preflight: Confirm the final URL, spelling, formatting, and required internal approvals before saving.
    2. Read the live feedback: Correct editorial flags while the creator still has the ad open and understands the context.
    3. Save and record the decision: Capture the policy status in your campaign tracker rather than assuming that saving means approval.
    4. Fix editable problems immediately: Keep these with the campaign builder so a minor correction does not enter a general support queue.
    5. Escalate complex problems: Assign one named owner for certifications, evidence, appeals, and communication with stakeholders.
    6. Confirm delivery: Check that an approved ad has actually begun serving before declaring the launch complete.

    For each exception, record the account, campaign, ad, exact policy message, first detection time, assigned owner, action taken, and final status. This small audit trail helps you distinguish recurring production mistakes from genuine policy disputes.

    Build your archive around the actual retention windows

    Campaign record tiles moving through layered digital storage while data outside the archive fades near abstract clock rings.

    Policy feedback can shorten the time from creation to delivery. Data retention creates the opposite constraint: waiting can permanently reduce what you are able to analyze. Beginning June 1, 2026, Google Ads applies different limits based on reporting period, and data that passes those limits is no longer available in the interface or through APIs.

    Reporting dataRetention periodPractical archive decision
    Hourly, daily, and weekly reports37 monthsBackfill granular history first and export it continuously.
    Monthly, quarterly, and annual reportsUp to 11 yearsKeep these rollups for long-range reporting, but do not treat them as a substitute for granular data.
    Unique users, average impression frequency per user, 7-day and 30-day average impression frequency, and frequency distribution metricsThree yearsGive reach and frequency data its own earlier export deadline.

    A monthly total cannot recover the daily pattern behind it. If you use historical performance for seasonality, forecasting, anomaly analysis, client benchmarking, or cross-channel planning, preserve the smallest reporting interval you genuinely need. Do not export every possible combination without a use case; that produces an expensive archive that nobody can interpret.

    Use a backfill-first export plan

    1. Inventory dependencies: List every dashboard, forecast, scheduled report, client deliverable, and internal analysis that reads Google Ads history.
    2. Classify the required grain: Mark each dependency as hourly, daily, weekly, monthly, quarterly, or annual. Identify any use of reach and frequency metrics separately.
    3. Find the oldest unpreserved period: Determine where storage you control begins. The gap between that date and the oldest data still available is your backfill target.
    4. Export the oldest granular data first: Data nearest its deletion boundary carries the greatest risk. Work forward after securing it.
    5. Automate incremental exports: Schedule recurring extraction into storage outside Google Ads. Include monitoring so a failed job cannot remain invisible for months.
    6. Retain raw and transformed data separately: Preserve an unchanged extract, then build cleaned reporting tables from it. This lets you correct transformation errors without attempting to retrieve expired records again.

    Your stored records also need enough context to remain usable. Keep stable account and campaign identifiers, reporting dates, reporting grain, relevant dimensions, metric names, account time zone, currency context, and the extraction timestamp. Document any transformation or filtering applied after export.

    Prove that the archive can replace the interface

    Specialist restoring archived campaign records into an organized reporting workspace during a recovery test.

    A successful export is not the same as a reliable archive. The real test is whether another person can reproduce a familiar report after the corresponding Google Ads data is no longer accessible.

    • Reconcile totals: Compare stored results with the Google Ads interface for several completed periods at each reporting grain you intend to keep.
    • Check completeness: Look for missing accounts, dates, campaigns, dimensions, and reach or frequency fields.
    • Test reruns: Confirm that retrying an extraction does not silently duplicate records or overwrite valid history.
    • Simulate recovery: Rebuild one recurring dashboard using only the archive and its documentation.
    • Assign ownership: Name the person responsible for failed exports, schema changes, access control, and retention decisions in your own storage.
    • Record validation evidence: Save reconciliation dates, discrepancies, fixes, and approval from the report owner.

    API users need to be especially careful. An automated query that fetches data on demand still depends on Google’s retention window. Continuity comes from writing scheduled extracts to independent storage, validating them, and keeping enough documentation to interpret them later.

    This history may also serve people outside the paid media team. If SEO, content, finance, or leadership uses advertising trends for planning, ask what granularity they depend on before choosing what to preserve. Their needs may not be visible in the Google Ads reporting setup.

    Set a 30-day operating plan

    In the first week, add the post-save policy decision to your campaign launch checklist and designate owners for editable and complex issues. During the second week, inventory reporting dependencies and retention risks. Use the third week for the oldest required backfill, prioritizing granular and reach-and-frequency data. In the fourth week, automate the next extraction, reconcile it against Google Ads, and run a report using only the stored copy.

    Then make both controls routine. Every campaign launch should end with a verified policy and delivery status. Every reporting cycle should end with a successful, validated export. That gives your team faster launches without sacrificing the history needed to understand what happened later.

    References

  • Unlock Coding Potential with the Profound API Cookbook

    Unlock Coding Potential with the Profound API Cookbook

    Hey there! I’m excited to introduce you to something that has truly changed the way I approach coding projects—the Profound API Cookbook. If you’ve ever started with the thought, ‘I want this number,’ and wished for a seamless way to transform that into runnable code, this is for you.

    Imagine having a collection of end-to-end recipes right at your fingertips, perfectly layered on top of our REST API references. This isn’t just about coding; it’s about enhancing your workflow and efficiency in a whole new way. Each recipe is designed to guide you from concept to execution with ease.


    Inspired by this post on Try Profound Blog.


    crushpress.ai community screenshot
  • Build Google Commerce Infrastructure From Visibility to Revenue

    Build Google Commerce Infrastructure From Visibility to Revenue

    You can have thousands of products appearing on Google and still have two expensive blind spots. Shoppers may never see listings hidden behind a carousel scroll, while purchases or qualified leads completed elsewhere may never return to Google Ads.

    If you own ecommerce growth, you need two connected but distinct systems: one that measures whether products earn usable visibility, and one that returns offline outcomes to the advertising platform. Here is how to build both without confusing presence with exposure, activity with revenue, or shared reporting with attribution.

    Count the product placements shoppers can actually see

    Shopper viewing a product carousel where several items are visible and many more remain hidden beyond the screen edge.

    A product-pack appearance is not automatically an impression worth celebrating. Google can place products in horizontally scrollable carousels, so the first visible positions receive a very different opportunity from listings that require interaction before they appear.

    The scale makes this distinction material. A monitoring dataset covering more than 63,000 merchants from January 2025 through January 2026 found searches with as many as 60 individual organic product listings on one results page. A report that counts every one of those listings equally will overstate the practical reach of products buried deep in a carousel.

    Keyword coverage can be just as misleading. eBay appeared in product results for 874,621 keywords and generated about 3.2 million estimated visits, while Home Depot appeared for a slightly smaller 831,699 keywords but generated nearly 28.8 million estimated visits. The difference was associated with Home Depot securing more prominent, immediately visible positions. More appearances did not mean more useful exposure.

    Build your product-pack scorecard in layers. Keep each layer separate so an impressive top-line number cannot hide weak placement:

    • Eligible catalog: Products you expect Google to understand and consider for the category.
    • Total appearances: Every detected placement, including positions that require scrolling.
    • Visible appearances: Placements shown before a shopper scrolls the carousel.
    • Visible rate: Visible appearances divided by total appearances. Preserve the counts beside the percentage so a small sample does not look more important than it is.
    • Query quality: Segment high-demand category searches from low-volume long-tail queries. Raw keyword coverage otherwise rewards breadth whether or not that breadth produces meaningful traffic.
    • Observed visits and outcomes: Use analytics for measured sessions, transactions, leads, and revenue. Label third-party traffic estimates as estimates rather than blending them with observed data.

    Review the scorecard by category, not only by domain. A healthy total can conceal one category that wins visible positions and another that appears frequently but remains out of sight. That second category is where feed and merchandising work may create the largest gain.

    Fix commerce inputs before reaching for a blanket discount

    Discounting is easy to change and easy to report, which makes it an attractive explanation for product-pack performance. It is not a reliable standalone lever.

    Among large merchants in the monitored data, Amazon discounted 49% of its catalog and achieved a 72% visibility rate. eBay discounted only 8% and reached 81%. Walmart Seller reached the same 81% visibility rate with 24% of products discounted, while Walmart discounted 27% and recorded a lower 62% visibility rate. That irregular pattern does not establish a universal ranking formula, but it does show why discount depth should not be treated as the primary explanation for placement.

    Start with the inputs Google and shoppers need to evaluate the product: complete product data, clear category relevance, strong images, current pricing and availability, and credible reviews. Promotions can still support a commercial offer, but they cannot compensate for an unclear product identity or poor category fit.

    Turn low visibility into a product-level work queue

    1. Choose one commercially important category rather than auditing the whole catalog at once.
    2. Export products that appear for relevant queries but have a low visible rate.
    3. Compare those products with visible winners in the same category. Check data completeness, category alignment, image quality, review strength, price, and availability.
    4. Group repeated defects. Ten products with the same missing or weak input should become one system fix, not ten unrelated tickets.
    5. Correct one defect class, record the date, and remeasure the same category. Product-pack placement fluctuates, so a before-and-after comparison needs consistent queries and a sufficiently stable observation window.
    6. Escalate products that remain hidden despite clean inputs. They may face a relevance, competitiveness, or demand problem rather than a feed defect.

    This process will not prove that one field caused a ranking change. It will give you a disciplined way to improve controllable inputs without assuming that every movement came from price.

    Specialist retailers should be especially careful not to confuse smaller scale with weaker potential. Camp Chef appeared for 155,299 keywords yet generated about 2.6 million estimated visits through advantageous placements. Its footprint was much smaller than the largest marketplaces, but category focus and placement quality produced substantial estimated traffic. Depth in a category can be more commercially useful than millions of marginal appearances.

    Protect offline conversion measurement as the API route changes

    Offline checkout and sales outcomes flowing through a secure gateway into a newer cloud-based measurement connection.

    Product-pack optimization addresses organic commerce visibility. Offline conversion imports address Google Ads measurement and bidding. They belong in the same commerce operating model, but they are not the same channel and should never be presented as if one directly measures the other.

    Google is moving offline conversion imports, including enhanced conversions for leads, from the Google Ads API toward the Data Manager API. Under the communicated change, UploadClickConversions becomes nonfunctional after June 15 for affected accounts that have not used the feature during the preceding 180 days. The change applies to offline conversion imports for some developers, while other Google Ads API operations continue.

    Do not infer that your integration is safe merely because it still runs or because another Google Ads API operation succeeds. An application can keep managing campaigns while its offline conversion path quietly becomes obsolete. Missing imports can weaken reporting, attribution, and the conversion signals used by automated bidding.

    Use this migration checklist

    1. Find every dependency. Search application code, scheduled jobs, middleware, vendor integrations, and internal runbooks for UploadClickConversions. Include enhanced conversions for leads and any sales or lead events completed outside the immediate ad interaction.
    2. Map the affected accounts. Record which accounts use each workflow, when each last imported conversions, who owns the source system, and how frequently the job runs. The 180-day activity condition makes account-level evidence more useful than a platform-wide assumption.
    3. Define the event contract. Document what qualifies as a conversion, where it originates, how it is identified, which value is sent, and which system is authoritative. Migration is a poor time to preserve an event definition nobody can explain.
    4. Build the Data Manager API route. Keep unrelated Google Ads API operations in place unless they have a separate reason to move. The scope here is the conversion-ingestion workflow.
    5. Test a controlled slice. Confirm that source events are accepted, rejected events are visible to operators, and imported counts and values reconcile with the originating system.
    6. Prevent double counting. A temporary overlap can help validate a migration, but sending the same business event through two active routes without a deduplication plan can corrupt reporting. Document exactly when the old writer stops and the new writer becomes authoritative.
    7. Add failure monitoring. Alert on missing runs, unexpected volume changes, rejected events, and reconciliation gaps. A job that reports technical success but delivers no usable conversions is not healthy.

    Because the communicated cutoff applies selectively, treat the date as a prompt to verify your current environment rather than assuming every account failed at once. The decisive evidence is your dependency inventory, recent account activity, accepted-event reporting, and reconciliation with the source system.

    Join the systems without inventing cross-channel attribution

    A shared commerce data spine makes the two workstreams easier to operate. It does not make Google Ads conversion imports a measurement system for organic product packs. Preserve channel and attribution boundaries while standardizing the business entities used in both.

    At minimum, use consistent product and category identifiers across the commerce feed, landing pages, analytics, CRM or order system, and internal reporting. If you publish product structured data, align its product identity, price, and availability with the same source of truth. The immediate benefit is diagnostic: your team can trace a category from search visibility through site behavior and recorded outcomes without manually translating competing names.

    Product-pack visibilityOffline conversion pipelineWhat you can concludeNext action
    Strong and visibly placedHealthy and reconciledBoth discovery and advertising measurement are operational, but their results still require separate attribution.Compare category economics and prioritize the products with the strongest observed business outcomes.
    Strong and visibly placedBroken or uncertainOrganic discovery may be healthy, but Google Ads reporting and bidding signals are unreliable.Restore and reconcile the conversion pipeline before making bid or campaign conclusions.
    Weak or mostly hiddenHealthy and reconciledAdvertising measurement is usable; the organic product-pack problem sits upstream.Work the category-level product data, relevance, image, review, price, and availability queue.
    Weak or mostly hiddenBroken or uncertainYou have two separate failures, not one vague Google problem.Assign independent owners. Protect conversion ingestion because bidding can be affected, while product visibility remediation proceeds in parallel.

    Give each layer an operating cadence

    • Daily: Check whether offline conversion jobs ran, whether expected events arrived, and whether rejection or reconciliation thresholds were breached.
    • Weekly: Review visible versus non-visible product-pack appearances by category. Create a prioritized issue queue for products with meaningful query exposure but poor placement.
    • Monthly: Compare category-level visibility, measured site outcomes, advertising results, catalog changes, promotions, and resolved data defects. Keep estimated traffic in a separate column from observed sessions and revenue.
    • After a sudden change: Check availability, price, images, reviews, feed completeness, and category mix before concluding that discounting or a single platform update caused the movement.

    Expect movement. Nearly every merchant in the year-long monitoring dataset experienced product-pack visibility shifts, with some gaining during one period and receding later. Google can change how it weighs feed quality, availability, reviews, pricing, and images, so a previously strong visible rate is not a permanent asset.

    Key takeaways

    • Report visible product-pack appearances separately from placements hidden behind a carousel scroll.
    • Segment performance by category and query value; raw keyword coverage can conceal poor positioning and weak traffic.
    • Treat discounts as one commercial input, not a substitute for complete product data, category relevance, good images, reviews, current price, and availability.
    • Audit UploadClickConversions dependencies now and move affected offline conversion workflows to the Data Manager API with reconciliation and failure alerts.
    • Keep organic visibility and Google Ads attribution distinct, even when they share product identifiers and business reporting.

    Start with one important category and one conversion workflow. Establish the visible-placement baseline, clear the highest-frequency product-data defect, and verify that the corresponding offline conversion job reaches its destination. That gives you a working control loop you can extend across the catalog without scaling hidden measurement errors along with it.

    References

  • How to Manage Ad Targeting and API Updates Without Chaos

    How to Manage Ad Targeting and API Updates Without Chaos

    An advertising-platform release can create two very different jobs. A targeting feature asks whether you can reach a better audience. An API change asks whether your reporting, security checks, stored data, and automation will continue to work. Treat both as features to try, and you can spend budget before measurement is ready or discover a broken data dependency after the damage is done.

    That distinction matters now because Microsoft Advertising has extended LinkedIn profile targeting to connected TV campaigns, while Google Ads API v24.1 adds reporting, creative-control, experiment, authentication, and retention-related changes. You need a release process that protects existing operations first, validates measurement second, and tests growth opportunities third.

    Classify each change before scheduling the work

    The loudest feature should not automatically become the first task. Rank changes by what happens if you ignore them. A new audience may represent an opportunity, but a data-retention limit can permanently narrow the history available to your reporting system.

    Use five practical classes:

    • Continuity changes: retention limits, unsupported requests, client compatibility, and anything else that can interrupt a production workflow.
    • Measurement changes: new segments or metrics that alter how performance can be divided and interpreted.
    • Security changes: fields that help you identify account protections or authentication gaps.
    • Control changes: options that affect how an approved creative is uploaded, transformed, or displayed.
    • Growth changes: new audiences, inventory, campaign types, and experiment surfaces.

    Work through them in that order unless a documented dependency changes the sequence. Continuity comes first because lost history or a failed reporting job can affect every campaign. Measurement comes before growth because you cannot judge a new audience reliably until you know what the reporting can and cannot observe.

    For the current updates, the 37-month Google Ads data-retention boundary belongs in the continuity queue. The mobile-device platform segment belongs in measurement. The passkey field belongs in security. Demand Gen image control belongs in control. LinkedIn-based CTV targeting belongs in growth. That classification gives your team an actionable backlog rather than an undifferentiated list of announcements.

    Test professional CTV targeting as an audience hypothesis

    A media planner runs a small connected TV audience test by selecting one professional audience cluster for comparison.

    Microsoft’s CTV expansion lets advertisers use professional attributes such as industry, job function, company category, and professional identity signals. For a B2B advertiser, that can connect broad streaming exposure with a more relevant professional audience.

    It does not turn a professional attribute into buying intent. A viewer’s job function may indicate fit, but it does not prove that the viewer is researching a purchase. Treat the targeting as a testable audience hypothesis: people matching this professional profile should respond differently from a suitable comparison audience when the message and measurement remain consistent.

    Build the first test in this order:

    1. Choose one buying group. Describe it with the smallest useful combination of industry, function, and company characteristics. If you begin with a heavily stacked audience, you will not know which condition created the result or restricted delivery.
    2. Write down what the attributes mean. Record the exact audience definition, intended buying role, exclusions, eligible markets, and date of activation. Platform labels are not a substitute for an internal audience specification.
    3. Hold avoidable variables steady. Use comparable creative, offers, geography, inventory conditions, and evaluation windows across the audience cells. Otherwise, a creative or delivery difference can masquerade as a targeting effect.
    4. Select an observable outcome before launch. Do not let an easy-to-read delivery metric become the business objective by default. Use the conversion, lift, or qualified-response signal that your measurement stack can support consistently.
    5. Set a decision rule. Define what evidence would justify expanding, revising, or stopping the audience. Making that decision after seeing the result invites selective interpretation.
    6. Review privacy and compliance. Confirm that the proposed professional segmentation, creative, data handling, and market coverage fit your organization’s requirements before the audience begins receiving ads.

    Measurement deserves extra attention. CTV has traditionally operated as a brand-oriented channel with less direct attribution than search or shopping. Professional targeting can improve audience relevance, but it does not automatically resolve that measurement gap. Keep exposure quality, downstream response, and attribution confidence separate in your readout.

    Several implementation details remain uncertain, including market availability, segmentation granularity, measurement capabilities, and privacy considerations. Verify those items in the account and market you intend to use. Do not build a forecast around targeting combinations or reporting dimensions you have not confirmed are available.

    Turn Google Ads API v24.1 into an engineering checklist

    An engineer checks reporting, security, creative, experiment, automation, and data modules before an API workflow reaches production.

    API adoption is not complete when a client library installs successfully. The real work sits downstream: query builders, schemas, dashboards, experiment records, asset workflows, authentication reports, exception handling, and historical storage.

    Start by mapping each v24.1 capability to the system it can affect:

    The retention change deserves a separate migration task. Search your query code, scheduled exports, dashboards, year-over-year reports, model-training inputs, and audit workflows for requests that can reach beyond 37 months. Then verify what history is still queryable and preserve future data at the granularity your business actually needs.

    An archive is useful only if you can interpret and restore it. Store the account identifier, reporting period, timezone, currency context, field definitions, extraction timestamp, and relevant attribution or configuration metadata alongside the metrics. Test a restore into a clean table before relying on the archive. A successful export file is not proof of a recoverable reporting history.

    Update error handling as well. DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED identifies an unsupported date-range request. Treat a confirmed policy boundary as a query-design problem, not a transient failure to retry indefinitely. Logging the requested dates and granularity will make the remediation far faster.

    Put targeting and API work through one change-control loop

    Marketing and engineering do not need separate definitions of a successful platform update. They need one shared record that distinguishes a business hypothesis from a technical dependency.

    Change typeQuestion to answer firstEvidence requiredSafe response if it fails
    New audienceCan you isolate the audience effect?Documented audience cells, stable measurement, and a predefined decision rulePause the new segment without disturbing the existing campaign structure
    Reporting dimensionCan every downstream system accept and interpret it?Schema validation and reconciled totals against a baselineRemove the new dimension from production queries while preserving the test
    Creative-control fieldDoes the delivered asset match the approved intent?Asset-level quality review and recorded campaign mappingReturn to the previously approved asset path
    Retention boundaryCan analysis continue after platform history expires?External archive plus a successful restore testNo platform rollback exists; repair the archive and shorten unsupported queries
    Authentication-status fieldWho acts when an account lacks the expected protection?Verified field ingestion, ownership, and a remediation queueKeep the current authentication flow while correcting the reporting or rollout process

    Every change ticket should name an owner, impacted accounts, affected queries or campaigns, the validation evidence, a rollback path, and the date when someone will make a keep-or-revert decision. If no one owns that decision, the change is not ready for production.

    Keep the Microsoft audience test and Google API migration separate even if they appear in the same planning cycle. One measures whether professional targeting improves an advertising outcome. The other protects and expands the systems used to report that outcome. Combining them creates two moving parts and a result that is harder to diagnose.

    Key takeaways

    • Prioritize continuity and data-retention work before testing new reach.
    • Treat professional CTV attributes as proxies for audience fit, not proof of current purchase intent.
    • Confirm Microsoft CTV availability, measurement, segmentation, and compliance conditions in the actual account and market before forecasting results.
    • Test every new Google Ads API field through queries, schemas, storage, and dashboards before promoting it to production.
    • Maintain an external, restorable archive if your reporting requires more than 37 months of Google Ads history.
    • Give every rollout a named owner, acceptance evidence, rollback path, and decision date.

    At your next platform-change review, create two queues: one for operational deadlines and one for controlled growth tests. Clear the dependencies that can damage data or reporting, validate the measurement layer, and then give the new audience or creative capability a fair test.

    References

  • Google FAQ Rich Results Retirement: A Practical Action Plan

    Google FAQ Rich Results Retirement: A Practical Action Plan

    You may still have FAQ sections, FAQPage JSON-LD, reporting filters, and client promises built around Google’s expandable FAQ listings. The listing has gone away, but that does not mean every FAQ or every line of FAQ markup should disappear with it.

    Your job now is to separate the retired Google Search feature from the content and data that may still serve a purpose. That distinction will tell you what to remove, what to retain, and what to measure.

    What Google retired, and when each dependency changes

    Google ended support for FAQ rich results on May 7, 2026. The visible consequence is straightforward: adding valid FAQPage structured data no longer makes a page eligible for an FAQ rich result in Google Search.

    The retirement also affects the tools around the feature. Google’s announced schedule separates the wind-down into three operational milestones:

    MilestoneWhat changesWhat you should do
    May 7, 2026FAQ rich results stop appearing in Google Search.Stop treating FAQ markup as a Google rich-result opportunity.
    By June 2026Google planned to remove the FAQ search appearance, the dedicated rich-result report, and FAQ support in the Rich Results Test.Replace reports, tests, and documentation that depend on those surfaces.
    By August 2026Google plans to remove FAQ rich-result support from the Search Console API.Update API jobs before missing FAQ-specific data or filters can break them.

    These milestones affect eligibility, reporting, testing, and API access. They do not delete the visible questions and answers on your pages. They also do not establish that FAQPage markup is harmful. The retirement notice alone is not evidence of a penalty.

    Key takeaways

    • Stop approving FAQ schema work on the promise of a Google FAQ rich result.
    • Do not remove useful visible answers merely because the associated search enhancement has retired.
    • Keep the markup only when you can identify a remaining consumer or justify its maintenance cost.
    • Remove FAQ-specific dependencies from Search Console reports, alerts, dashboards, and API jobs.
    • Measure the change with page cohorts and query data, not a single sitewide before-and-after chart.

    Decide whether to keep or remove FAQPage markup

    There is no universal requirement to purge FAQPage from every site. The right decision depends on what consumes the markup, how it is maintained, and whether it remains accurate.

    DecisionUse it whenMain risk to control
    Keep itA verified non-Google search engine, application, internal knowledge system, or publishing workflow consumes it, and the data stays synchronized with the visible page.Do not assume another system uses the markup merely because it can parse JSON-LD.
    Remove itThe only documented purpose was Google FAQ rich-result eligibility, or the implementation produces stale, duplicated, or misleading data.Target FAQPage specifically so you do not erase unrelated structured data.
    Keep it temporarilyYou cannot yet identify every downstream dependency.Give the uncertainty an owner and review date so temporary markup does not become permanent by neglect.

    The phrase “other systems may use it” is not a business case by itself. Ask for evidence: a documented integration, a consuming application, a test that shows the data being ingested, or a named team that depends on the output. Without one of those, you are maintaining code for a hypothetical benefit.

    Retention also has a cost. Automatically generated markup can drift away from the visible answer, survive after an FAQ is deleted, or duplicate data emitted by a theme and a plugin. That creates audit noise and makes future structured-data incidents harder to diagnose. If no verified consumer remains, removing that unused layer is a reasonable cleanup.

    Audit the implementation before touching production

    1. Find every emitter. Search templates, plugins, block settings, custom fields, tag-management rules, and rendered HTML for FAQPage. Check both server-generated source and JavaScript-rendered output.
    2. Map pages to templates. Record the canonical URL, template or content type, markup generator, owner, and any known consumer. This distinguishes a centralized fix from hundreds of apparent page-level fixes.
    3. Check for duplicate output. A page may receive one graph from an SEO plugin and another from its theme or page builder. Removing one does not necessarily remove the other.
    4. Separate schema types. Confirm that the proposed change removes only the FAQ node and its intended relationships. Preserve unrelated Article, BreadcrumbList, Product, organization, or other data unless your audit finds a separate reason to change it.
    5. Verify visible parity. If you retain FAQ markup, each marked-up question and answer should still correspond to content a visitor can access on that page.
    6. Test a representative sample. Include different templates, locales, device-rendering paths, and pages with nested structured-data graphs. A successful test on one hand-built page does not prove that a shared template is safe.

    If you remove the markup, use a staged release or a small controlled page group where your publishing system allows it. Capture the prior output first, verify that the visible FAQ still works, and compare the full structured-data graph before and after deployment. A broad search-and-delete operation can remove braces, graph relationships, or neighboring schema that were never part of the retirement.

    Repair Search Console reports and API jobs before they fail silently

    An obsolete accordion-shaped module is disconnected from a linked browser, structured-data, reporting, and API workflow on a worktable.

    The reporting change deserves as much attention as the markup. A dashboard can keep loading while an FAQ filter returns no rows, a chart becomes permanently flat, or an alert stops firing. That is more dangerous than an obvious error because the report still looks operational.

    Inventory every place where FAQ search appearance is used: saved Search Console views, exported workbooks, business-intelligence models, scheduled reports, client templates, annotations, anomaly alerts, and API queries. For each dependency, decide whether to remove the component, replace it with page-level reporting, or preserve the historical series as a closed metric.

    1. Preserve available history. Keep any existing FAQ-specific exports with their original date range and definitions. Historical data remains useful for explaining why an old report or traffic pattern differs from a new one.
    2. Retire the metric explicitly. Label the series as discontinued rather than allowing it to fall to zero without explanation. A zero can be misread as an implementation failure.
    3. Remove brittle filters. Update queries and transformation steps that expect an FAQ appearance value. Jobs should handle its absence without discarding otherwise valid Search Console rows.
    4. Test empty and missing states. Confirm that dashboards, alerts, and API pipelines behave correctly when FAQ-specific data is unavailable, not merely when its value is zero.
    5. Update stakeholder language. Replace promises to “earn FAQ rich results” with goals you can still observe, such as answering a query clearly, improving organic engagement, or reducing duplicated support content.

    Do not merge the date of Google’s presentation change with the date you remove code. Record both. Otherwise, a later analyst may blame a traffic movement on your deployment when the search feature had already disappeared, or attribute a template change to Google when it happened weeks later.

    Measure the traffic effect without inventing causation

    An analyst compares two separate streams of abstract signals using transparent dividers and balanced measuring instruments.

    FAQ rich results could occupy extra search-result space and influence click behavior, so affected pages deserve closer monitoring. A sitewide organic trend will not isolate that effect. Most pages never had the same FAQ visibility, query mix, ranking stability, or search-result competition.

    Build a page cohort from URLs that carried FAQ structured data and, where your historical records allow it, distinguish pages that actually received FAQ search appearances from pages that were merely eligible. Eligibility is not the same as an impression.

    1. Choose a comparison group. Use pages with a similar purpose and query profile that did not depend on FAQ presentation. The comparison will not create a perfect experiment, but it is more informative than comparing the whole site with itself.
    2. Track impressions, clicks, click-through rate, and average position together. A click-through-rate decline while impressions and position remain broadly stable is more consistent with a presentation change than a simultaneous loss of rankings and visibility.
    3. Inspect page-query pairs. Brand queries, broad informational searches, and long-tail questions can behave differently. Page totals can hide one group falling while another grows.
    4. Annotate both the Google milestones and your deployments. Include the retirement, reporting changes, content edits, template releases, migrations, and other material SEO work in the same analysis window.
    5. Follow the business outcome. Check whether affected pages still generate the actions that matter, such as product discovery, qualified visits, support deflection, leads, or sales. A presentation loss matters differently when click volume changes but useful outcomes do not.

    A before-and-after chart cannot prove that FAQ retirement caused a change. Rankings, seasonality, query demand, competing search features, and your own releases can move at the same time. Use the cohort analysis to identify where investigation is warranted, not to manufacture certainty the data cannot support.

    Keep the answers, but remove the obsolete SEO promise

    A useful FAQ section can still solve a reader’s next problem. It can clarify eligibility, compatibility, pricing logic, implementation constraints, returns, terminology, or a decision that would otherwise send the visitor back to search. None of that value depends on an expandable Google result.

    Review FAQ content as content, not as a schema container. Keep a question when it represents a real decision or recurring point of confusion. Rewrite it when the answer is vague, promotional, outdated, or dependent on information that appears elsewhere. Remove it when it exists only to repeat a keyword or restate the main body.

    • Use the wording a reader would recognize, but do not create several near-identical questions for minor keyword variations.
    • Answer the question in the opening sentence, then add conditions, exceptions, evidence, or a next step.
    • Name the product version, location, customer type, plan, or other qualifier whenever the answer changes across those boundaries.
    • Link to a deeper page when the reader needs a procedure or full explanation; do not compress a complex guide into an evasive two-line answer.
    • Assign an owner to answers that depend on policies, features, prices, or other changeable facts.
    • Keep marked-up data synchronized with visible content if you decide to retain the JSON-LD.

    The same discipline helps answer-engine and generative-search work, but do not replace one unsupported promise with another. FAQPage markup is not a guaranteed route into an AI answer, citation, or model response. Clear visible content, precise scope, consistent entity information, and accessible supporting detail are useful publishing practices; none guarantees selection by a search engine or model.

    Be especially careful with thin FAQ pages created solely to win the retired enhancement. If a page contains unique information or attracts useful demand, improve it. If it duplicates a stronger resource, consider consolidation only after checking its traffic, links, internal references, and destination. Do not delete or redirect a URL merely because its structured-data feature disappeared.

    Turn the retirement into a controlled cleanup

    Start with a single inventory that joins code, content, reporting, and ownership. Give every FAQ implementation one status: retain for a verified consumer, remove as Google-only legacy code, or investigate because the dependency is unknown.

    Resolve the unknown group first. It carries the greatest operational risk: deleting it may break an unrecorded integration, while leaving it indefinitely creates unmanaged data. Once every row has an owner and reason, update the template, reporting pipeline, documentation, and stakeholder expectations as one change set.

    Your next concrete action is simple: search a rendered sample of each major page template for FAQPage, record what generates it, and write down who still consumes it. If no one can answer the last question, you have found the first dependency to investigate.

    References

  • Google Ads Optimization Starts With Conversion Measurement

    Google Ads Optimization Starts With Conversion Measurement

    If campaign performance looks unstable, resist the next bid or budget change. Google Ads cannot optimize around the outcome you intended; it can only react to the conversion signal it receives. A missing purchase, duplicated form submission, or low-intent contact counted as a lead turns CPA and ROAS into confident-looking answers to the wrong question.

    Your first job is to make the signal trustworthy. Then you can use cross-channel reporting, search-term evidence, and negative keywords to improve performance without confusing a tracking change for a marketing win.

    Define the signal before you optimize the spend

    A conversion name such as “form submit” is not a measurement specification. It does not tell you whether the form was accepted, whether a duplicate was removed, whether the person was qualified, or whether the event represents a business outcome at all.

    For every action currently treated as a conversion, write down:

    • Business outcome: What changed for the business: a completed order, an accepted lead, a booked appointment, or another explicit result?
    • Completion condition: What observable event proves that outcome occurred? A button click alone rarely proves that the receiving system accepted the transaction.
    • Funnel stage: Is this a final outcome, a qualified intermediate action, or a diagnostic engagement signal?
    • Identity and deduplication: Which order, lead, or internal event ID prevents one outcome from being recorded twice?
    • Value: Does the action carry revenue, an approved proxy value, or no monetary value? Document the reason rather than silently assigning one.
    • System of record: Which backend, CRM, booking system, or commerce platform can confirm that the outcome was real?
    • Owner: Who investigates when the platform count and the operational record diverge?

    The correct measurement boundary depends on the surface. Where your account uses calls, lead forms, or message assets, the ad interaction may move contact intent closer to Google Ads. That does not make every tap, open, or connection a qualified lead. Decide what must happen after the interaction before it earns that label.

    Conversion pathUseful completion boundaryReconciliation evidence
    Website purchaseThe order is accepted, not merely startedOrder ID, status, value, and currency in the commerce system
    Website or lead-form submissionThe receiving system accepts a valid submissionLead ID and the later qualification or rejection status
    Call or messageThe contact meets your documented business rulePlatform reference or timestamp matched to a disposition in the operating system
    Micro-conversionThe engagement action actually occursAnalytics event used for diagnosis, not automatically treated as revenue

    Build a conversion hierarchy, not a bag of events

    Put final business outcomes at the top, qualified intermediate outcomes below them, and diagnostic events at the bottom. Use the highest-quality signal that can support the decision you are making. More event volume is not automatically better input. Promoting a page view or unverified click to “conversion” status may make an automated system look busier while moving it farther from revenue.

    If a campaign does not yet produce enough final outcomes for stable decisions, preserve the distinction. Report the lower-funnel result and the supporting signal separately. A volume constraint is useful information; relabeling weak intent hides it.

    Audit the conversion chain before interpreting CPA

    An isometric chain connects an ad, click, landing page, customer action, tracking sensor, and verified conversion while a magnifying glass reveals a broken link and duplicate signal.

    A conversion can fail at several points between the customer’s action and the report. Checking only whether a tag fired leaves most of that chain untested. Audit the complete path in this order:

    1. Outcome: Complete the intended action and confirm that the business system accepted it.
    2. Trigger: Verify that the conversion condition occurred once, at the right moment, with the expected identifier and value.
    3. Transport: Check that the event moved through the applicable browser, tag, server, API, consent, and integration layers.
    4. Platform record: Confirm that the event appeared under the intended conversion action rather than a similarly named action.
    5. Reconciliation: Match the platform record to the order, lead, appointment, call, or message disposition in the system of record.

    Use a controlled test record and document its expected result before running it. For purchases or other actions that can create a charge, use an approved test or staging method. Do not place an unrecoverable live transaction merely to validate reporting.

    Your test matrix should cover the paths where implementation defects tend to hide:

    • Desktop and mobile completion paths.
    • Direct landing-page visits and the redirects used by campaign traffic.
    • Cross-domain steps, if the journey moves between domains.
    • Form success, validation failure, and repeated clicking.
    • Confirmation-page reloads and browser back-button behavior.
    • Each enabled call, form, or messaging route.
    • Accepted, rejected, cancelled, refunded, duplicate, and spam outcomes where those states affect business value.

    Record the test ID, timestamp and time zone, device or browser, conversion action, expected value, observed platform result, and backend ID. Use internal identifiers rather than personal data. This creates evidence that another person can inspect without repeating the transaction.

    Classify mismatches before fixing them. A missing conversion points toward an absent trigger, failed transport, incorrect mapping, consent behavior, or unavailable integration. A duplicate points toward repeated triggers or weak deduplication. A conversion recorded under the wrong action points toward naming or configuration drift. These defects require different fixes; a general “tracking issue” label is too vague to be actionable.

    Do not demand identical totals from systems that use different dates, time zones, attribution rules, inclusion rules, or value conventions. Align those definitions first. Then investigate the unexplained remainder. When you repair a material defect, preserve the old data, annotate the repair time, and define the first clean reporting window. Rewriting history without a documented method can make the next optimization decision less reliable than the last one.

    Use cross-channel reporting as a control view, not absolute truth

    Once your conversion definitions are stable, a unified reporting layer can reduce the time spent assembling channel exports. Google’s Analytics Data API can provide paid and organic conversion data in one programmatic view that mirrors the Conversion performance report in the Analytics interface.

    The capability is in alpha, and access is not universal. Verify eligibility for the exact Analytics property before making it a production dependency. If the property does not expose the feature, keep the same internal reporting contract and populate it from the available interface reports until API access arrives. That lets you improve the operating model without pretending an unavailable feature exists.

    Your reporting contract should make every row interpretable. At minimum, document the property or account, conversion-name mapping, channel classification, date and time-zone logic, attribution convention, value and currency treatment, extraction time, and the period in which late revisions are accepted. These are not decorative metadata. They explain why two legitimate reports can disagree.

    A unified view centralizes attributed conversion reporting; it does not prove that a channel caused the outcome. Attribution can move credit between touchpoints without changing the number of real orders or qualified leads. Read the data in layers:

    1. Confirm total business outcomes and value in the operational system.
    2. Confirm that Analytics received the intended conversion actions.
    3. Inspect how paid platforms recorded and attributed those actions.
    4. Use the cross-channel view to understand where credit was assigned.

    If channel credit changes while backend outcomes stay flat, investigate attribution, classification, or tracking before declaring growth. If backend outcomes increase while reported conversions do not, investigate measurement loss. If both move in the same direction and the definitions remain stable, you have a stronger basis for changing spend.

    Automation is most useful for surfacing exceptions: a conversion action disappears, a value field becomes empty, one channel changes abruptly, or the cross-channel total stops reconciling within your normal operating pattern. Let the pipeline find the anomaly. Keep the decision about bids, budgets, and exclusions attached to business context.

    Turn trusted conversion data into negative-keyword decisions

    An analyst adjusts filter gates that block irrelevant abstract search-query tokens while relevant tokens continue toward a conversion beacon and budget coins.

    Negative keywords become safer after measurement is credible. Before that point, a relevant query can appear unproductive simply because its outcome was missed or classified under the wrong action. Excluding it would reduce waste in the report while potentially blocking valuable demand in the market.

    Review each candidate search term by cause:

    • Clearly misaligned: The words indicate the wrong product, service, audience, location, or intent.
    • Relevant but early: The term belongs to the buyer journey but is being judged against an outcome it is unlikely to produce immediately.
    • Relevant and expensive: The term has consumed enough budget without producing the defined outcome.
    • Uncertain: The sample is sparse, the buying cycle is incomplete, or measurement quality is in doubt.

    Choose the negative match type according to the scope of the exclusion. Use negative exact match for a specific long-tail query, negative phrase match for a related query family, and negative broad match for words that identify a misaligned audience. Start with the narrowest scope that solves the problem. A broad exclusion can block adjacent demand, so export the current negatives and record the intended scope before making bulk changes.

    Your threshold should reflect the account’s job. A growth-focused campaign needs room to discover demand and can tolerate more exploration. One practical trigger is to review a query after it has spent more than three times the target CPA over 90 days without a conversion. Treat that as a decision trigger, not an automatic deletion rule: confirm tracking health, intent, and buying-cycle timing first.

    An efficiency-focused account can use a stricter, budget-based trigger tied to the amount you are willing to spend on one query without an outcome. A 30-day window can be too aggressive outside a short promotion. A 90-day window is a balanced starting point, while a 365-day view can be more appropriate for a long buying cycle. Keep the threshold and window together in the decision log; either one without the other is ambiguous.

    Competitor queries also need an explicit policy. Do not exclude them merely because they are competitor terms, and do not preserve them merely because automation might find a conversion. Decide whether that intent fits the offer, economics, and brand strategy. Then judge the terms under the same documented evidence rules as other traffic.

    Use this approval sequence for every material negative:

    1. Confirm that the relevant conversion actions were healthy during the evidence window.
    2. Classify the query’s intent and its alignment with the ad and landing page.
    3. Check spend, outcomes, target CPA, and buying-cycle maturity.
    4. Select exact, phrase, or broad scope deliberately.
    5. Record the query, scope, date, evidence window, reason, owner, and rollback condition.
    6. Review affected traffic after the change for both reduced waste and unintended demand loss.

    The search-terms report is not a weekly deletion queue. Review it regularly, but add negatives when the evidence and account objective support the decision. Calendar-driven exclusions can teach the campaign a narrower version of your market than you intended.

    Run an optimization cadence that protects the signal

    Separate measurement maintenance from performance optimization. If you change the conversion definition, negative-keyword scope, bid strategy, and budget in one cycle, the next report cannot tell you which change mattered.

    Decision layerQuestion to answerAction
    Measurement healthDid a defined action stop, duplicate, move, or change value?Repair and annotate the signal before interpreting performance.
    Business qualityDo orders, lead dispositions, and other backend outcomes support the platform signal?Correct qualification, deduplication, or value mapping.
    Demand qualityAre search terms aligned with the offer, ad, and landing page?Approve narrow, evidence-based exclusions or improve the message and destination.
    EconomicsDoes clean data support the target CPA, value, and budget decision?Change bids or budgets only after the earlier layers pass.

    Rerun a conversion smoke test after a site release, tag change, CRM integration change, form replacement, checkout update, or contact-route change. On each reporting refresh, check for missing actions, unexpected duplicates, empty values, naming drift, and abrupt channel changes. Review search terms and lead quality at a regular operating interval, but make exclusions only when the chosen evidence window has matured.

    Keep one change log for both measurement and media decisions. Each entry should contain the timestamp, owner, hypothesis, affected campaigns or actions, evidence window, expected metric movement, and rollback condition. The log gives you a clean way to distinguish a genuine performance shift from a new definition, delayed data, or implementation failure.

    Key takeaways

    • Define conversions as business outcomes with explicit completion, deduplication, value, and reconciliation rules.
    • Test the full path from customer action to backend record; a fired tag is only one link in the chain.
    • Use unified paid and organic conversion reporting as a control view, while preserving attribution and availability caveats.
    • Choose negative-keyword scope, aggression, and evidence windows according to the campaign’s growth or efficiency objective.
    • Repair measurement and validate business quality before changing exclusions, bids, or budgets.

    Before your next budget change, select one important conversion action and run it through the complete audit. Reconcile it to the business record, document the clean-data start time, and only then review the search terms consuming the most budget. That sequence gives the next optimization decision a signal worth trusting.

    References

  • Google Ads API v20 Sunset: Upgrade Before June 10, 2026

    Google Ads API v20 Sunset: Upgrade Before June 10, 2026

    If any reporting, bidding, or campaign-management workflow still calls Google Ads API v20, June 10, 2026 is a hard failure boundary. Any request sent to v20 after the cutoff will fail, so a healthy dashboard or successful scheduled job on June 9 does not prove that you are ready for June 10.

    Your job is to find every remaining v20 request, move each affected workflow to a newer version, and produce evidence that the replacement works in production. That requires more than changing a version string. It requires an inventory, representative testing, a staged cutover, and monitoring that can distinguish fresh data from stale output.

    Know exactly what will fail at the cutoff

    The sunset applies at the API request boundary. It does not, by itself, mean that a Google Ads account or campaign disappears. It means a workflow loses access whenever the request it needs still targets v20.

    The business consequence depends on what that request does:

    • Reporting and data pipelines can stop collecting new data, leaving dashboards, attribution processes, or client reports with gaps.
    • Campaign automation can stop reading or applying intended changes, including workflows connected to bidding and campaign management.
    • Internal tools can fail when a user opens a screen, requests a report, or submits a change that depends on v20.
    • Third-party platforms can break even when your own code is current, because the version choice may live inside the vendor’s backend.

    A failed reporting job is not always visually obvious. A dashboard may continue showing its last successful dataset unless it also displays data freshness. A failed write does not necessarily leave an account in a safe or paused state; it may simply leave the previous campaign settings in place. Review each workflow’s retry, alerting, and failure behavior so that an API error cannot masquerade as a successful run.

    Translate every technical dependency into an operational consequence. Instead of recording only “reporting service uses v20,” document which report stops, who consumes it, how quickly stale data becomes harmful, and who owns recovery. That mapping tells you which migrations must move first.

    Key takeaways

    • Google Ads API v20 requests will fail after June 10, 2026; the deadline is not a warning-only deprecation milestone.
    • Inventory observed API traffic and stored configuration. Either view alone can miss a dependency.
    • Test complete workflows on a newer API version, not merely authentication or one sample request.
    • Run read-only comparisons in parallel where useful, but do not duplicate campaign-changing requests across versions.
    • Cut over early enough to observe a full operating cycle and restore v20 temporarily if the new implementation fails before the sunset.

    Build an inventory that includes hidden and dormant calls

    An isometric enterprise system shows visible services and faint hidden connections to legacy jobs, dormant components, and recovery infrastructure.

    Start with actual traffic, then reconcile it against code, configuration, schedules, and vendor dependencies. An application list assembled from memory will miss old scripts, shared services, and jobs owned by teams that no longer think of themselves as Google Ads API users.

    Recent API activity in Google Cloud Console can help identify the methods and versions used by your projects. Review every relevant project rather than only the one associated with your main campaign application.

    1. List the environments and projects. Include production, staging, reporting infrastructure, serverless jobs, shared integration projects, and systems managed by another team.
    2. Inspect recent activity. Record which projects still produce v20 traffic and which methods they call.
    3. Cover the complete job cadence. Your observation period must include infrequent workloads such as weekly, monthly, or manually triggered jobs. Zero traffic during an idle period proves nothing.
    4. Search stored configuration. Look for literal v20 references, version selectors, client-library dependencies, deployment variables, request builders, infrastructure definitions, and copied scripts.
    5. Attach an owner to every dependency. An unidentified service is not ready merely because it appears inactive. Someone must decide whether it should be migrated, retired, or verified as unused.

    Traffic inspection and configuration inspection answer different questions. Traffic tells you what ran. Configuration tells you what may run later. Keep both in the migration register.

    Dependency surfaceWhat to locateUseful readiness evidence
    Custom applicationsVersion settings, client dependencies, request construction, and deployment configurationRepresentative requests succeed on the target version and production activity no longer shows v20
    Scheduled data pipelinesJob definitions, orchestration schedules, exports, and downstream consumersA complete scheduled run finishes with fresh, complete output
    Campaign automationRead and write paths, retry behavior, approval controls, and alertsA controlled test produces the intended state once and failures reach an owner
    Third-party platformsVendor-owned connectors, reporting modules, and automation featuresThe vendor confirms the production version and you verify your own affected workflows
    Dormant or manual toolsOccasional scripts, archived repositories, runbooks, and analyst utilitiesThe tool is migrated, formally retired, or blocked from future v20 use

    Ask vendors for feature-level confirmation

    A generic claim that a platform “supports the Google Ads API” is not enough. One module may be current while a less visible exporter or automation feature still uses v20. Ask the provider:

    • Which API version does each feature used by your account call in production?
    • Has every v20 workload been migrated, or only the primary integration?
    • When will the production cutover occur?
    • How can you verify that your tenant is using the newer version?
    • What happens to queued jobs, retries, and cached reports if a request fails?

    Keep the response with your migration record, then test the feature yourself. Vendor confirmation transfers information, not operational responsibility.

    Migrate the workflow, not just the version label

    Choose a newer supported API version that works with your client stack and the capabilities your workflows need. Use Google’s release notes and upgrade guides to identify required changes. Do not assume that editing a version constant is sufficient: client dependencies, available fields, request structures, generated types, and response handling may also need attention.

    A practical migration sequence looks like this:

    1. Capture a baseline. Record representative inputs, expected outputs, normal completion signals, and current error behavior for each workflow. Use stable comparisons where possible because live campaign data can change during testing.
    2. Update the client and application together. Change the supported client dependency, version configuration, request construction, and any code affected by the official upgrade guidance. Check deployment manifests and runtime variables as well as the repository.
    3. Test authentication and simple reads. Confirm that the application can connect using the credentials and account scope it will use in production. Connectivity is only the first gate, not the completion criterion.
    4. Exercise representative read workflows. Run the same account scope, date range, filters, pagination path, and downstream transformation used by the real job. Compare required fields, completeness, row-level invariants, and freshness rather than relying on a single successful response.
    5. Test writes under controlled conditions. Do not change live spend merely to prove connectivity. Use an approved test environment, test account, or non-spend-altering path where your setup supports one. Verify that the intended resource changes once and that retries cannot duplicate an action.
    6. Validate downstream consumers. A successful API response does not prove that a dashboard, warehouse load, bid process, notification, or internal interface can consume the new output correctly.
    7. Release in stages. Move a bounded set of workloads first, watch their results, and expand only after the expected operating signals remain healthy.

    Parallel validation is useful for read-only workloads. You can run equivalent reporting requests on v20 and the target version, then compare the resulting datasets while v20 remains available. Avoid sending campaign-changing requests through both versions: duplicate writes can produce real account changes and financial consequences. For write paths, use a controlled test followed by a staged production rollout.

    Preserve a temporary rollback path during the early cutover, but recognize its expiration date. Before June 10, a rollback to v20 may buy time to fix a problem. After the sunset, v20 is no longer a viable recovery plan because its requests will fail. Your post-cutoff contingency must keep the newer version in place, disable the affected workflow safely if necessary, and route the failure to a named owner.

    Define readiness with production evidence

    Engineers monitor abstract requests moving through a replacement processing lane with checkpoints, a separated legacy lane, and a rollback route.

    “The code was upgraded” is a progress update. It is not a definition of done. Close the migration only when you have evidence across configuration, runtime traffic, workflow output, and ownership.

    • Every known application, script, scheduled job, and integration has an owner and an explicit migrate-or-retire decision.
    • Each active workflow completes successfully on the selected newer API version using representative accounts and request types.
    • Production configuration and deployed client dependencies point to the intended version.
    • No v20 activity appears across the relevant Cloud projects during a period that covers the full operating cadence of the workflows.
    • Reporting outputs expose freshness and completeness, so stale data cannot look current.
    • Campaign-changing automation has controlled retry behavior and a human receives actionable failure alerts.
    • Third-party features have been confirmed by the provider and verified through your own account-level test.
    • The rollback plan works before the cutoff, and the post-cutoff contingency does not depend on v20.
    • Campaign owners, analysts, engineers, and support staff know when the cutover occurred and where failures will be reported.

    Be careful with negative evidence. Seeing no v20 requests is meaningful only if every relevant workload had an opportunity to run. A monthly exporter that has not reached its schedule can remain invisible until after the deadline. Pair runtime inspection with the dependency register, then record the last successful target-version execution for every retained workflow.

    Set your internal cutover early enough to run a complete operating cycle while v20 can still serve as a temporary fallback. Name the owner, start the inventory, and schedule the target-version validation now. The date that matters internally should be the day you can prove v20 is gone, not June 10 itself.

    References

  • How to Give AI Agents Live Marketing Data Without Losing Control

    How to Give AI Agents Live Marketing Data Without Losing Control

    If your AI workflow begins with exporting campaign data, pasting it into a chat, and explaining the same business context again, you do not have an agent. You have a capable analyst waiting for a manual data delivery.

    The fix is not a longer prompt. You need a controlled path from your marketing systems to the agent, with enough current context to support a decision and enough guardrails to stop a bad decision from becoming an expensive action.

    Live means decision-ready, not merely connected

    Live marketing data does not have to mean that every event reaches the agent within milliseconds. It means the information is refreshed before the decision it supports becomes stale. A pacing decision may need current spend and budget data. A lead-quality decision may need the latest CRM disposition. A promotion may need inventory availability before the agent recommends sending more traffic to it.

    That distinction matters because access alone is not enough. An agent can be connected to Google Ads and still make a poor decision if it cannot see what happened after a conversion. It can be connected to a CRM and still misread performance if campaign identifiers do not match. It can see inventory data and still act on an item whose availability record is old.

    A familiar failure starts with a keyword that appears healthy inside the ad platform. It has useful volume and an acceptable cost per acquisition. The CRM, however, shows that the resulting leads are being disqualified. Without that downstream outcome, the agent will keep treating the keyword as successful and may continue spending until a person reconciles the systems. Repeated exports and delayed cross-checks preserve this blind spot; they do not create automation.

    SystemWhat the agent can learnDecision it can improve
    Ad platformSpend, conversions, volume, and campaign performanceWhere traffic appears efficient
    CRMQualification, sales progression, and lead dispositionWhether reported conversions have business value
    Inventory systemAvailability and stock constraintsWhether demand should be increased for a product

    Before integrating anything, write down the decision the agent will support and how fresh each input must be for that decision. If you cannot define when the data becomes too old to trust, the word live is doing no useful work.

    Build a decision context, not a giant data dump

    Raw marketing inputs pass through filtering and verification stages before a compact bundle of relevant context reaches an AI reasoning system.

    An agent rarely needs unrestricted access to every field in every marketing system. It needs a compact, reliable view of the variables that determine one decision. Sending more data without defining its meaning can make the workflow harder to inspect and easier to misconfigure.

    Build that view from the decision backward:

    1. Name the decision. Be precise: recommend a bid change, flag a lead-quality problem, pause promotion of unavailable inventory, or produce a daily exception list.
    2. List the evidence required. Separate platform metrics from business outcomes. A conversion count is not the same thing as a qualified lead, a sale, or an item that can still be fulfilled.
    3. Choose the join keys. Decide how campaign, ad group, keyword, click, lead, customer, product, and order records connect. If systems use different identifiers, define the mapping before the agent sees the data.
    4. Normalize time and meaning. Record the reporting window, timezone, attribution context, currency, and status definitions relevant to the decision. The agent should not have to infer whether two similarly named fields measure the same event.
    5. Attach provenance and freshness. Return the originating system and update time with the value. The agent needs to distinguish a current zero from a missing or stale record.
    6. Define conflict behavior. Decide which system controls when records disagree. If the CRM says a lead is disqualified while the ad platform counts a conversion, the workflow should preserve both facts and use the business outcome for the decision you defined.

    This turns integration into a data contract. Each input has a source, definition, identity, update time, and permitted use. That contract also gives your team something concrete to test when the agent behaves unexpectedly.

    Use MCP as the connection layer, not the policy

    The Model Context Protocol, or MCP, provides a standardized way for an AI client to connect to external tools and data sources. In a marketing workflow, an MCP implementation can expose ad performance, CRM outcomes, and inventory information through a consistent interface instead of forcing you to create a separate conversational integration for every system. This can remove much of the manual handoff that keeps an agent from working with current data.

    MCP does not decide what a qualified lead means, repair broken campaign identifiers, choose a safe budget policy, or determine whether the agent should be allowed to change a bid. It is the connection layer. Your data contract and control layer still carry the business logic.

    Expose narrow tools that correspond to real tasks. A useful initial tool set might let the agent read campaign performance, retrieve CRM dispositions, check product availability, and generate a recommendation. A later tool could execute a preapproved campaign rule. A generic tool with unrestricted account access is harder to audit and creates a much larger failure surface.

    The tool description should also tell the agent what the result does not prove. For example, ad-platform conversions describe recorded conversion events; they do not by themselves establish lead quality. Inventory availability can constrain promotion; it does not establish campaign profitability. Clear boundaries reduce the chance that the model treats one system’s partial view as the complete business outcome.

    Put enforceable guardrails between reasoning and action

    Proposed AI actions pass through layered permission, validation, spending-limit, audit, and human-approval controls before reaching marketing systems.

    Read access and write access are different risk decisions. A mistaken read may produce a bad recommendation. A mistaken write can change bids, pause campaigns, redirect spend, or promote stock that is not available. Do not grant unrestricted write access merely because the agent has produced sensible analysis in a chat window.

    A prompt is not a permission system. Instructions such as be careful or do not overspend can influence behavior, but they do not enforce account boundaries. Operational constraints need to sit around the agent, where the integration can reject an action that falls outside policy.

    Define every write-capable action with these controls:

    • Permission: Specify whether the agent can read, recommend, or execute. Default new workflows to read-only.
    • Scope: Restrict access to the relevant accounts, campaigns, markets, products, and action types.
    • Preconditions: Require the necessary data sources to be available and fresh before an action can run.
    • Policy limits: Encode the budget, bid, status, and inventory rules the action must satisfy. The surrounding system, not the model’s prose, should enforce them.
    • Approval: Route high-impact or ambiguous changes to a person. The agent should return the proposed action, supporting evidence, and reason for escalation.
    • Auditability: Record the inputs, tool calls, decision, approver when applicable, and resulting change.
    • Recovery: Preserve enough prior state to reverse a change when the platform and action type allow it.

    Roll out those permissions in stages. Begin with read-only analysis and verify that the agent retrieves the right records. Next, let it recommend actions while a person compares those recommendations with actual decisions. Then allow only bounded, reversible writes with enforced preconditions. Expand the scope after the data and control layers have proved reliable, not merely after the model has written persuasive explanations.

    Test the data path before judging the agent

    When an agent produces a questionable answer, teams often adjust the prompt first. That is useful only if the required evidence reached the model correctly. A polished prompt cannot recover a missing CRM record, an incorrect join, or inventory data that failed to refresh.

    Test the pipeline with cases that reveal those failures:

    • Freshness: Can you see when each source last updated, and does the workflow stop when a required input is stale?
    • Coverage: Are all in-scope campaigns, leads, products, and accounts represented, or does the connector silently omit some records?
    • Identity: Can a conversion be connected to the correct lead or order and then traced back to the responsible campaign entity?
    • Semantics: Do conversion, qualified lead, sale, availability, and revenue have explicit definitions in the systems that provide them?
    • Missing data: Does the agent distinguish no activity from unavailable data? Treating both as zero can trigger the wrong action.
    • Conflicts: What happens when two systems disagree? The workflow should surface the disagreement rather than silently choosing whichever value arrived first.
    • Failure mode: If the CRM or inventory service is unavailable, does the agent stop, fall back to recommendation-only mode, or request review? Continuing with partial context should be an explicit policy choice.

    Evaluate the system against the decision it was built to improve. For a lead-quality workflow, inspect whether it identifies campaigns producing disqualified leads. For an inventory-aware workflow, inspect whether it avoids recommending more demand for unavailable products. Fluent explanations are useful for review, but they are not evidence that the underlying joins and controls work.

    Key takeaways

    • Live data is data that arrives before the supported decision becomes stale; it is not simply data behind an API.
    • An agent needs business outcomes from systems such as the CRM and inventory platform, not only the conversion view inside an ad platform.
    • Start with one decision and build a defined data contract for its evidence, identifiers, timing, provenance, and conflict rules.
    • MCP can standardize how AI clients reach tools and data, but it does not replace data modeling, permissions, or business policy.
    • Keep new agents read-only until you have validated retrieval, joins, freshness, and failure behavior.
    • Enforce write limits outside the prompt, and log the evidence and action so a person can inspect what happened.

    Choose one recurring marketing decision that still depends on an export or spreadsheet reconciliation. Map the platform metric, downstream business outcome, join key, freshness requirement, and permitted action. That small, inspectable workflow is the right place to prove live data access before you give an agent broader reach.

    References

  • Modern Marketing Analytics and Reporting That Drives Action

    Modern Marketing Analytics and Reporting That Drives Action

    Your dashboard is green, the meeting starts soon, and you still cannot answer the question that matters: what changed, why did it change, and what should the team do next?

    That is a reporting-system problem, not a chart problem. Modern marketing analytics should connect business outcomes to channel activity, preserve the definitions behind every metric, expose uncertainty, and deliver the next decision without forcing someone to reconstruct the analysis during the meeting.

    Start with the decision, not the available data

    Most bloated reports begin with a harmless question: what data can we pull? Every available metric gets added, the dashboard becomes comprehensive, and the decision it was meant to support disappears.

    Reverse the sequence. Before choosing a connector, chart, or reporting platform, write a one-sentence measurement brief:

    This report helps [owner] decide [action] at [cadence] by comparing [outcome] with [baseline], using [drivers] to explain the result and [guardrails] to prevent a bad trade-off.

    A paid media lead might need to reallocate campaign budget each week. A content lead might need to decide which topics deserve an update, expansion, or new format. An SEO lead might need to distinguish a visibility problem from a conversion problem. These decisions require different evidence even when they draw from the same underlying data.

    Assign every metric a role. If a metric has no role, remove it from the primary report.

    Metric roleQuestion it answersMarketing exampleHow it should affect action
    OutcomeDid the work produce the intended business result?Qualified conversions, pipeline, revenue, retained customersDetermines whether the strategy is working
    DriverWhat directly influenced the outcome?Qualified traffic, landing-page conversion rate, lead acceptanceIdentifies where to intervene
    DiagnosticWhere did performance change?Campaign, query group, page type, audience, device, videoNarrows the investigation
    GuardrailWhat must not deteriorate while the team optimizes?Acquisition cost, lead quality, unsubscribe rate, brand demandPrevents a local gain from becoming a business loss

    This hierarchy corrects a common reporting mistake. Impressions, views, clicks, and engagement can be useful drivers or diagnostics, but they do not automatically become business outcomes because they are easy to retrieve. Likewise, a channel-level return figure is not trustworthy unless the report states what counts as a conversion, which costs are included, and how credit is assigned.

    Record five items beside every primary outcome: its definition, owner, data system, update cadence, and attribution rule. If attribution is involved, also state the model, lookback window, reporting timezone, currency treatment, and whether the metric uses event time or processing time. There is no universally correct attribution model. There is only a model that is explicit enough to interpret and consistent enough to compare.

    Set action rules before looking at the latest result. The rule does not need an invented universal threshold. It can be operational: investigate when an outcome moves outside its expected range, when a guardrail worsens, when the data is stale, or when two systems no longer reconcile. Precommitting to the rule reduces the temptation to invent a convenient explanation after seeing the chart.

    Standardize the data before you visualize it

    Different shapes of marketing data pass through a modular processing system and emerge as standardized units for visualization.

    A polished dashboard cannot repair inconsistent definitions underneath it. If paid media uses platform-reported conversions, analytics uses attributed sessions, sales uses accepted opportunities, and finance uses recognized revenue, placing the figures on one page does not make them comparable.

    Create a small data contract for each reporting dataset. It should specify:

    • Grain: what one row represents, such as one campaign-day, page-query-day, video-day, lead, opportunity, or order.
    • Keys: the fields that uniquely identify a row and connect it to other datasets.
    • Dimensions: the controlled names for channel, campaign, market, device, content type, audience, and funnel stage.
    • Metric definitions: the exact event or business state counted by each field.
    • Time rules: timezone, date field, reporting window, and treatment of late-arriving records.
    • Freshness: when the data should be available and how the report signals a delayed refresh.
    • Ownership: who approves definition changes and who responds when a pipeline fails.
    • Lineage: where the data originated and which transformations changed it.

    Grain is the detail most likely to prevent a silent reporting error. Joining campaign-day costs to lead-level conversions can multiply spend when several leads share the same campaign and date. Aggregate both datasets to a compatible grain before joining them, or model the relationship so the cost appears only once. After every join, compare row counts and totals with the inputs.

    Separate period reporting from cohort reporting. A period view answers what happened during a selected date range. A cohort view follows people, accounts, campaigns, or content acquired in a particular period through later outcomes. A recent acquisition cohort may look weak simply because its conversions have not had time to mature. Label incomplete cohorts instead of presenting them as final.

    Run a compact quality checklist before publishing any result:

    • Reconcile source totals using the same date range, timezone, filters, and conversion definition.
    • Test whether fields declared unique are actually unique.
    • Check for missing dates, unexpected nulls, duplicate records, and values outside possible ranges.
    • Compare current dimensions with the approved taxonomy so renamed campaigns or channels do not create false categories.
    • Display the latest successful refresh time in the report itself.
    • Mark provisional data and document whether upstream systems can restate earlier periods.
    • Preserve raw extracts or reproducible snapshots so a changed connector does not rewrite history without explanation.

    Do not hide a reconciliation gap with a calculated adjustment. If two systems answer different questions, label the difference. If they should match and do not, hold the affected conclusion until you know why. A visible limitation is manageable; an invisible one becomes a decision error.

    Give dashboards, code, APIs, and AI separate jobs

    A modern reporting stack does not require one tool to extract, clean, model, visualize, explain, and distribute everything. It works better when each layer has a narrow responsibility:

    1. Source layer: advertising platforms, analytics products, CRM records, commerce systems, search data, video analytics, and approved research inputs.
    2. Ingestion layer: connectors, APIs, exports, or controlled uploads that retrieve data without changing its business meaning.
    3. Raw layer: immutable or reproducible copies of the retrieved records.
    4. Transformation layer: code or managed queries that clean names, join datasets, apply definitions, and create tested calculations.
    5. Semantic layer: approved dimensions, metrics, relationships, and attribution labels shared across reports.
    6. Presentation layer: dashboards, tables, charts, written analysis, and exported snapshots designed for a specific audience.
    7. Delivery layer: scheduled distribution, access controls, alerts, meeting workflows, and an archive of what stakeholders received.

    Dashboards are effective presentation surfaces when stakeholders need filters, recurring monitoring, and a shared view without access to every backend system. A Looker Studio report can, for example, connect YouTube Analytics data, support customized views, and distribute scheduled PDF snapshots. That makes it useful for a channel owner who needs repeatable visibility rather than a custom analysis every morning.

    Keep the dashboard when its data volume is manageable, the transformations are simple, refreshes complete reliably, and an analyst can trace a wrong number back to its origin. Move complex logic upstream when the same calculated field is copied across pages, manual updates recur, refreshes become fragile, or debugging requires a long sequence of interface clicks. Broad datasets and accumulated business logic can make a dashboard slow to change, difficult to debug, and vulnerable to dataset limits.

    Code is a better home for repeatable extraction, normalization, backfills, joins, tests, and calculations that need review. It gives you files that can be compared, versioned, and rerun. That does not mean every marketing team needs to replace every dashboard. A practical architecture keeps a familiar dashboard at the front while moving fragile transformations into a controlled pipeline behind it.

    APIs are retrieval mechanisms, not guarantees of completeness. For every API connection, record the account or property queried, requested fields, filters, pagination behavior, expected refresh schedule, and the response received when data is unavailable. Keep credentials outside report code, grant only the access required, and plan for permission revocation. A successful request proves that data arrived; reconciliation proves that the right data arrived.

    AI coding assistants can reduce the effort required to scaffold connectors, transformations, tests, and report components. Natural-language specifications can help tools such as Claude Code and OpenAI Codex assemble multistep reporting workflows. Treat the generated work as a draft implementation. Review the query grain, inspect joins, run tests, protect secrets, and compare outputs with authoritative systems before a generated number reaches a stakeholder.

    Use AI differently in the analysis layer. Ask it to identify anomalies worth investigating, draft plain-language explanations from approved metrics, or translate a validated analysis for different audiences. Do not let it infer causation from a correlated chart or invent a reason for a movement that the data cannot explain. The final narrative should distinguish among a measured fact, an analyst interpretation, and a proposed test.

    Design separate views for decisions, operations, and diagnosis

    Three connected analytics workspaces show separate areas for executive decisions, operational monitoring, and detailed diagnosis.

    One dashboard should not try to answer every question for every person. An executive wants to know whether the business outcome changed and whether intervention is needed. A channel operator needs enough detail to choose the intervention. An analyst needs access to definitions, segments, and reconciliation evidence.

    Build three layers, even if they live in the same reporting product:

    • Decision view: the primary outcome, comparison period or baseline, guardrails, material changes, confidence limits, and the requested decision.
    • Operating view: the drivers a channel owner can change, organized by campaign, content group, market, audience, or other actionable unit.
    • Diagnostic view: deeper segments, data-quality checks, metric definitions, lineage, and enough detail to reproduce the conclusion.

    Put context next to the metric it qualifies. A global note at the bottom of a long report will not protect a chart at the top from misinterpretation. Each primary view should show its date range, comparison basis, filters, timezone, attribution label, refresh timestamp, and any material gap in coverage.

    Add a short narrative block to every decision view:

    • Result: what changed in the outcome.
    • Driver: which measured movement best explains the change.
    • Confidence: what is known, what remains uncertain, and whether the data is complete.
    • Action: the decision or test now recommended.
    • Ownership: who will act and when the result will be reviewed.

    Be strict about causal language. If a campaign change and a conversion change occurred together, say they coincided unless the measurement design supports a stronger claim. If an experiment or another credible identification method isolates the effect, explain that method. Precision in the wording is part of analytics quality.

    Annotations should capture business events that a chart cannot know: a campaign launch, budget change, tracking migration, site release, promotion, pricing change, consent update, or outage. Store the event date, owner, affected scope, and a brief description. An annotation is a lead for investigation, not automatic proof that the event caused the movement.

    Distribution needs the same discipline as analysis. A scheduled PDF is a fixed snapshot, so include its reporting window and data cutoff. Link it to the interactive view when recipients may need filters or diagnostics. Archive material snapshots used for recurring business decisions; otherwise a later refresh can leave the team debating a number that no longer appears on screen.

    Access is part of report design. Stakeholders should not need administrative access to every marketing platform simply to read an approved result. The reporting team, however, must document which account and permission power each connection. With YouTube Analytics, a report builder who does not own the channel may need Manager permission and the Channel ID entered through the connector’s advanced settings. Test delegated access with the actual reporting identity instead of assuming that a visible channel in YouTube Studio will automatically appear in the reporting connector.

    Migrate one recurring report and operate it like a product

    A wholesale reporting rebuild creates too many simultaneous unknowns. Start with one recurring workflow that consumes meaningful time, has a known audience, and regularly produces a decision. A pre-meeting channel report, weekly SEO performance brief, or campaign pacing view is a better migration candidate than an enterprise-wide measurement platform.

    1. Freeze the current output. Save the existing report, its filters, definitions, recipients, delivery timing, and a few representative reporting periods. This becomes your comparison set.
    2. Write the decision contract. Identify the decision, owner, cadence, outcome, drivers, guardrails, and action rules. Remove fields that do not support them.
    3. Inventory data and permissions. Record every account, property, channel, connector, export, credential owner, and approval dependency. Confirm access using the service identity that will run the production workflow.
    4. Build reproducible ingestion. Preserve raw data, log retrieval times, handle pagination and empty responses, and make reruns safe.
    5. Encode transformations once. Normalize taxonomies, define joins, centralize calculations, and add tests for uniqueness, completeness, freshness, and reconciliation.
    6. Rebuild the three reporting views. Keep the decision page concise, give operators actionable detail, and retain diagnostic evidence for analysts.
    7. Run old and new systems in parallel. Investigate differences using matched definitions, filters, and time rules. Do not retire the old workflow until material discrepancies are explained and the team has a rollback path.
    8. Document production ownership. Assign responsibility for data failures, definition changes, access reviews, report delivery, and stakeholder questions.

    The parallel run matters because two reports can display plausible but different numbers. A discrepancy may come from timezone boundaries, attribution logic, late-arriving conversions, deduplication, renamed dimensions, incomplete pagination, or a genuine bug. Matching the old number is not always the goal if the old logic was wrong, but every difference should have an explanation.

    Give the finished workflow a runbook. It should tell another qualified person how to trigger a refresh, locate logs, rerun a failed period, backfill data, rotate credentials, verify source totals, publish the output, and roll back a breaking change. Include the last known successful run and the owner of each upstream dependency.

    Measure the reporting system itself. Track whether scheduled runs complete, whether data meets its freshness expectation, whether reconciliation tests pass, whether recipients receive the right artifact, and whether decisions and owners are captured. The point is not to create a dashboard about dashboards. It is to notice reliability problems before they become meeting problems.

    Key takeaways

    • Define the decision, owner, cadence, outcome, drivers, guardrails, and action rule before selecting metrics.
    • Standardize grain, keys, definitions, time rules, freshness, ownership, and lineage before building charts.
    • Keep dashboards for accessible presentation; move repeatable extraction, complex transformations, tests, and backfills into code when interface logic becomes fragile.
    • Use AI to accelerate implementation and explanation, but validate grain, joins, permissions, calculations, and source reconciliation before publication.
    • Separate decision, operating, and diagnostic views so each audience gets enough detail without inheriting everyone else’s dashboard.
    • Migrate one recurring workflow, run it beside the existing report, explain every material discrepancy, and preserve a rollback path.

    Choose the recurring report that causes the most avoidable pre-meeting work. Write its decision contract, mark every metric as an outcome, driver, diagnostic, or guardrail, and remove anything that serves no decision. That small redesign will show you exactly where the next improvement belongs: the definition, the data pipeline, the analysis, or the delivery.

    References


  • Google Ads Security and Conversion Infrastructure Runbook

    Google Ads Security and Conversion Infrastructure Runbook

    Your Google Ads stack can fail in two opposite ways: access becomes too loose to trust, or security controls become so brittle that the people and automations responsible for measurement are locked out. Meanwhile, a conversion tag can deploy cleanly and still measure the wrong action.

    The practical goal is not merely to enable multi-factor authentication or create a Google Tag Manager tag. You need a traceable path from an authorized identity to a tested conversion event, with an owner and a recovery route at every handoff. This runbook shows you how to build that path without turning an access change or tagging shortcut into a campaign outage.

    Key takeaways

    • MFA enforcement matters most when someone creates a new OAuth 2.0 refresh token. An integration that works now can still fail during reconnection, onboarding, or credential replacement.
    • Service accounts remain the better fit for supported automated or offline workflows, but they still need explicit ownership, limited access, and a tested handoff process.
    • A pre-filled Google Tag Manager configuration can remove transcription work. It cannot decide whether you selected the right container, conversion action, trigger, or counting logic.
    • Never revoke a working credential or remove a working conversion tag until its replacement has passed a controlled test. Otherwise, your rollback path disappears at the moment you need it.
    • Security and measurement should share one release record: identity owner, authentication method, Ads account, conversion action, GTM container, test evidence, publisher, and rollback decision.

    Map authentication before MFA exposes a hidden dependency

    A cutaway security system shows human, automated, and recovery access routes converging on one gateway, with one route blocked and a backup route remaining open.

    Google’s announced rollout made MFA mandatory for new user-based Google Ads API authentication from April 21, with enforcement expanding over the following weeks. The important boundary is token creation: OAuth 2.0 refresh tokens that were already in use were not invalidated by the change, but fresh authentication requires the additional identity check.

    That boundary explains why an account can look healthy until a routine maintenance task causes a failure. A scheduled process may continue using its existing refresh token, while a new employee, replacement integration, revoked credential, or reconnection attempt reaches the MFA gate. Passing today’s automated run is therefore not proof that your recovery workflow is ready.

    Start with an authentication inventory. Do not begin by changing credentials. For every connection that can read from or act on a Google Ads account, record:

    • Workflow: the API job, reporting transfer, desktop tool, script, dashboard, or application that depends on access.
    • Authentication pattern: user-based OAuth or a service account.
    • Named owner: the person responsible for approving access, completing MFA, and handling recovery.
    • Operational owner: the person who can prove the workflow still runs correctly after an authentication change.
    • Credential event: what would force a new authorization flow, such as onboarding a user, replacing a connection, or rebuilding an integration.
    • Recovery route: who can restore access if the primary owner is unavailable, without sharing a personal password or MFA prompt.
    • Evidence: the last successful controlled authentication and the workflow result it enabled.

    For user authentication, make the MFA rehearsal realistic. Use the same consent and token-generation path that the production workflow expects. Confirm that the designated person can complete the second factor, which may be a phone prompt or an authenticator app. Then verify that the resulting credential reaches the intended account and supports the intended workflow. A successful Google sign-in alone is not enough.

    Choose user authentication or a service account deliberately

    Keep user-based OAuth when the workflow is genuinely tied to a person’s authorization and an interactive sign-in is acceptable. Use a service account for a supported automated or offline workload when the connection should survive staff changes and should not depend on a person responding to an MFA prompt. Google left service-account workflows outside the new MFA requirement and recommends them for automated or offline scenarios.

    Do not migrate to a service account merely to avoid MFA. A service account is a machine identity, not an exemption from governance. Confirm that the application supports it, grant only the access the workflow needs, document who owns that identity, and test what happens when its permissions or connection must be replaced.

    Expand the inventory beyond custom API code. The same security change reaches authentication used by Google Ads Editor, Scripts, BigQuery Data Transfer, and Data Studio. If those tools are owned by different teams, give one person responsibility for the complete dependency map. Otherwise, each team may believe another team owns the failing sign-in.

    Most importantly, do not revoke the working refresh token while you are only testing its replacement. Prove the new path first, record the result, and then retire the old credential through a reviewed change. Revoking first can stop reporting or automation without leaving you a quick way back.

    Use direct GTM setup to remove copying, not judgment

    Google Ads has tested a Set up in Google Tag Manager option inside the conversion setup flow. Where the option is available, you can select a GTM container and open a suggested, pre-filled tag configuration instead of manually carrying the conversion ID and label between products.

    Treat this as a safer handoff, not an automatic implementation. It reduces opportunities for transcription errors, but it does not know whether your chosen website action represents a qualified lead, a completed sale, an internal test, or an accidental page view. It also cannot resolve a poor container naming convention or decide whether an existing tag will overlap with the new one.

    The integration is described as a test, so do not make a launch deadline depend on the button appearing in your account. If it is absent, continue with the established manual setup and apply the same review process. Availability and implementation correctness are separate questions.

    1. Confirm the conversion definition. Write down the user action that should count, where it occurs, and what must not count. Do this before opening GTM.
    2. Match the account and container. Verify the Google Ads account, conversion action, website, GTM account, and container as one set. Similar client or environment names are not proof of a match.
    3. Inspect the pre-filled values. Check the conversion ID and label against the intended conversion action even when Google populated them. Automation should reduce copying, not eliminate review.
    4. Review the trigger separately. The tag configuration identifies where data should go; the trigger determines when it goes there. Confirm that the trigger represents the business event you defined in the first step.
    5. Check for an existing implementation. Search the container for tags and triggers that already send the same action. Publishing a second path may produce duplicate events or conflicting behavior.
    6. Test before publishing. Use GTM’s preview process and complete a controlled conversion path. Confirm that the tag fires on the intended action and remains silent on nearby actions that should not count.
    7. Publish a traceable version. Record the conversion action, reason for the change, reviewer, test performed, and rollback instruction in the version description or release record.
    8. Verify both ends. Confirm the expected firing behavior in GTM and then confirm that Google Ads recognizes the intended conversion setup. A passing browser-side test proves the trigger ran; it does not by itself prove that the account mapping is correct.

    Avoid deleting the old tag before the new configuration has been verified. At the same time, do not publish two equivalent live paths and hope to compare them later. Modify the existing implementation when that is the cleanest route, or make the old and new triggers mutually controlled during the release. Your rollback should restore a known configuration, not create a second unknown one.

    Operate access and tagging as one controlled release

    Two specialists approve access and inspect a digital event as it passes through secure testing, monitored release, and rollback stages.

    Authentication and conversion tracking are often assigned to different specialists, but they meet at the same operational boundary. The person publishing a tag needs reliable account access. The automation consuming conversion data needs a stable identity. The campaign owner needs confidence that the event still means what its name claims.

    Use one release record for both sides. In a larger team, assign an access owner, GTM implementer, independent reviewer, and business owner for the conversion definition. In a smaller team, one person may hold several roles, but the checkpoints should remain separate. Pause between configuring, reviewing, publishing, and validating so that familiarity does not replace evidence.

    1. Freeze unrelated changes. Keep other credential, container, and conversion-action edits out of the same release so a failure has a narrow set of possible causes.
    2. Capture the known-good state. Record which automation currently succeeds, which tag and trigger currently fire, and which conversion action they serve.
    3. Prove recovery access. Confirm that the named owner can complete a fresh user-authentication flow with MFA, or that the supported service-account workflow can be restored by its documented owner.
    4. Stage the measurement change. Build or review the pre-filled GTM configuration without publishing it. Confirm the account, action, ID, label, trigger, and duplication check.
    5. Run the controlled path. Exercise the actual conversion behavior and preserve enough evidence for another person to understand what was tested.
    6. Publish and validate. Confirm the container version, the live firing conditions, the Google Ads destination, and the next successful dependent automation run.
    7. Retire only what has been replaced. Revoke an old credential or remove an old tag only after the new path is proven and the rollback decision is documented.

    Use the failure layer to choose your first check

    When something breaks, identify whether the failure occurs at identity, authorization, container configuration, trigger logic, publishing, or destination mapping. Rolling back everything at once can hide the actual defect.

    SymptomLikely layerFirst check
    An existing API job runs, but a new connection cannot generate a refresh tokenUser authentication and MFARepeat the fresh consent flow with the named owner and confirm that the second factor can be completed.
    A connection succeeds for one person but cannot be recovered by the teamOwnership and recoveryCheck whether the workflow depends on one personal identity and whether a supported service-account pattern is more appropriate.
    Editor, Scripts, a transfer, or a dashboard fails during sign-inShared authentication policyIdentify the actual Google identity behind the tool instead of treating it as an isolated application error.
    The direct GTM option does not appearFeature availabilityUse the manual tag setup rather than delaying the release; the integration is being tested and may not be available in every flow.
    The tag does not fire during previewContainer or trigger logicConfirm the selected container, preview environment, trigger conditions, and exact user action.
    The tag fires, but it points to the wrong conversion actionDestination mappingCompare the conversion ID and label with the intended Google Ads action and account.
    More than one tag fires for a single intended actionDuplicate implementationSearch for older tags, overlapping triggers, and parallel containers before changing the conversion definition.
    The browser-side test passes, but the dependent automation failsAPI authorization or workflow logicTest the automation separately with its own identity and permissions; the GTM test does not validate API access.

    At your next planned change window, exercise one fresh authentication flow and trace one controlled conversion from the user action through GTM to the intended Google Ads action. If either path lacks a named owner, test evidence, or a safe rollback, fix that gap before you scale the campaign or add another integration. Your infrastructure is ready when another authorized person can understand it, test it, and recover it without guessing.

    References