Analytix9 Logo

Analytix9

Server-Side Tracking in 2026: The Complete Implementation Guide

Client-side tracking is dying. With iOS 14+ decimating pixel accuracy, Chrome finally deprecating third-party cookies, and ad blockers hiding 30-40% of your conversions, server-side tracking has moved from nice-to-have to mission-critical infrastructure. Here is the definitive implementation guide.

1. The Erosion of Browser-Based Measurement

If your growth strategy still relies exclusively on client-side pixel firing, you are operating with a significant blind spot. The digital advertising landscape is undergoing a tectonic shift, rendered obsolete the tracking methodologies that served the industry for a decade.

The following forces are driving the "Signal Decay" that necessitates a move to server-side infrastructure:

  • The ATT Glass Ceiling -- Apple's App Tracking Transparency (ATT) hasn't just limited tracking; it has systemically decimated the standard 28-day attribution window. For non-consented mobile Safari users, first-party JS cookies are now capped at 7 days. This creates an "attribution blackout" for any purchase cycle longer than a week.
  • The Cookie Sunset -- Chrome's phased deprecation of third-party cookies is the final nail in the coffin for cross-domain tracking via standard pixels. The "writing is on the wall" has become "the wall has been demolished."
  • The Ad Blocker Canyon -- Between 30% and 45% of high-intent traffic now operates behind sophisticated ad-blocking layers. These tools don't just hide ads; they intercept the tracking requests before they ever leave the user's browser, creating a massive vacuum in your performance data.
  • ITP/ETP Governance -- Safari's ITP and Firefox's ETP are increasingly aggressive. ITP 2.3's cap on script-writable storage means your "persistent" user IDs are often wiped within 24 hours if a link contains marketing parameters.
  • Regulatory Data Sovereignty -- GDPR and CCPA have shifted the burden of proof to the brand. Server-side tracking allows you to implement a "First-Party First" protocol, where you own the data stream and can audit exactly what is shared with third-party vendors.

The cumulative impact? A standard pixel setup in 2026 is likely missing 30-45% of your total conversion signal. This isn't just a reporting error; it's a structural failure that forces your bidding algorithms to optimize on a distorted, incomplete dataset, leading to inflated CPAs and misallocated budgets.

2. The Trusted Intermediary: Client vs. Server Architecture

To implement effectively, you must understand the Shift in Trust. We are moving from a "Client-Dependent" model to a "Server-Controlled" model.

Traditional Client-Side Tracking (The Telephone Game):

In this model, your website asks the user's browser to send a message to Facebook or Google. The browser acts as an unreliable messenger. It can be silenced by ad blockers, its memory (cookies) can be wiped by ITP, and it can fail to deliver the message entirely if the page is closed too quickly. You are effectively a passive observer hoping for browser cooperation.

Modern Server-Side Tracking (The Direct Wire):

The architecture shifts to a "Trusted Intermediary" model. The browser sends a single, first-party request to a container running on your own subdomain (e.g., signals.yourbrand.com). Your server then reconciles this data and forwards it directly to ad platform APIs. Because the server-to-server call happens outside the browser's jurisdiction, it cannot be blocked. Because the cookie is set by your server (HTTP-only), it bypasses JavaScript restrictions. You transition from a passive observer to the owner of your own data pipeline.

"Within 72 hours of deploying our Signal Recovery architecture, we recovered 29% of 'lost' conversions from iOS users that were previously invisible to our Meta CAPI."

This is about more than just accuracy; it's about Data Enrichment. On the server, you can merge browser signals with backend data—CRM lead scores, LTV historicals, or SKU-level margins—before the platform sees the event. This allows you to train ad algorithms to hunt for "High-LTV" buyers rather than just "any" conversion.

3. GTM Server-Side: The Implementation Path

Google Tag Manager Server-Side (GTM SS) has emerged as the industry-standard implementation path. It is the most flexible, best-documented, and most widely supported option. Here is how to set it up step by step.

Step 1: Provision Your Server Container

You need a server environment to host the GTM server container. There are three main options:

  • Google Cloud Run (recommended for most teams) -- Auto-provisioned via GTM. When you create a server container in GTM, it offers to set up Cloud Run automatically. This gives you a scalable, managed container with minimal DevOps overhead. Cost: $50-200/month depending on traffic volume.
  • Third-party managed hosting (Stape.io, Taggstar, Addingwell) -- These services handle all the infrastructure for you. Stape is the most popular, offering GTM SS hosting starting at $20/month. Best for teams without DevOps resources.
  • Self-hosted on AWS/Azure/custom infrastructure -- Maximum control, but requires container orchestration expertise. You will run the GTM SS Docker image on ECS, EKS, or equivalent. Cost: $200+/month plus engineering time.

In your GTM account, navigate to Admin, then Container Settings, then create a new Server Container. If you choose Google Cloud Run, GTM will automatically provision the infrastructure and provide a server URL (for example, https://gtm-abc123-uc.a.run.app).

Step 2: Configure Your Custom Domain

This step is critical and non-negotiable. Your server container must run on a first-party subdomain of your main website domain. Without this, you lose the primary benefit of server-side tracking: first-party cookie context.

Add a CNAME record in your DNS:

analytics.yourbrand.com  CNAME  gtm-abc123-uc.a.run.app

Then configure the custom domain in your server container settings. GTM will provision an SSL certificate automatically. Verify the setup by visiting https://analytics.yourbrand.com/healthy -- you should see a 200 response.

Why does this matter? When the browser sends a request to analytics.yourbrand.com, it is a first-party request. The browser treats it identically to any other request to your own domain. Cookies set in the response are first-party cookies with no ITP restrictions -- they can last up to 400 days instead of 7.

Step 3: Set Up Clients in GTM Server-Side

The "Client" in GTM SS is the component that receives incoming HTTP requests and parses them into an event data model that tags can use. You need at least one client configured:

  • GA4 Client -- Receives and parses GA4 measurement protocol requests. This is the most common setup. Install it in your server container and it will automatically parse collect requests from your web container's GA4 tag.
  • Custom HTTP Client -- For advanced setups where you want to receive arbitrary HTTP requests (for example, from a backend webhook) and route them to tags.

The GA4 Client is the workhorse. Once installed, any GA4 event sent to your server container URL will be parsed and made available to all server-side tags.

Step 4: Configure Server-Side Tags

Now add tags for each platform you want to send server-side data to. Each tag takes the parsed event data from the Client and forwards it to the platform's API:

  • Google Ads Enhanced Conversions -- Sends hashed user data (email, phone, address) alongside conversion events for improved match rates.
  • Facebook/Meta Conversions API (CAPI) -- Sends events to Facebook's server-side endpoint with event_id for deduplication.
  • GA4 (server-side) -- Forwards the GA4 event from your server to Google's measurement endpoint. This creates a hybrid setup where the event travels client-to-server-to-Google.
  • TikTok Events API -- Server-side event forwarding for TikTok's conversion optimization.
  • LinkedIn Conversions API -- For B2B advertisers running LinkedIn campaigns.

Step 5: Update Your Website GTM Web Container

In your web container, update the GA4 Configuration tag to point to your custom server domain instead of sending data directly to Google:

// In your web container's GA4 config tag,
// set the server_container_url field:
gtag('config', 'G-XXXXXXX', {
  'server_container_url': 'https://analytics.yourbrand.com'
});

This single change redirects all GA4 events from your web container through your server container. The server container then distributes the event data to all configured server-side tags (GA4, Meta CAPI, Google Ads, etc.).

4. Platform-Specific Configuration

Each ad platform has its own server-side API with specific requirements. Here is how to configure the three most common ones.

Google Enhanced Conversions

Google Enhanced Conversions uses hashed first-party customer data (email, phone number, name, address) to improve conversion match rates by 15-25%. In a server-side setup, the hashing happens on your server before data reaches Google.

In your web container, push user-provided data into the dataLayer when a conversion occurs:

dataLayer.push({
  'event': 'purchase',
  'transaction_id': 'TXN-28491',
  'value': 299.00,
  'currency': 'USD',
  'user_data': {
    'email': 'customer@example.com',
    'phone_number': '+12125551234',
    'address': {
      'first_name': 'Jane',
      'last_name': 'Smith',
      'street': '123 Main St',
      'city': 'New York',
      'region': 'NY',
      'postal_code': '10001',
      'country': 'US'
    }
  }
});

In your server container, the Google Ads Conversion Tracking tag automatically picks up the user_data object, SHA-256 hashes all PII fields, and sends them to Google's Enhanced Conversions endpoint. You do not need to hash manually -- the server-side tag handles it.

Make sure your Google Ads Conversion Tracking tag in the server container has "Include user-provided data" enabled and is mapped to the correct conversion action ID and label from your Google Ads account.

Meta Conversions API (CAPI)

Meta CAPI is arguably the most impactful server-side integration for most advertisers. With iOS 14+ opt-out rates hovering around 75-85%, Meta's pixel is missing the majority of iOS conversions. CAPI fills those gaps.

The critical concept with Meta CAPI is event deduplication. If you run both the pixel (client-side) and CAPI (server-side), you must send the same event_id with both events so Meta can deduplicate them and avoid double-counting.

In your web container, generate a unique event ID and push it with the event:

// Generate a unique event_id for deduplication
var eventId = 'evt_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);

// Push to dataLayer (picked up by server-side container)
dataLayer.push({
  'event': 'purchase',
  'transaction_id': 'TXN-28491',
  'event_id': eventId,
  'value': 299.00,
  'currency': 'USD'
});

// Also fire the Meta pixel with the same event_id
fbq('track', 'Purchase', {
  value: 299.00,
  currency: 'USD',
  content_type: 'product'
}, { eventID: eventId });

In your server container, configure the Facebook CAPI tag (available from the GTM template gallery) with your Pixel ID and an Access Token generated in Facebook Events Manager. Map the event_id from the incoming event data to the CAPI request's event_id field.

Meta's Event Match Quality (EMQ) score in Events Manager will tell you how well your server events are matching. Aim for an EMQ score above 6.0. Below that, send more user parameters (email, phone, fbp cookie, fbc click ID) to improve match rates.

TikTok Events API

TikTok's Events API works similarly to Meta CAPI. You need a TikTok Pixel ID and an Access Token from TikTok Events Manager.

In your server container, install the TikTok Events API tag from the GTM template gallery. Configure it with:

  • Pixel ID -- From your TikTok Ads Manager
  • Access Token -- Generated in TikTok Events Manager under Settings
  • Event mapping -- Map your GA4 events to TikTok standard events (e.g., purchase maps to CompletePayment, add_to_cart maps to AddToCart)

TikTok also supports event deduplication via event_id. If you run both the TikTok pixel client-side and the Events API server-side, use the same approach as Meta: generate a shared event ID and send it with both.

// TikTok Events API server-side tag configuration
// Event Name: CompletePayment
// Event ID: {{Event ID}}  (mapped from incoming event data)
// Content Type: product
// Value: {{Event Value}}
// Currency: {{Event Currency}}

TikTok's server-side integration is newer and less mature than Meta's, but it is rapidly improving. If TikTok represents more than 10% of your ad spend, server-side integration is worth the effort for the improved signal quality alone.

Need expert help implementing server-side tracking?

We have configured GTM Server-Side, Meta CAPI, and Enhanced Conversions for over 40 clients. Take our free assessment and we will identify exactly where your tracking gaps are.

Take the Free Assessment

5. Key Events to Track Server-Side

Not every event needs to go through your server container. Server-side tracking adds latency (typically 50-200ms) and infrastructure cost per request. The strategic approach is to route high-value events server-side while keeping low-value engagement events client-side.

Must be server-side (conversion events):

  • Purchase / Transaction -- Revenue events are the foundation of ROAS calculation. If ad platforms are missing 30% of purchases, their algorithms are optimizing on distorted data. This is the single highest-impact event to move server-side.
  • Lead / Sign-Up / Demo Request -- For B2B SaaS, these are your primary conversion events. Missing a lead submission means the ad platform cannot attribute that conversion to the campaign that generated it.
  • Add to Cart -- Critical for dynamic retargeting and mid-funnel optimization. If Meta does not know a user added a product to their cart, it cannot serve them a retargeting ad for that product.
  • Begin Checkout -- High-intent signal that ad platforms use to find similar users. Missing checkout events degrades your lookalike audience quality.

Keep client-side (engagement events):

  • Page views -- High volume, low value per event. The cost of routing every page view through your server container is not justified by the incremental accuracy.
  • Scroll depth, video views, clicks -- Engagement metrics that inform content strategy but do not directly feed ad platform optimization.
  • User login / identity resolution -- Worth sending server-side if you use it for cross-device matching, but can remain client-side if you only use it for on-site personalization.

A good rule of thumb: if the event directly affects your ad platform's bidding algorithm or your ROAS calculation, it should be server-side. Everything else can stay client-side to minimize cost and complexity.

6. Verification and Debugging

Server-side tracking introduces a new layer of complexity between your website and the ad platforms. When something breaks, you need to know how to diagnose it. Here are the essential debugging techniques.

GTM Server-Side Preview Mode

Just like the web container, GTM Server-Side has a Preview mode. Open it from your server container's workspace by clicking "Preview" in the top right. This opens a debug panel that shows:

  • Every incoming request received by the server container
  • Which Client claimed the request
  • What event data was parsed from the request
  • Which tags fired and what data they sent to external endpoints
  • The HTTP response from each external API call

This is your primary debugging tool. If a Meta CAPI event is not showing up in Facebook Events Manager, check Preview mode to see if the tag fired, what data it sent, and what response it received. A 200 response means the event was accepted. A 400 or 403 means there is a configuration error (usually an invalid access token or missing required parameters).

GA4 Real-Time Reports

In GA4, navigate to Reports, then Real-Time. Fire a test event on your website and verify it appears in real-time within 30 seconds. If events are reaching GA4 via your server container, they will appear with the same event names and parameters as client-side events.

If events appear in your web container's GTM Preview but not in GA4 Real-Time, the issue is between your server container and Google. Check the server container's Preview mode for HTTP errors on the GA4 server-side tag.

Facebook Test Events Tool

In Facebook Events Manager, navigate to your pixel, then click "Test Events." This tool shows all events received by Facebook in real-time, including both pixel events (browser) and CAPI events (server). Each event is labeled with its source.

Key things to verify:

  • Deduplication is working -- You should see both a "Browser" event and a "Server" event for each conversion, with "Deduplicated" status showing they share the same event_id.
  • Event Match Quality (EMQ) -- Click into individual CAPI events to see which user parameters were matched. Aim for EMQ above 6.0.
  • No duplicate counting -- If you see events being counted twice (no deduplication), your event_id is not being passed correctly.

Common Debugging Workflow

When conversions are not being tracked correctly, follow this systematic approach:

1. Check GTM Web Preview: Is the event firing in the browser?
   - If NO: Fix the web container trigger/tag
   - If YES: Continue to step 2

2. Check Network Tab: Is the request reaching your server domain?
   - Look for a request to analytics.yourbrand.com/collect
   - If NO: Check server_container_url config in GA4 tag
   - If YES: Continue to step 3

3. Check GTM Server Preview: Is the server container processing it?
   - If NO: Check the Client configuration
   - If YES: Continue to step 4

4. Check individual tag status in Server Preview:
   - Did the Meta CAPI tag fire? What was the HTTP response?
   - Did the Google Ads tag fire? What was the HTTP response?
   - A 200 response = success. 400/403 = config error. Timeout = server issue.

7. Cost Estimator: What to Budget

One of the most common questions we get is "how much does server-side tracking cost?" The answer depends on your traffic volume and hosting choice. Here is a realistic breakdown.

Infrastructure Costs (Monthly)

  • Stape.io (managed hosting) -- $20/month for up to 500K server-side requests. $50/month for up to 2M requests. $100/month for up to 10M requests. Best for small-to-medium sites with under 100K monthly sessions.
  • Google Cloud Run (auto-provisioned) -- $50-200/month for most sites. Pricing is based on CPU and memory usage, so it scales with traffic. A site with 500K monthly sessions typically sees $80-120/month. The advantage is auto-scaling: you pay for what you use.
  • Self-hosted containers (AWS ECS, Azure, etc.) -- $200+/month for a production-grade setup with load balancing, auto-scaling, and monitoring. This option only makes sense if you have specific compliance requirements or a DevOps team already managing container infrastructure.

Professional Setup Costs

  • Basic setup (GTM SS + one platform) -- $3,000-5,000. This covers provisioning the server container, configuring the custom domain, setting up one platform integration (usually Meta CAPI or Google Enhanced Conversions), and basic verification.
  • Full setup (GTM SS + multiple platforms + hybrid dedup) -- $8,000-15,000. This covers multi-platform integration (Meta, Google, TikTok, LinkedIn), event deduplication across client-side and server-side, custom domain configuration, QA and verification across all platforms, and documentation.
  • Enterprise setup (custom data enrichment + CRM integration) -- $15,000-30,000+. Includes everything above plus backend data enrichment (LTV, lead score, CRM status piped into server-side events), custom transformation logic, and ongoing monitoring dashboards.

ROI Analysis

Here is the math that makes the investment obvious. Suppose you spend $50,000/month on ads and your current client-side tracking misses 30% of conversions (a conservative estimate based on our audits). That means ad platforms see 70% of your actual conversions. Their algorithms are optimizing on incomplete data, which typically results in 15-25% lower efficiency than what is achievable with complete data.

If server-side tracking recovers those missing conversions and improves algorithmic optimization by even 15%, that is $7,500/month in recovered efficiency. Against a total cost of $100-200/month in hosting and a one-time $5,000-15,000 setup fee, the payback period is 1-2 months.

For the B2B SaaS client we profiled in our ROAS case study, the tracking infrastructure investment paid for itself in the first three weeks.

8. Common Pitfalls and How to Avoid Them

Server-side tracking introduces new failure modes that do not exist with client-side pixels. We have seen every one of these in production environments. Here is how to avoid them.

Missing User Identifiers

Server-side tags need platform-specific user identifiers to match events to users. For Facebook, that means the _fbp cookie (Facebook browser ID) and _fbc cookie (Facebook click ID from ad clicks). For Google, it means the gclid (Google Click ID) and the _ga cookie.

These identifiers are set by client-side scripts and stored in cookies. Your server container needs to read them from the incoming request. If your GA4 Client is configured correctly, it will automatically extract cookies from the request headers. But if your custom domain is not on the same root domain as your website, the cookies will not be included in the request.

Always verify in GTM Server Preview that user identifiers are present in the parsed event data. If fbp or fbc are empty, your match rate will drop significantly.

IP Address Forwarding

When your server container sends an event to Facebook or Google, the source IP is your server's IP, not the user's IP. Ad platforms use IP for geographic targeting and user matching. If every conversion appears to come from a single data center IP, your geo data is destroyed and match rates drop.

The fix: use the IP Override variable in GTM SS. The GA4 Client automatically extracts the user's IP from the X-Forwarded-For header of the incoming request. Make sure your server-side tags are configured to use this value. In the Meta CAPI tag, map the ip_override field to the ip_address event data variable.

Event Deduplication Failures

If you run a hybrid setup (both client-side pixel and server-side API), failing to deduplicate will double-count conversions. Facebook uses the event_id field for deduplication. Google uses transaction_id for purchase events.

The most common failure: generating the event_id on the client side but not passing it through to the server-side tag. Verify in both Facebook Test Events and GTM Server Preview that the same event_id appears in both the pixel event and the CAPI event.

Cookie Domain Mismatch

If your website is on www.yourbrand.com but your server container runs on tracking.yourbrand.com, the browser will include cookies for .yourbrand.com in requests to both domains. This works correctly. But if your server container runs on yourbrand-analytics.com (a different root domain), no cookies will be shared. You lose all user identity context.

Rule: your server container's custom domain must be a subdomain of your website's root domain. No exceptions.

Server Downtime and Monitoring

If your server container goes down, you lose all server-side tracking. Unlike client-side pixels that fire directly to the ad platform, there is a single point of failure in your infrastructure.

Mitigations:

  • Set up uptime monitoring (Pingdom, UptimeRobot, or Google Cloud Monitoring) that pings your /healthy endpoint every 60 seconds.
  • Configure auto-scaling with a minimum of 2 instances so a single container crash does not take down tracking.
  • Set up alerting that notifies your team within 5 minutes of downtime.
  • Keep your client-side pixel running as a fallback. Even if it misses 30% of events, it is better than 0% during a server outage.

Access Token Expiration

Facebook and TikTok access tokens can expire or be revoked. When they do, your CAPI events silently fail with 403 errors. Set a calendar reminder to check your access tokens quarterly, and monitor the HTTP response codes in your server container logs. A sudden spike in 403 responses almost always means an expired token.

9. The Hybrid Gold Standard

The optimal tracking architecture in 2026 is not purely server-side. It is hybrid: client-side for real-time engagement signals, server-side for high-value conversion data. This approach balances accuracy, cost, latency, and resilience.

Here is the recommended architecture:

Client-side (fires immediately in the browser):

  • Page view events for GA4 and engagement analytics
  • Scroll depth, video plays, and other interaction events
  • Ad platform pixels for real-time retargeting signals (these fire fast, enabling immediate retargeting)
  • Consent management and cookie banner logic

Server-side (routed through your GTM SS container):

  • All purchase and revenue events
  • Lead form submissions and demo requests
  • Add-to-cart and begin-checkout events
  • User registration and login events (for identity resolution)
  • Any event that feeds ad platform bidding algorithms

The deduplication layer:

For events that fire both client-side and server-side (purchases, leads), generate a unique event_id on the client, include it in both the pixel event and the dataLayer push, and let the ad platforms deduplicate automatically. This gives you the speed of client-side (for users where pixels work) and the completeness of server-side (for users where pixels are blocked).

This hybrid approach typically captures 95%+ of actual conversions, compared to 60-70% with client-side only. The remaining 5% are edge cases like users with JavaScript completely disabled or extreme network conditions.

If you want to understand how fixing your attribution model works alongside server-side tracking, our attribution guide covers the complementary strategy. The two work best together: server-side tracking gives you complete data, and proper attribution modeling tells you what that data means.

10. The Results: What to Expect

When implemented correctly, server-side tracking delivers measurable improvements across your entire marketing operation. Here is what we consistently see across our client base.

Within the first week:

  • 20-40% more tracked conversions -- The events that ad blockers and ITP were hiding suddenly appear in your data. This is not new revenue -- it is revenue that was always there but invisible to your ad platforms.
  • Improved Event Match Quality -- Facebook's EMQ score typically jumps from 3-4 (poor) to 7-8 (good) as server-side events include richer user data.
  • More accurate geographic data -- With proper IP forwarding, your conversion data includes correct user location instead of your server's data center location.

Within the first month:

  • Extended attribution windows -- First-party cookies set by your server last 365+ days instead of 7. This means more conversions are attributed to the campaigns that actually drove them, especially for longer B2B sales cycles.
  • Better algorithmic optimization -- Ad platforms receiving more complete conversion data start optimizing more effectively. You will see CPA decrease and conversion volume increase without changing your budget.
  • Improved ROAS reporting accuracy -- Your reported ROAS will increase because more conversions are being counted. The actual business performance has not changed -- you are just measuring it accurately for the first time.

Within the first quarter:

  • 15-30% improvement in effective ROAS -- The combination of better data and improved algorithmic optimization compounds over time. Platforms like Meta need 50+ conversions per week per ad set to exit the learning phase. Recovering missing conversions often pushes ad sets above this threshold, unlocking significantly better performance.
  • Reduced budget waste -- With accurate attribution, you can confidently allocate budget to channels that actually drive results instead of relying on distorted last-click data. See our case study on rebuilding a B2B SaaS campaign from 1.2x to 4.1x ROAS for a concrete example of what this looks like in practice.
  • Future-proof measurement -- You own the data pipeline. When Chrome finally deprecates third-party cookies, when new privacy regulations emerge, when browsers add new restrictions -- your measurement infrastructure is already independent of those changes.

One of our e-commerce clients saw a 34% increase in tracked conversions and a 0.8x improvement in reported ROAS within the first week of going live with server-side tracking. Their campaigns did not change. Their creative did not change. Their budget did not change. The measurement did -- and that made all the difference to their platform algorithms.

If you are not already planning your migration to server-side tracking, you are behind. The question is not if you will implement it -- it is how fast you can get it live before your attribution data becomes completely unreliable. Need help? We have implemented server-side tracking for 40+ clients. Book a strategy session and we will audit your current setup and build you a migration roadmap.

Want us to implement server-side tracking for you?

We will audit your current tracking setup, design the server-side architecture, and implement GTM Server-Side with all major platform integrations -- Meta CAPI, Google Enhanced Conversions, TikTok Events API, and more.

Get Your Free Audit
Ready to scale your ROAS? Book a Strategy Session

Get the "Growth Architecture" Blueprint

Our 9-point audit has helped SaaS companies scale to $1M+ ARR. Get the self-assessment for free.

Start 9-Point Audit