<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>TrackingRunbook</title>
  <subtitle>GA4 and Google Tag Manager tutorials where every step is traced to Google's own documentation and every file is checked before it ships.</subtitle>
  <link href="https://trackingrunbook.com/feed.xml" rel="self"/>
  <link href="https://trackingrunbook.com/"/>
  <updated>2026-11-11T00:00:00-07:00</updated>
  <id>https://trackingrunbook.com/</id>

  <entry>
    <title>Install GA4 with Google Tag Manager: the Google tag, the first page_view, and the check that proves it works</title>
    <link href="https://trackingrunbook.com/guides/install-ga4-with-tag-manager/"/>
    <id>https://trackingrunbook.com/guides/install-ga4-with-tag-manager/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>One Google tag on the Initialization trigger sends page_view on its own. No second page_view tag, verified in Tag Assistant Preview, published as a version.</summary>
  </entry>

  <entry>
    <title>Your GA4 purchase event never arrives: trace it with Tag Assistant and DebugView</title>
    <link href="https://trackingrunbook.com/guides/purchase-event-missing-debug/"/>
    <id>https://trackingrunbook.com/guides/purchase-event-missing-debug/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Four checkpoints, in order: Preview, DebugView, the Measurement ID, and the 24 to 48 hour lag plus the custom dimension. Worked with Google's example order at $72.05.</summary>
  </entry>

  <entry>
    <title>Install Tag Assistant and read what it says about your tags</title>
    <link href="https://trackingrunbook.com/guides/tag-assistant-install-use/"/>
    <id>https://trackingrunbook.com/guides/tag-assistant-install-use/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Tag Assistant is the first check when GA4 data looks wrong: install it, connect your site, and read the tag list before you touch a single setting.</summary>
  </entry>

  <entry>
    <title>Tag Assistant Preview: read Tags Fired and Tags Not Fired like a list of suspects</title>
    <link href="https://trackingrunbook.com/guides/tag-assistant-preview-tags-not-fired/"/>
    <id>https://trackingrunbook.com/guides/tag-assistant-preview-tags-not-fired/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Preview lists every tag under Tags Fired or Tags Not Fired for each event. A tag under Not Fired names its own reason — read the trigger condition, not the tag.</summary>
  </entry>

  <entry>
    <title>DebugView: find your own event in the stream and read its parameters</title>
    <link href="https://trackingrunbook.com/guides/debugview-find-event/"/>
    <id>https://trackingrunbook.com/guides/debugview-find-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>DebugView shows only devices in debug mode, one event at a time with its parameters. Pick your device, pick the minute, and the event is either there or it is not.</summary>
  </entry>

  <entry>
    <title>debug_mode in Tag Manager: turn it on for one tag, then take it off again</title>
    <link href="https://trackingrunbook.com/guides/debug-mode-gtm/"/>
    <id>https://trackingrunbook.com/guides/debug-mode-gtm/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>In Tag Manager, debug_mode goes in the Google tag for all events or in one GA4 Event tag for a single event. The off switch is removing the field — false does not turn it off.</summary>
  </entry>

  <entry>
    <title>debug_mode with gtag: one line in the config, and the line that turns it off</title>
    <link href="https://trackingrunbook.com/guides/debug-mode-gtag/"/>
    <id>https://trackingrunbook.com/guides/debug-mode-gtag/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>With gtag.js, debug_mode: true goes in the config command for all events or in one event call for a single event. Turning it off means deleting the parameter, not setting it false.</summary>
  </entry>

  <entry>
    <title>The Google Analytics Debugger extension: read your hits in the console</title>
    <link href="https://trackingrunbook.com/guides/ga-debugger-extension/"/>
    <id>https://trackingrunbook.com/guides/ga-debugger-extension/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The GA Debugger extension prints every Analytics hit to the browser console, with the full payload. It is the fastest way to see what a page actually sent.</summary>
  </entry>

  <entry>
    <title>Read the network tab: the collect request is the proof the browser sent it</title>
    <link href="https://trackingrunbook.com/guides/network-tab-collect-requests/"/>
    <id>https://trackingrunbook.com/guides/network-tab-collect-requests/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Every GA4 event leaves the browser as a collect request to google-analytics.com. Filter the network tab for collect, and a missing event shows up as a missing request.</summary>
  </entry>

  <entry>
    <title>The Measurement ID does not match the stream: copy it, do not type it</title>
    <link href="https://trackingrunbook.com/guides/measurement-id-mismatch/"/>
    <id>https://trackingrunbook.com/guides/measurement-id-mismatch/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A tag with the wrong Measurement ID fires cleanly and reports cleanly — into someone else's property. Compare the ID in the tag with the ID in the stream, character by character.</summary>
  </entry>

  <entry>
    <title>Check the data stream: the stream is where the ID lives and the settings live</title>
    <link href="https://trackingrunbook.com/guides/data-stream-check/"/>
    <id>https://trackingrunbook.com/guides/data-stream-check/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A web data stream is the collection point for a site: it holds the Measurement ID, the enhanced measurement switches, and the internal traffic rules. Check it before you blame the tag.</summary>
  </entry>

  <entry>
    <title>Check the consent state: Tag Assistant shows what the visitor actually allowed</title>
    <link href="https://trackingrunbook.com/guides/consent-state-check/"/>
    <id>https://trackingrunbook.com/guides/consent-state-check/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Tag Assistant has a Consent tab that shows the consent state for each event — granted or denied, per type. Read it before you decide the tag is broken.</summary>
  </entry>

  <entry>
    <title>Your ad blocker is eating the GA4 requests: test with it off</title>
    <link href="https://trackingrunbook.com/guides/ad-blocker-blocking-ga4/"/>
    <id>https://trackingrunbook.com/guides/ad-blocker-blocking-ga4/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Ad blockers stop the collect request before it leaves the browser, so Tag Assistant, the network tab, and GA4 all stay empty at once. The test is simple: turn it off and count again.</summary>
  </entry>

  <entry>
    <title>Your own visits are filtered out: check the internal traffic rule and the filter state</title>
    <link href="https://trackingrunbook.com/guides/internal-traffic-filter-check/"/>
    <id>https://trackingrunbook.com/guides/internal-traffic-filter-check/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>GA4 marks your office IP as internal traffic, and an Active filter deletes it from reports permanently. A missing event from your own desk may be a filter doing its job.</summary>
  </entry>

  <entry>
    <title>The report is empty because it is too soon: the 24 to 48 hour lag, checked properly</title>
    <link href="https://trackingrunbook.com/guides/report-lag-24-48h/"/>
    <id>https://trackingrunbook.com/guides/report-lag-24-48h/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Standard GA4 reports take 24 to 48 hours to process data. An empty standard report ten minutes after a test proves nothing — Realtime and DebugView are the same-day checks.</summary>
  </entry>

  <entry>
    <title>The custom parameter is sent but never shows: register it as a custom dimension</title>
    <link href="https://trackingrunbook.com/guides/custom-dimension-not-registered/"/>
    <id>https://trackingrunbook.com/guides/custom-dimension-not-registered/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>GA4 receives every parameter you send, but a custom parameter only becomes a dimension in your reports after you register it — and it only applies to events sent after registration.</summary>
  </entry>

  <entry>
    <title>The event is in Realtime but not in the reports: separate arrival from processing</title>
    <link href="https://trackingrunbook.com/guides/realtime-event-not-in-reports/"/>
    <id>https://trackingrunbook.com/guides/realtime-event-not-in-reports/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Realtime shows the past 30 minutes; standard reports take 24 to 48 hours. An event in Realtime and missing from the standard report is in processing, not lost — unless 48 hours have passed.</summary>
  </entry>

  <entry>
    <title>The same event arrives twice: find the second sender and remove it</title>
    <link href="https://trackingrunbook.com/guides/duplicate-events/"/>
    <id>https://trackingrunbook.com/guides/duplicate-events/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Duplicate events come from two senders, not from one tag firing twice. Count the senders — a second tag, a second snippet, or a tag plus gtag — and remove one.</summary>
  </entry>

  <entry>
    <title>The event arrives but its parameters are missing: read the payload, then the tag</title>
    <link href="https://trackingrunbook.com/guides/missing-event-parameters/"/>
    <id>https://trackingrunbook.com/guides/missing-event-parameters/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>An event with no parameters is a tag that sends a name and nothing else. Read the payload in the network tab, then the parameter list in the tag, and the missing row will show itself.</summary>
  </entry>

  <entry>
    <title>Revenue is in the wrong currency: the currency parameter decides the report</title>
    <link href="https://trackingrunbook.com/guides/wrong-currency/"/>
    <id>https://trackingrunbook.com/guides/wrong-currency/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>GA4 reports revenue in the property currency, converted from the currency parameter on the event. A wrong currency code turns every order into the wrong amount — check the code, not the total.</summary>
  </entry>

  <entry>
    <title>Revenue is wrong by the same amount on every order: the value is not the total</title>
    <link href="https://trackingrunbook.com/guides/wrong-value/"/>
    <id>https://trackingrunbook.com/guides/wrong-value/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The value parameter is the sum of price times quantity, without tax or shipping. An order total used as the value overstates revenue by tax plus shipping on every single order.</summary>
  </entry>

  <entry>
    <title>The events are landing in the wrong property: find which property is getting them</title>
    <link href="https://trackingrunbook.com/guides/events-wrong-property/"/>
    <id>https://trackingrunbook.com/guides/events-wrong-property/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>When your property is empty but the tag fires, the events are going somewhere — usually a second property, a staging property, or an old one. Find the property that has them.</summary>
  </entry>

  <entry>
    <title>Preview shows the draft, not the live site: publish before you judge the fix</title>
    <link href="https://trackingrunbook.com/guides/preview-draft-not-live/"/>
    <id>https://trackingrunbook.com/guides/preview-draft-not-live/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Preview runs your workspace as if it were published, and only in the browser where you started it. Nobody else sees it, and the live site does not change until you publish a version.</summary>
  </entry>

  <entry>
    <title>The tag is not firing: check the trigger before you rebuild the tag</title>
    <link href="https://trackingrunbook.com/guides/tags-not-firing-trigger-check/"/>
    <id>https://trackingrunbook.com/guides/tags-not-firing-trigger-check/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A tag that never fires is usually a trigger that never matches. Read the trigger's conditions against the event, and Preview will name the one that failed.</summary>
  </entry>

  <entry>
    <title>Consent denied means the events are missing by design: prove it, then decide</title>
    <link href="https://trackingrunbook.com/guides/consent-denied-events-missing/"/>
    <id>https://trackingrunbook.com/guides/consent-denied-events-missing/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>When a visitor declines analytics cookies, GA4 collects nothing for them in basic consent mode — or only cookieless pings in advanced mode. Missing events from decliners are not a tag fault.</summary>
  </entry>

  <entry>
    <title>Events went missing after a site redesign: the tags stayed, the page changed</title>
    <link href="https://trackingrunbook.com/guides/events-missing-after-redesign/"/>
    <id>https://trackingrunbook.com/guides/events-missing-after-redesign/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A redesign changes class names, page paths, and button text — and every trigger that matched the old page stops matching. Check the new page against the old triggers, one condition at a time.</summary>
  </entry>

  <entry>
    <title>Events went missing after a GTM publish: the published version is not the one you tested</title>
    <link href="https://trackingrunbook.com/guides/events-missing-after-gtm-publish/"/>
    <id>https://trackingrunbook.com/guides/events-missing-after-gtm-publish/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A publish ships the workspace as it stands — including a half-finished edit, a paused tag, or a change someone else saved. Check the live version, not the workspace.</summary>
  </entry>

  <entry>
    <title>Send the purchase event with gtag.js: the order, the parameters, and the DebugView check</title>
    <link href="https://trackingrunbook.com/guides/purchase-event-gtag/"/>
    <id>https://trackingrunbook.com/guides/purchase-event-gtag/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Google's own purchase tutorial, traced step by step: the gtag call on the confirmation page, the transaction ID that stops double counting, and the DebugView check that proves it arrived.</summary>
  </entry>

  <entry>
    <title>Send the purchase event through Tag Manager: one GA4 Event tag and the data layer behind it</title>
    <link href="https://trackingrunbook.com/guides/purchase-event-tag-manager/"/>
    <id>https://trackingrunbook.com/guides/purchase-event-tag-manager/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The same purchase, sent through Tag Manager instead of gtag: the data layer push, seven data layer variables, one GA4 Event tag, and a custom event trigger on the purchase event name.</summary>
  </entry>

  <entry>
    <title>Send the add_to_cart event: the click, the items, and the value that makes the cart reports work</title>
    <link href="https://trackingrunbook.com/guides/add-to-cart-event/"/>
    <id>https://trackingrunbook.com/guides/add-to-cart-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Add to cart is the event the purchase funnel and the Ecommerce purchases report both depend on: send it on the click, with the items just added and their value.</summary>
  </entry>

  <entry>
    <title>Send the remove_from_cart event: the item taken out, and only that item</title>
    <link href="https://trackingrunbook.com/guides/remove-from-cart-event/"/>
    <id>https://trackingrunbook.com/guides/remove-from-cart-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Remove from cart is the mirror of add to cart: send it when an item leaves the cart, with the removed item only, so the cart reports stop overstating what is still in there.</summary>
  </entry>

  <entry>
    <title>Send the view_item event: the product page view that fills Items viewed</title>
    <link href="https://trackingrunbook.com/guides/view-item-event/"/>
    <id>https://trackingrunbook.com/guides/view-item-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A page_view never fills Items viewed. The view_item event does: send it when a product page loads, with the product and its value, or the Ecommerce purchases report stays at zero.</summary>
  </entry>

  <entry>
    <title>Send the view_item_list event: the list view that proves which products were shown</title>
    <link href="https://trackingrunbook.com/guides/view-item-list-event/"/>
    <id>https://trackingrunbook.com/guides/view-item-list-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Before anyone clicks a product, the list page shows it. The view_item_list event records which products were displayed, in which list, so list performance is measured instead of guessed.</summary>
  </entry>

  <entry>
    <title>Send the select_item event: the click on a product in a list</title>
    <link href="https://trackingrunbook.com/guides/select-item-event/"/>
    <id>https://trackingrunbook.com/guides/select-item-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>View_item_list says what was shown; select_item says what was chosen. Send it on the click, with the clicked item and its position, so list click-through is measured per product.</summary>
  </entry>

  <entry>
    <title>Send select_content for items: the product click that is not a list click</title>
    <link href="https://trackingrunbook.com/guides/select-content-items/"/>
    <id>https://trackingrunbook.com/guides/select-content-items/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Select_item is for a product in a list. Select_content is for content of a type: send it with content_type product when the click is on a product card outside a measured list.</summary>
  </entry>

  <entry>
    <title>Send the begin_checkout event: the first step of checkout, with the cart that is being checked out</title>
    <link href="https://trackingrunbook.com/guides/begin-checkout-event/"/>
    <id>https://trackingrunbook.com/guides/begin-checkout-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Begin_checkout opens the checkout funnel: send it when checkout starts, with the full cart and its value, so the purchase journey and checkout journey both have a starting point.</summary>
  </entry>

  <entry>
    <title>Send the add_shipping_info event: the shipping choice, with the tier that fills the Checkout journey</title>
    <link href="https://trackingrunbook.com/guides/add-shipping-info-event/"/>
    <id>https://trackingrunbook.com/guides/add-shipping-info-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The checkout journey has a shipping step that only this event fills: send add_shipping_info when the visitor picks a shipping method, with the tier in shipping_tier.</summary>
  </entry>

  <entry>
    <title>Send the add_payment_info event: the payment choice, with the payment_type that needs a custom dimension to report on</title>
    <link href="https://trackingrunbook.com/guides/add-payment-info-event/"/>
    <id>https://trackingrunbook.com/guides/add-payment-info-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The checkout journey has a payment step that only this event fills: send add_payment_info when the visitor submits payment details, with the method in payment_type.</summary>
  </entry>

  <entry>
    <title>Send the refund event: the full refund, the partial refund, and the transaction ID that ties them to the order</title>
    <link href="https://trackingrunbook.com/guides/refund-event/"/>
    <id>https://trackingrunbook.com/guides/refund-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Refunds do not happen on the website, so the browser never sees them. Send the refund event from the server with the original transaction ID, or GA4 keeps reporting gross revenue as net.</summary>
  </entry>

  <entry>
    <title>Shape the ecommerce data layer: the ecommerce object, the clear, and the seven variables Tag Manager reads</title>
    <link href="https://trackingrunbook.com/guides/ecommerce-data-layer/"/>
    <id>https://trackingrunbook.com/guides/ecommerce-data-layer/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Tag Manager never sees the order unless the site pushes it in Google's shape. The data layer is one ecommerce object per event, cleared before each push, with the same keys every time.</summary>
  </entry>

  <entry>
    <title>The items array rules: what each item needs, the 200-item limit, and the 27 custom parameters</title>
    <link href="https://trackingrunbook.com/guides/items-array-rules/"/>
    <id>https://trackingrunbook.com/guides/items-array-rules/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Every ecommerce event carries its products in one items array. The rules are short — item_id or item_name, quantity defaults to 1, 200 items at most — and breaking them empties the reports silently.</summary>
  </entry>

  <entry>
    <title>The item parameters: item_id, item_name, price, quantity, brand, category, and the rest of the prescribed set</title>
    <link href="https://trackingrunbook.com/guides/item-parameters/"/>
    <id>https://trackingrunbook.com/guides/item-parameters/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The items array has one prescribed parameter set, and the Ecommerce purchases report is built from it. Send the brand, the category, the variant, and the discount — not just the ID and the price.</summary>
  </entry>

  <entry>
    <title>Currency and value: the pair that makes revenue appear, and the rule that breaks it when they split</title>
    <link href="https://trackingrunbook.com/guides/currency-and-value/"/>
    <id>https://trackingrunbook.com/guides/currency-and-value/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Value without currency is a number Analytics cannot place. Send the two together, at the event level, in the currency the customer was charged in.</summary>
  </entry>

  <entry>
    <title>Tax and shipping inside value: keep them out, and reconcile the charged total separately</title>
    <link href="https://trackingrunbook.com/guides/tax-and-shipping-value/"/>
    <id>https://trackingrunbook.com/guides/tax-and-shipping-value/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Value is the items total. Tax and shipping are their own parameters. Put them inside value and item revenue is overstated by exactly the tax and shipping on every order.</summary>
  </entry>

  <entry>
    <title>Check ecommerce in DebugView: debug_mode, the event stream, and what each parameter must read</title>
    <link href="https://trackingrunbook.com/guides/ecommerce-debugview/"/>
    <id>https://trackingrunbook.com/guides/ecommerce-debugview/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Standard reports take about 24 hours, so the same-day check for ecommerce is DebugView: turn on debug_mode, trigger each event, and read its parameters and items before anything is published.</summary>
  </entry>

  <entry>
    <title>Read the Monetization overview: total revenue, purchase revenue, and what the cards actually sum</title>
    <link href="https://trackingrunbook.com/guides/monetization-overview-report/"/>
    <id>https://trackingrunbook.com/guides/monetization-overview-report/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Monetization overview is the summary cards for revenue: total revenue, purchase revenue, purchasers, and average purchase revenue. Read the cards, then click through to the detail.</summary>
  </entry>

  <entry>
    <title>Read the Ecommerce purchases report: items viewed, added to cart, purchased, and item revenue</title>
    <link href="https://trackingrunbook.com/guides/ecommerce-purchases-report/"/>
    <id>https://trackingrunbook.com/guides/ecommerce-purchases-report/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Ecommerce purchases report is the item-level table: one row per product, with items viewed, items added to cart, items purchased, and item revenue side by side.</summary>
  </entry>

  <entry>
    <title>Create item-scoped custom dimensions: report on the extra fields you send inside the items array</title>
    <link href="https://trackingrunbook.com/guides/item-scoped-custom-dimensions/"/>
    <id>https://trackingrunbook.com/guides/item-scoped-custom-dimensions/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The items array takes up to 27 custom parameters, but none of them can be reported on until you register it as an item-scoped custom dimension — scope Item, locked after save, explorations only.</summary>
  </entry>

  <entry>
    <title>Read the Purchase journey funnel: session start to purchase, and where the funnel loses buyers</title>
    <link href="https://trackingrunbook.com/guides/purchase-journey-funnel/"/>
    <id>https://trackingrunbook.com/guides/purchase-journey-funnel/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Purchase journey is a closed funnel with five steps — session start, view product, add to cart, begin checkout, purchase — built from the ecommerce events you already send.</summary>
  </entry>

  <entry>
    <title>Read the Checkout journey funnel: begin checkout to purchase, and which checkout step loses buyers</title>
    <link href="https://trackingrunbook.com/guides/checkout-journey-funnel/"/>
    <id>https://trackingrunbook.com/guides/checkout-journey-funnel/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Checkout journey is the four-step funnel inside checkout — begin checkout, add shipping, add payment, purchase — fed by the three checkout events and the purchase.</summary>
  </entry>

  <entry>
    <title>Ecommerce in multiple currencies: send the currency charged, and let the property convert for its reports</title>
    <link href="https://trackingrunbook.com/guides/multi-currency-ecommerce/"/>
    <id>https://trackingrunbook.com/guides/multi-currency-ecommerce/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A store that charges in more than one currency sends one currency per event — the one the customer paid in — and the property reports everything in its own reporting currency.</summary>
  </entry>

  <entry>
    <title>The coupon on a purchase: the event-level code, the item-level code, and the Order coupons report</title>
    <link href="https://trackingrunbook.com/guides/coupon-on-purchase/"/>
    <id>https://trackingrunbook.com/guides/coupon-on-purchase/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A purchase carries two coupon fields that are independent: the event-level code for the order and the item-level code for each item. Send both, spelled the same way every time.</summary>
  </entry>

  <entry>
    <title>Read the GA4 Home report: what the first screen actually tells you, and what it hides</title>
    <link href="https://trackingrunbook.com/guides/ga4-home-report-read/"/>
    <id>https://trackingrunbook.com/guides/ga4-home-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Home report is a summary, not a verdict. Read its cards in order, check the date range, and confirm any surprise in the matching detail report.</summary>
  </entry>

  <entry>
    <title>Read the Traffic acquisition report: where each session came from, and why it disagrees with User acquisition</title>
    <link href="https://trackingrunbook.com/guides/traffic-acquisition-report-read/"/>
    <id>https://trackingrunbook.com/guides/traffic-acquisition-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Traffic acquisition counts sessions, not people. Read it by session default channel group, and never compare its numbers with User acquisition as if the scopes matched.</summary>
  </entry>

  <entry>
    <title>Read the User acquisition report: which channels first brought your new users in</title>
    <link href="https://trackingrunbook.com/guides/user-acquisition-report-read/"/>
    <id>https://trackingrunbook.com/guides/user-acquisition-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>User acquisition groups each person by the channel of their first visit. Use it to judge what brings new people in — not what brings sessions back.</summary>
  </entry>

  <entry>
    <title>Read the Engagement overview: events, pages, and time, before you open any detail report</title>
    <link href="https://trackingrunbook.com/guides/engagement-overview-report-read/"/>
    <id>https://trackingrunbook.com/guides/engagement-overview-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Engagement overview is a card summary of events, pages, and conversions. Use it to pick which detail report deserves the next hour.</summary>
  </entry>

  <entry>
    <title>Read the Pages and screens report: which pages get the views, and which get the attention</title>
    <link href="https://trackingrunbook.com/guides/pages-and-screens-report-read/"/>
    <id>https://trackingrunbook.com/guides/pages-and-screens-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Pages and screens ranks every page by views and engagement time. Read views beside average engagement time — a page can win one and lose the other.</summary>
  </entry>

  <entry>
    <title>Read the Events report: which events fire, how often, and for how many people</title>
    <link href="https://trackingrunbook.com/guides/events-report-read/"/>
    <id>https://trackingrunbook.com/guides/events-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Events report lists every event by count and by users. Read count beside users — a high count with few users is one person firing it over and over.</summary>
  </entry>

  <entry>
    <title>Read the Conversions report: which key events fired, and how many times each</title>
    <link href="https://trackingrunbook.com/guides/conversions-report-read/"/>
    <id>https://trackingrunbook.com/guides/conversions-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Conversions report lists key events only. Read it after the Events report — it shows the outcomes, not the noise around them.</summary>
  </entry>

  <entry>
    <title>Customize a standard GA4 report: change its dimensions and metrics without breaking the original</title>
    <link href="https://trackingrunbook.com/guides/library-customize-standard-report/"/>
    <id>https://trackingrunbook.com/guides/library-customize-standard-report/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Customizing a standard report means editing its dimensions, metrics, filters, and charts, then saving it as a new report so the original stays intact.</summary>
  </entry>

  <entry>
    <title>Create a detail report in the Library: a blank table with your dimensions and metrics</title>
    <link href="https://trackingrunbook.com/guides/library-create-detail-report/"/>
    <id>https://trackingrunbook.com/guides/library-create-detail-report/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A detail report starts blank or from a template in the Library. Pick dimensions and metrics, save it, then publish it to a collection so anyone can find it.</summary>
  </entry>

  <entry>
    <title>Build a free-form exploration: a custom table from any dimensions and metrics</title>
    <link href="https://trackingrunbook.com/guides/explorations-free-form-build/"/>
    <id>https://trackingrunbook.com/guides/explorations-free-form-build/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A free-form exploration is a crosstab you build by dragging dimensions to rows and metrics to values. It is the default technique for a new blank exploration.</summary>
  </entry>

  <entry>
    <title>Build a funnel exploration: ordered steps, with the drop-off at each one</title>
    <link href="https://trackingrunbook.com/guides/funnel-exploration-build/"/>
    <id>https://trackingrunbook.com/guides/funnel-exploration-build/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A funnel exploration defines the steps of a journey and shows where users leave it. Use open steps when the journey can span sessions; use closed steps when every step must happen in one visit.</summary>
  </entry>

  <entry>
    <title>Build a path exploration: what users actually do before and after a page or event</title>
    <link href="https://trackingrunbook.com/guides/path-exploration-build/"/>
    <id>https://trackingrunbook.com/guides/path-exploration-build/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A path exploration draws the branching routes users take from a starting point, or backwards from an ending point. Start backwards from purchase to see what converters really did.</summary>
  </entry>

  <entry>
    <title>Build a segment overlap exploration: how much your audiences actually share</title>
    <link href="https://trackingrunbook.com/guides/segment-overlap-exploration/"/>
    <id>https://trackingrunbook.com/guides/segment-overlap-exploration/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A segment overlap exploration draws up to three segments as a Venn diagram and counts the users in each overlap. It answers whether two audiences are really two audiences.</summary>
  </entry>

  <entry>
    <title>Build a cohort exploration: retention by the week users first arrived</title>
    <link href="https://trackingrunbook.com/guides/cohort-exploration-build/"/>
    <id>https://trackingrunbook.com/guides/cohort-exploration-build/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A cohort exploration groups users by when they first visited and tracks how many return in later weeks. It answers whether new users stay or vanish.</summary>
  </entry>

  <entry>
    <title>Build a user lifetime exploration: revenue and engagement per user, over their whole life</title>
    <link href="https://trackingrunbook.com/guides/user-lifetime-exploration/"/>
    <id>https://trackingrunbook.com/guides/user-lifetime-exploration/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A user lifetime exploration totals revenue, sessions, and engagement per user from their first visit. Use it to compare which acquisition channels bring users worth the most.</summary>
  </entry>

  <entry>
    <title>Compare two groups in a GA4 report: build a comparison and read what actually differs</title>
    <link href="https://trackingrunbook.com/guides/report-comparisons-build/"/>
    <id>https://trackingrunbook.com/guides/report-comparisons-build/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A comparison splits a detail report into two groups — for example, mobile against desktop — and shows both side by side. Build it from a dimension, not from a hunch.</summary>
  </entry>

  <entry>
    <title>Build a segment in Explorations: define a group once, reuse it everywhere</title>
    <link href="https://trackingrunbook.com/guides/segments-build-explorations/"/>
    <id>https://trackingrunbook.com/guides/segments-build-explorations/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A segment is a saved subset of users, sessions, or events that match conditions you set. Build it in Explorations, then apply it to any technique as a comparison.</summary>
  </entry>

  <entry>
    <title>Segments versus audiences in GA4: which one to build, and where each one lives</title>
    <link href="https://trackingrunbook.com/guides/segments-vs-audiences/"/>
    <id>https://trackingrunbook.com/guides/segments-vs-audiences/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A segment is a temporary lens for analysis; an audience is a saved group that other Google products can use. Build a segment to ask a question, an audience to act on the answer.</summary>
  </entry>

  <entry>
    <title>Export a GA4 report to CSV or PDF: what each format keeps, and what it drops</title>
    <link href="https://trackingrunbook.com/guides/export-report-csv-pdf/"/>
    <id>https://trackingrunbook.com/guides/export-report-csv-pdf/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A standard report exports to CSV, TSV, Google Sheets, or PDF. CSV keeps the data; PDF keeps the picture. Pick the format that matches what the reader will do with it.</summary>
  </entry>

  <entry>
    <title>Share a GA4 report link: who can open it, and what they can change</title>
    <link href="https://trackingrunbook.com/guides/share-report-link/"/>
    <id>https://trackingrunbook.com/guides/share-report-link/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Sharing a report sends a link that opens the report as the reader's own access allows. A shared report is readable; it is not a copy, and it is not editable by the reader.</summary>
  </entry>

  <entry>
    <title>Apply a report filter in GA4: isolate one page, channel, or campaign in a detail report</title>
    <link href="https://trackingrunbook.com/guides/report-filters-apply/"/>
    <id>https://trackingrunbook.com/guides/report-filters-apply/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A report filter narrows a detail report to rows that match a dimension condition. Add it from the top of the report, or build it into a custom report so it stays.</summary>
  </entry>

  <entry>
    <title>Read the data-quality card: sampling, thresholds, and what GA4 withholds</title>
    <link href="https://trackingrunbook.com/guides/data-quality-card-thresholds/"/>
    <id>https://trackingrunbook.com/guides/data-quality-card-thresholds/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The data-quality card at the top of a report says whether the numbers are complete. A yellow or red card means sampling or thresholds are in play — read the card before the numbers.</summary>
  </entry>

  <entry>
    <title>Read the Landing page report: where each session started, and what the first page did</title>
    <link href="https://trackingrunbook.com/guides/landing-page-report-read/"/>
    <id>https://trackingrunbook.com/guides/landing-page-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Landing page report shows the first page of each session. Read it to find which entry pages engage and which ones send people straight back out.</summary>
  </entry>

  <entry>
    <title>Data-driven attribution in GA4: what the model does, and how to check it is the model in use</title>
    <link href="https://trackingrunbook.com/guides/data-driven-attribution-explained/"/>
    <id>https://trackingrunbook.com/guides/data-driven-attribution-explained/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Data-driven attribution splits credit across touch points using your own converting and non-converting paths. This guide shows where the setting lives and how to read the result.</summary>
  </entry>

  <entry>
    <title>The GA4 Model comparison report: read data-driven against last click before you change anything</title>
    <link href="https://trackingrunbook.com/guides/model-comparison-report/"/>
    <id>https://trackingrunbook.com/guides/model-comparison-report/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Model comparison puts two attribution models side by side for one key event, so you can see which channels gain and lose credit before you touch the property setting.</summary>
  </entry>

  <entry>
    <title>Default channel grouping in GA4: how every session gets one channel, and why Unassigned appears</title>
    <link href="https://trackingrunbook.com/guides/default-channel-grouping/"/>
    <id>https://trackingrunbook.com/guides/default-channel-grouping/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>GA4 sorts every session into one default channel from its source, medium and campaign. You cannot edit the rules, so the fix for a wrong channel is the tagging you send in.</summary>
  </entry>

  <entry>
    <title>Consent mode basic: Google tags stay blocked until the visitor answers the banner</title>
    <link href="https://trackingrunbook.com/guides/consent-mode-basic/"/>
    <id>https://trackingrunbook.com/guides/consent-mode-basic/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>In basic consent mode no Google tag loads and nothing is sent to Google until the visitor interacts with the consent banner. This guide sets that expectation before you build it.</summary>
  </entry>

  <entry>
    <title>Consent mode advanced: tags load with consent denied, and send pings instead of setting cookies</title>
    <link href="https://trackingrunbook.com/guides/consent-mode-advanced/"/>
    <id>https://trackingrunbook.com/guides/consent-mode-advanced/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>In advanced consent mode Google tags load on page open with consent denied by default, then send pings without cookies while consent is denied and full data once it is granted.</summary>
  </entry>

  <entry>
    <title>Consent default states: set all four consent types to denied before the first tag loads</title>
    <link href="https://trackingrunbook.com/guides/consent-default-states/"/>
    <id>https://trackingrunbook.com/guides/consent-default-states/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A consent default state is the value each consent type holds before the visitor answers. Set analytics_storage, ad_storage, ad_user_data and ad_personalization to denied first, then let the banner update them.</summary>
  </entry>

  <entry>
    <title>Consent mode in Tag Manager: the Consent Initialization trigger runs your defaults first</title>
    <link href="https://trackingrunbook.com/guides/consent-mode-in-tag-manager/"/>
    <id>https://trackingrunbook.com/guides/consent-mode-in-tag-manager/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>In Tag Manager, consent defaults belong on the Consent Initialization trigger, which fires before every other trigger. Put the default there and the Google tag obeys it.</summary>
  </entry>

  <entry>
    <title>Set up a consent banner for GA4: what the banner must do, and what consent mode does not do</title>
    <link href="https://trackingrunbook.com/guides/consent-banner-setup-basic/"/>
    <id>https://trackingrunbook.com/guides/consent-banner-setup-basic/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Consent mode is not a banner. The banner asks, records the answer and passes it on; consent mode only carries that answer to Google tags. Build the banner first.</summary>
  </entry>

  <entry>
    <title>GA4 data retention settings: set 14 months before the 2-month default deletes your history</title>
    <link href="https://trackingrunbook.com/guides/data-retention-settings/"/>
    <id>https://trackingrunbook.com/guides/data-retention-settings/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A new GA4 property keeps user and event data for 2 months by default. Change it to 14 months, the longest a standard property allows, and turn on reset on new activity.</summary>
  </entry>

  <entry>
    <title>User data deletion requests in GA4: schedule a deletion, and know what it erases</title>
    <link href="https://trackingrunbook.com/guides/user-data-deletion-requests/"/>
    <id>https://trackingrunbook.com/guides/user-data-deletion-requests/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A data deletion request removes chosen event parameters or user properties from a GA4 property. Schedule it from Admin, note the scope, and check the request after it runs.</summary>
  </entry>

  <entry>
    <title>Set user properties in GA4: describe groups of users with a Google tag Event Settings variable</title>
    <link href="https://trackingrunbook.com/guides/set-user-properties/"/>
    <id>https://trackingrunbook.com/guides/set-user-properties/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>User properties describe groups of users, such as language or membership tier. Set them in Tag Manager with a Google tag Event Settings variable, then assign it to the Google tag.</summary>
  </entry>

  <entry>
    <title>Custom user properties in GA4: register a user-scoped dimension so the property shows in reports</title>
    <link href="https://trackingrunbook.com/guides/custom-user-properties/"/>
    <id>https://trackingrunbook.com/guides/custom-user-properties/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Sending a user property is only half the job. Register it as a user-scoped custom dimension in Custom definitions, or it will not appear as a dimension in your reports.</summary>
  </entry>

  <entry>
    <title>Create a GA4 audience: build the condition, check the size, and name what it is for</title>
    <link href="https://trackingrunbook.com/guides/create-audience-conditions/"/>
    <id>https://trackingrunbook.com/guides/create-audience-conditions/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>An audience is a group of users defined by a condition on the data you collect. Build it in the audience builder, check how many users match, and name it for its use.</summary>
  </entry>

  <entry>
    <title>Predictive audiences in GA4: use the suggested templates only when the property qualifies</title>
    <link href="https://trackingrunbook.com/guides/predictive-audiences/"/>
    <id>https://trackingrunbook.com/guides/predictive-audiences/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A predictive audience has at least one condition based on a predictive metric, such as likely 7-day purchasers. Use the suggested template when it reads Ready to use.</summary>
  </entry>

  <entry>
    <title>Event-scoped custom dimensions in GA4: register the parameter so it shows in reports</title>
    <link href="https://trackingrunbook.com/guides/event-scoped-custom-dimensions/"/>
    <id>https://trackingrunbook.com/guides/event-scoped-custom-dimensions/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A custom event parameter is collected but not shown in standard reports until you register it as an event-scoped custom dimension. Register it in Custom definitions.</summary>
  </entry>

  <entry>
    <title>Create a custom metric in GA4: turn a numeric event parameter into a number you can report on</title>
    <link href="https://trackingrunbook.com/guides/create-custom-metrics/"/>
    <id>https://trackingrunbook.com/guides/create-custom-metrics/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A custom metric turns a numeric event parameter into a number you can sum and average in reports. Create it in Custom definitions, and use a dimension instead for text values.</summary>
  </entry>

  <entry>
    <title>Custom dimension and metric registration lag: the 24 to 48 hour wait, and how to check it</title>
    <link href="https://trackingrunbook.com/guides/custom-dimension-registration-lag/"/>
    <id>https://trackingrunbook.com/guides/custom-dimension-registration-lag/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A custom dimension or metric becomes usable in reports 24 to 48 hours after the data was sent and the definition was created. Plan the check for the second day, not the first hour.</summary>
  </entry>

  <entry>
    <title>Property user management in GA4: add a user at the right access level, and remove access cleanly</title>
    <link href="https://trackingrunbook.com/guides/property-user-management-access-levels/"/>
    <id>https://trackingrunbook.com/guides/property-user-management-access-levels/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Access in GA4 is set at account or property level in Access management. Add a user with the lowest role that does the job, and remove access from the same screen.</summary>
  </entry>

  <entry>
    <title>GA4 property settings: industry, time zone and currency, set once and checked before you trust revenue</title>
    <link href="https://trackingrunbook.com/guides/property-settings-time-zone-currency-industry/"/>
    <id>https://trackingrunbook.com/guides/property-settings-time-zone-currency-industry/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Property details hold the property name, industry category, reporting time zone and currency. Set them at creation, change them rarely, and know that a change applies going forward only.</summary>
  </entry>

  <entry>
    <title>Send a GA4 event with the Measurement Protocol: the API secret, the client ID, and the POST</title>
    <link href="https://trackingrunbook.com/guides/measurement-protocol-send-event/"/>
    <id>https://trackingrunbook.com/guides/measurement-protocol-send-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Measurement Protocol sends events to GA4 from your server with a POST to mp/collect. You need a Measurement ID, an API secret, and the browser client ID so the event joins the right session.</summary>
  </entry>

  <entry>
    <title>The Measurement Protocol validation server: check the event before production, and read every message</title>
    <link href="https://trackingrunbook.com/guides/measurement-protocol-validation-server/"/>
    <id>https://trackingrunbook.com/guides/measurement-protocol-validation-server/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The validation server at debug/mp/collect checks your Measurement Protocol event and returns a list of validation messages. An empty list is the pass; anything in it is a fix.</summary>
  </entry>

  <entry>
    <title>Delete a GA4 property: move it to Trash, use the 35-day window, and restore it if you meant another property</title>
    <link href="https://trackingrunbook.com/guides/delete-ga4-property/"/>
    <id>https://trackingrunbook.com/guides/delete-ga4-property/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Deleting a GA4 property moves it to Trash, where it stays for 35 days before permanent deletion. Restore it from Trash inside that window if the deletion was a mistake.</summary>
  </entry>

  <entry>
    <title>GA4 account settings: the account name, country and data sharing choices that sit above every property</title>
    <link href="https://trackingrunbook.com/guides/ga4-account-settings/"/>
    <id>https://trackingrunbook.com/guides/ga4-account-settings/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Account settings hold the account name, country of business and data sharing choices for every property under the account. Edit them at account level, not property level.</summary>
  </entry>

  <entry>
    <title>Create a Tag Manager account and a web container: one container per website, five container types</title>
    <link href="https://trackingrunbook.com/guides/create-gtm-account-and-web-container/"/>
    <id>https://trackingrunbook.com/guides/create-gtm-account-and-web-container/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>One Tag Manager account holds one container per website. Pick Web, name the container after the site's top-level URL, and the install step comes next.</summary>
  </entry>

  <entry>
    <title>Install the Tag Manager container snippet: one block high in the head, one right after the body tag</title>
    <link href="https://trackingrunbook.com/guides/install-gtm-container-snippet/"/>
    <id>https://trackingrunbook.com/guides/install-gtm-container-snippet/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Two code blocks on every page: the loader as high in the head as possible, the noscript iframe right after the opening body tag. Both carry the same container ID.</summary>
  </entry>

  <entry>
    <title>Workspaces and folders in Tag Manager: one workspace per job, folders by purpose</title>
    <link href="https://trackingrunbook.com/guides/gtm-workspaces-and-folders/"/>
    <id>https://trackingrunbook.com/guides/gtm-workspaces-and-folders/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A workspace is a draft copy of the container: one per job, never shared across jobs. Folders group tags, triggers and variables by purpose inside it.</summary>
  </entry>

  <entry>
    <title>Save, name and restore container versions: the snapshot that lets you roll back</title>
    <link href="https://trackingrunbook.com/guides/gtm-versions-create-and-restore/"/>
    <id>https://trackingrunbook.com/guides/gtm-versions-create-and-restore/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A version is a dated snapshot of the whole container. Name it after the change it carries, and Set as Latest Version is how a bad publish gets undone.</summary>
  </entry>

  <entry>
    <title>Enable the built-in variables: the click, page and form values your triggers already use</title>
    <link href="https://trackingrunbook.com/guides/enable-built-in-variables/"/>
    <id>https://trackingrunbook.com/guides/enable-built-in-variables/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Built-in variables sit switched off until you enable them. Click Text, Page URL and Form ID are the values your triggers compare against — enable the set your triggers need.</summary>
  </entry>

  <entry>
    <title>Create a data layer variable: read a value the site pushed to the data layer</title>
    <link href="https://trackingrunbook.com/guides/create-data-layer-variable/"/>
    <id>https://trackingrunbook.com/guides/create-data-layer-variable/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The data layer is where the site hands Tag Manager its values. A data layer variable names one key — ecommerce.value, for example — and returns what the site pushed.</summary>
  </entry>

  <entry>
    <title>Create a constant variable: one place to change a value every tag shares</title>
    <link href="https://trackingrunbook.com/guides/create-constant-variable/"/>
    <id>https://trackingrunbook.com/guides/create-constant-variable/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A constant variable holds a string that never changes at run time — a Measurement ID, an account number. Change it once and every tag that references it follows.</summary>
  </entry>

  <entry>
    <title>Create a lookup table variable: map one value to another without a new tag per case</title>
    <link href="https://trackingrunbook.com/guides/create-lookup-table-variable/"/>
    <id>https://trackingrunbook.com/guides/create-lookup-table-variable/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A lookup table turns one variable's value into another: the thank-you page URL becomes the right conversion ID. One variable replaces a tag per case.</summary>
  </entry>

  <entry>
    <title>Create a URL variable: pull one part of the page address out of the URL</title>
    <link href="https://trackingrunbook.com/guides/create-url-variable/"/>
    <id>https://trackingrunbook.com/guides/create-url-variable/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A URL variable splits the page address into its parts — hostname, path, query, fragment — so a trigger can fire on one section, or one order number.</summary>
  </entry>

  <entry>
    <title>Create a regex table variable: match a pattern, not a list of exact values</title>
    <link href="https://trackingrunbook.com/guides/create-regex-table-variable/"/>
    <id>https://trackingrunbook.com/guides/create-regex-table-variable/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A regex table is a lookup table with patterns: three patterns cover nine pages where a lookup table would need nine rows. The first matching pattern wins.</summary>
  </entry>

  <entry>
    <title>Use the All Pages trigger: one trigger that fires on every page load</title>
    <link href="https://trackingrunbook.com/guides/all-pages-trigger/"/>
    <id>https://trackingrunbook.com/guides/all-pages-trigger/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>All Pages is a built-in trigger that needs no configuration. Attach it to a tag and the tag fires on every page — the default for anything site-wide.</summary>
  </entry>

  <entry>
    <title>Build a click trigger: fire a tag when a button or link is clicked</title>
    <link href="https://trackingrunbook.com/guides/click-trigger/"/>
    <id>https://trackingrunbook.com/guides/click-trigger/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A click trigger watches for clicks and filters on what was clicked — Click Text, Click ID or Click Classes. One trigger, one button, no code on the page.</summary>
  </entry>

  <entry>
    <title>Build a form submission trigger: fire a tag when a form is sent</title>
    <link href="https://trackingrunbook.com/guides/form-submission-trigger/"/>
    <id>https://trackingrunbook.com/guides/form-submission-trigger/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A form submission trigger fires when a form is submitted — filtered by Form ID so the newsletter form and the checkout form are measured separately.</summary>
  </entry>

  <entry>
    <title>Build a scroll depth trigger: fire a tag when a reader reaches a depth</title>
    <link href="https://trackingrunbook.com/guides/scroll-depth-trigger/"/>
    <id>https://trackingrunbook.com/guides/scroll-depth-trigger/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A scroll depth trigger fires at the percentages you set — 25, 50, 75, 90. On a 4,800-pixel page those are 1,200, 2,400, 3,600 and 4,320 pixels down.</summary>
  </entry>

  <entry>
    <title>Build a history change trigger: fire a tag when a single-page app changes view</title>
    <link href="https://trackingrunbook.com/guides/history-change-trigger/"/>
    <id>https://trackingrunbook.com/guides/history-change-trigger/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A single-page app never reloads the page — it changes the browser history instead. A history change trigger fires on pushState, replaceState and popState.</summary>
  </entry>

  <entry>
    <title>Build a custom event trigger: fire a tag on a named event from the data layer</title>
    <link href="https://trackingrunbook.com/guides/custom-event-trigger/"/>
    <id>https://trackingrunbook.com/guides/custom-event-trigger/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A custom event trigger fires when the data layer carries an event with an exact name. The site pushes {event: 'signup_complete'} and the trigger waits for that name.</summary>
  </entry>

  <entry>
    <title>Build a timer trigger: fire a tag on a schedule, not on a click</title>
    <link href="https://trackingrunbook.com/guides/timer-trigger/"/>
    <id>https://trackingrunbook.com/guides/timer-trigger/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A timer trigger fires every interval you set, up to a limit: 30,000 milliseconds, 10 times, is 300,000 milliseconds — 300 seconds, 5 minutes of measurement.</summary>
  </entry>

  <entry>
    <title>Build a YouTube video trigger: measure starts, progress and completions</title>
    <link href="https://trackingrunbook.com/guides/youtube-video-trigger/"/>
    <id>https://trackingrunbook.com/guides/youtube-video-trigger/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A YouTube video trigger fires at the progress points you pick — 10, 25, 50 and 75 percent of a 240-second video are 24, 60, 120 and 180 seconds in.</summary>
  </entry>

  <entry>
    <title>Tag sequencing and firing priority: the order tags fire in, under your control</title>
    <link href="https://trackingrunbook.com/guides/tag-sequencing-and-firing-priority/"/>
    <id>https://trackingrunbook.com/guides/tag-sequencing-and-firing-priority/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Firing priority is a number — higher fires first, 0 is the default. Sequencing is a promise: this tag fires before that tag, and the second waits for the first.</summary>
  </entry>

  <entry>
    <title>Add a tag exception: stop a tag firing on one page without touching the tag</title>
    <link href="https://trackingrunbook.com/guides/tag-exceptions/"/>
    <id>https://trackingrunbook.com/guides/tag-exceptions/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>An exception is a blocking trigger: the tag fires wherever its firing trigger says, except where the exception says. All Pages minus the checkout page fires on 5 of 6 pages.</summary>
  </entry>

  <entry>
    <title>Test a workspace in Preview mode: see what fires before anyone else does</title>
    <link href="https://trackingrunbook.com/guides/preview-mode-tag-assistant/"/>
    <id>https://trackingrunbook.com/guides/preview-mode-tag-assistant/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Preview mode loads your workspace draft as if it were published — only in your browser, only for you. Tag Assistant shows which tags fired, in which order, on each event.</summary>
  </entry>

  <entry>
    <title>Publish a Tag Manager version: Submit, check the changes, name it, publish</title>
    <link href="https://trackingrunbook.com/guides/publish-a-gtm-version/"/>
    <id>https://trackingrunbook.com/guides/publish-a-gtm-version/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Publishing is Submit, then Publish and Create Version, then a name and a description. Nothing is live until that click — Preview tests the draft, the published version is what visitors load.</summary>
  </entry>

  <entry>
    <title>Resolve a workspace conflict: pick the workspace side or the latest side, one item at a time</title>
    <link href="https://trackingrunbook.com/guides/resolve-workspace-conflicts/"/>
    <id>https://trackingrunbook.com/guides/resolve-workspace-conflicts/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A conflict is one item changed in two places: your workspace and the latest version. The tool shows both side by side — pick one per item, never both.</summary>
  </entry>

  <entry>
    <title>Manage Tag Manager users and permissions: two account levels, five container levels</title>
    <link href="https://trackingrunbook.com/guides/manage-gtm-users-and-permissions/"/>
    <id>https://trackingrunbook.com/guides/manage-gtm-users-and-permissions/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Account access is User or Administrator. Container access is No access, Read, Edit, Approve or Publish. Give the lowest level that lets the person do their job — and keep two administrators.</summary>
  </entry>

  <entry>
    <title>Export and import a container, and watch its size: merge versus overwrite, and the reported 200 KB limit</title>
    <link href="https://trackingrunbook.com/guides/export-import-container-and-size-limits/"/>
    <id>https://trackingrunbook.com/guides/export-import-container-and-size-limits/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Export is Admin, then Export Container, then Download. Import is Overwrite or Merge. The container is widely reported to cap at 200 KB — Google warns at 70 percent, 143,360 bytes.</summary>
  </entry>

  <entry>
    <title>Create a GA4 account and property: the account name, the property name, and the two roles that gate the clicks</title>
    <link href="https://trackingrunbook.com/guides/create-ga4-account-and-property/"/>
    <id>https://trackingrunbook.com/guides/create-ga4-account-and-property/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Create the Analytics account, then the GA4 property inside it, with the reporting time zone and currency set before the first event arrives.</summary>
  </entry>

  <entry>
    <title>Add a web data stream: the stream that turns your website into a source of events</title>
    <link href="https://trackingrunbook.com/guides/add-web-data-stream/"/>
    <id>https://trackingrunbook.com/guides/add-web-data-stream/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Add a web data stream to the property, enter the website URL and a stream name, and the property gains its Measurement ID.</summary>
  </entry>

  <entry>
    <title>Find your Measurement ID: the G- ID that ties the tag to the property</title>
    <link href="https://trackingrunbook.com/guides/find-measurement-id/"/>
    <id>https://trackingrunbook.com/guides/find-measurement-id/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Open the web stream details page and copy the Measurement ID from Stream details — never retype it from memory.</summary>
  </entry>

  <entry>
    <title>Turn on scroll tracking: the 90% depth event in enhanced measurement</title>
    <link href="https://trackingrunbook.com/guides/enable-enhanced-measurement-scrolls/"/>
    <id>https://trackingrunbook.com/guides/enable-enhanced-measurement-scrolls/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Keep the Scrolls toggle on in enhanced measurement so GA4 fires a scroll event the first time a visitor reaches 90% of a page.</summary>
  </entry>

  <entry>
    <title>Turn on outbound click tracking: the click event that leaves your domain</title>
    <link href="https://trackingrunbook.com/guides/enable-enhanced-measurement-outbound-clicks/"/>
    <id>https://trackingrunbook.com/guides/enable-enhanced-measurement-outbound-clicks/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Keep the Outbound clicks toggle on so GA4 fires a click event with the link URL every time a visitor leaves your domain.</summary>
  </entry>

  <entry>
    <title>Turn on site search tracking: the five query parameters that trigger view_search_results</title>
    <link href="https://trackingrunbook.com/guides/enable-enhanced-measurement-site-search/"/>
    <id>https://trackingrunbook.com/guides/enable-enhanced-measurement-site-search/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Keep the Site search toggle on and add your search parameter if the site uses a non-standard one, so every search lands as view_search_results.</summary>
  </entry>

  <entry>
    <title>Turn on video engagement tracking: start, progress, and complete for embedded YouTube video</title>
    <link href="https://trackingrunbook.com/guides/enable-enhanced-measurement-video-engagement/"/>
    <id>https://trackingrunbook.com/guides/enable-enhanced-measurement-video-engagement/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Keep the Video engagement toggle on so embedded YouTube videos send video_start, video_progress at four thresholds, and video_complete.</summary>
  </entry>

  <entry>
    <title>Turn on file download tracking: the extensions that trigger file_download</title>
    <link href="https://trackingrunbook.com/guides/enable-enhanced-measurement-file-downloads/"/>
    <id>https://trackingrunbook.com/guides/enable-enhanced-measurement-file-downloads/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Keep the File downloads toggle on so every click on a PDF, spreadsheet, or zip sends a file_download event with the file name.</summary>
  </entry>

  <entry>
    <title>Install the Google tag with gtag.js: the snippet that goes right after the opening head tag</title>
    <link href="https://trackingrunbook.com/guides/install-google-tag-gtag/"/>
    <id>https://trackingrunbook.com/guides/install-google-tag-gtag/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Copy the Google tag from the stream's installation instructions and paste it immediately after the opening head tag on every page.</summary>
  </entry>

  <entry>
    <title>Configure your web data stream settings: enhanced measurement, tag settings, and the Measurement ID in one place</title>
    <link href="https://trackingrunbook.com/guides/configure-web-data-stream-settings/"/>
    <id>https://trackingrunbook.com/guides/configure-web-data-stream-settings/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Open the web stream details page once and work through its settings: the Measurement ID, enhanced measurement, and the tag settings underneath.</summary>
  </entry>

  <entry>
    <title>Install GA4 on WordPress with Site Kit: Google's official plugin places the tag</title>
    <link href="https://trackingrunbook.com/guides/install-ga4-wordpress/"/>
    <id>https://trackingrunbook.com/guides/install-ga4-wordpress/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Install Site Kit by Google, connect the Google account that can use the property, and let the plugin place the Google tag on every page.</summary>
  </entry>

  <entry>
    <title>Install GA4 on Shopify: the Google &amp; YouTube channel connects your property</title>
    <link href="https://trackingrunbook.com/guides/install-ga4-shopify/"/>
    <id>https://trackingrunbook.com/guides/install-ga4-shopify/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Install the Google &amp; YouTube channel in Shopify, connect the GA4 property, and the channel sends the shop's ecommerce events to GA4.</summary>
  </entry>

  <entry>
    <title>Define internal traffic: tag your office IP addresses so the filter can exclude them</title>
    <link href="https://trackingrunbook.com/guides/define-internal-traffic/"/>
    <id>https://trackingrunbook.com/guides/define-internal-traffic/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Define an internal traffic rule for the office IP addresses so GA4 tags the team's own visits with traffic_type internal.</summary>
  </entry>

  <entry>
    <title>Filter developer traffic: keep debug_mode events out of your reports</title>
    <link href="https://trackingrunbook.com/guides/filter-developer-traffic/"/>
    <id>https://trackingrunbook.com/guides/filter-developer-traffic/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Create a developer traffic data filter so events sent with debug_mode on never reach the reports.</summary>
  </entry>

  <entry>
    <title>Set up cross-domain measurement: one user, one session across two domains</title>
    <link href="https://trackingrunbook.com/guides/set-up-cross-domain-measurement/"/>
    <id>https://trackingrunbook.com/guides/set-up-cross-domain-measurement/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>List the second domain in the stream's Configure your domains settings so GA4 passes the same IDs across it with the _gl parameter.</summary>
  </entry>

  <entry>
    <title>Track subdomains in GA4: one property, one Measurement ID, no cross-domain setup</title>
    <link href="https://trackingrunbook.com/guides/track-subdomains-ga4/"/>
    <id>https://trackingrunbook.com/guides/track-subdomains-ga4/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Put the same Measurement ID on every subdomain and GA4 tracks the whole domain as one journey — no cross-domain setup needed.</summary>
  </entry>

  <entry>
    <title>GA4 account and property structure: how accounts, properties, and data streams fit together</title>
    <link href="https://trackingrunbook.com/guides/ga4-account-property-structure/"/>
    <id>https://trackingrunbook.com/guides/ga4-account-property-structure/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Learn the four levels — organization, account, property, data stream — and the limits at each level before creating anything.</summary>
  </entry>

  <entry>
    <title>Add users to a GA4 property: five roles, two levels, and the lowest role that works</title>
    <link href="https://trackingrunbook.com/guides/add-users-to-ga4-property/"/>
    <id>https://trackingrunbook.com/guides/add-users-to-ga4-property/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Add a user in Property access management, pick the lowest of the five roles that lets them do the job, and never share a login.</summary>
  </entry>

  <entry>
    <title>The GA4 setup checklist: twelve checks before you call the property done</title>
    <link href="https://trackingrunbook.com/guides/ga4-setup-checklist/"/>
    <id>https://trackingrunbook.com/guides/ga4-setup-checklist/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Work through twelve checks — property, stream, tag, toggles, retention, filters, users — and the property is set up rather than half set up.</summary>
  </entry>

  <entry>
    <title>Enable enhanced measurement: seven automatic events, no code changes</title>
    <link href="https://trackingrunbook.com/guides/enable-enhanced-measurement/"/>
    <id>https://trackingrunbook.com/guides/enable-enhanced-measurement/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Slide the enhanced measurement switch on in the web stream settings and GA4 starts sending seven automatic events right away.</summary>
  </entry>

  <entry>
    <title>Set a property's time zone and currency: the two choices that shape every report date</title>
    <link href="https://trackingrunbook.com/guides/set-property-time-zone-currency/"/>
    <id>https://trackingrunbook.com/guides/set-property-time-zone-currency/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Set the reporting time zone and currency when creating the property — and change the time zone no more than once a day afterwards.</summary>
  </entry>

  <entry>
    <title>Use the GA4 Setup Assistant: the checklist that finishes a new property</title>
    <link href="https://trackingrunbook.com/guides/use-ga4-setup-assistant/"/>
    <id>https://trackingrunbook.com/guides/use-ga4-setup-assistant/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Open the Setup Assistant in Admin after creating the property and work its list — data collection, settings, and links — until nothing is left.</summary>
  </entry>

  <entry>
    <title>Confirm GA4 is collecting data: Realtime now, standard reports in 24 to 48 hours</title>
    <link href="https://trackingrunbook.com/guides/confirm-ga4-collecting-data/"/>
    <id>https://trackingrunbook.com/guides/confirm-ga4-collecting-data/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Browse the site, open Realtime, and see the visit within minutes — then wait 24 to 48 hours before judging the standard reports.</summary>
  </entry>

  <entry>
    <title>Track logins with the recommended login event: method, the GA4 Event tag, and the check in DebugView</title>
    <link href="https://trackingrunbook.com/guides/login-event/"/>
    <id>https://trackingrunbook.com/guides/login-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send login with its method parameter through a GA4 Event tag, so every sign-in counts once and the split by method shows in the reports.</summary>
  </entry>

  <entry>
    <title>Track sign-ups with the recommended sign_up event: method, the GA4 Event tag, and the thank-you page trap</title>
    <link href="https://trackingrunbook.com/guides/sign-up-event/"/>
    <id>https://trackingrunbook.com/guides/sign-up-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send sign_up with its method parameter on the account-creation success, so new accounts count once and the split by method shows in the reports.</summary>
  </entry>

  <entry>
    <title>Track site search with the recommended search event: search_term, the GA4 Event tag, and the empty-query trap</title>
    <link href="https://trackingrunbook.com/guides/search-event/"/>
    <id>https://trackingrunbook.com/guides/search-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send search with its search_term parameter on every submitted query, so the words visitors actually type become a list in the reports.</summary>
  </entry>

  <entry>
    <title>Track search results pages with the view_search_results event: search_term, the GA4 Event tag, and the search-vs-results split</title>
    <link href="https://trackingrunbook.com/guides/view-search-results-event/"/>
    <id>https://trackingrunbook.com/guides/view-search-results-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send view_search_results with its search_term parameter when the results page loads, so searches and result views stay two separate counts.</summary>
  </entry>

  <entry>
    <title>Track shares with the recommended share event: method, content_type, item_id, and the GA4 Event tag</title>
    <link href="https://trackingrunbook.com/guides/share-event/"/>
    <id>https://trackingrunbook.com/guides/share-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send share with its method, content_type, and item_id parameters on the share action, so each channel's shares show per piece of content in the reports.</summary>
  </entry>

  <entry>
    <title>Track leads with the recommended generate_lead event: value, currency, and the GA4 Event tag</title>
    <link href="https://trackingrunbook.com/guides/generate-lead-event/"/>
    <id>https://trackingrunbook.com/guides/generate-lead-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send generate_lead with its value and currency parameters when a form or request lands, so every lead carries a monetary value into the reports.</summary>
  </entry>

  <entry>
    <title>Track content picks with the recommended select_content event: content_type, item_id, and the GA4 Event tag</title>
    <link href="https://trackingrunbook.com/guides/select-content-event/"/>
    <id>https://trackingrunbook.com/guides/select-content-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send select_content with its content_type and item_id parameters when a visitor picks a piece of content, so the most-picked items show in the reports.</summary>
  </entry>

  <entry>
    <title>Track onboarding with tutorial_begin and tutorial_complete: the two recommended events that make a completion rate</title>
    <link href="https://trackingrunbook.com/guides/tutorial-begin-complete-events/"/>
    <id>https://trackingrunbook.com/guides/tutorial-begin-complete-events/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send tutorial_begin when a visitor starts the onboarding tutorial and tutorial_complete when they finish, so the completion rate is one subtraction and one division.</summary>
  </entry>

  <entry>
    <title>Track form submissions with the recommended form_submit event: form_id, the GA4 Event tag, and the submit-vs-accepted split</title>
    <link href="https://trackingrunbook.com/guides/form-submit-event/"/>
    <id>https://trackingrunbook.com/guides/form-submit-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send form_submit with its form_id, form_name, form_destination, and form_submit_text parameters when a form is submitted, so each form's submissions show in the reports.</summary>
  </entry>

  <entry>
    <title>Track video watches with video_start and video_complete: the two recommended events that make a watch rate</title>
    <link href="https://trackingrunbook.com/guides/video-start-complete-events/"/>
    <id>https://trackingrunbook.com/guides/video-start-complete-events/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send video_start when playback begins and video_complete when it ends, with the video parameters, so the watch rate is one subtraction and one division.</summary>
  </entry>

  <entry>
    <title>Create a custom event in the GA4 interface: no code, from an existing event, with the 50-event limit</title>
    <link href="https://trackingrunbook.com/guides/create-event-in-ga4/"/>
    <id>https://trackingrunbook.com/guides/create-event-in-ga4/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Build a new event from one GA4 already collects — for example thank_you from page_view on the confirmation URL — without touching the site or the tags.</summary>
  </entry>

  <entry>
    <title>Create a custom event with a GA4 Event tag in Tag Manager: any name, any trigger, no interface limit</title>
    <link href="https://trackingrunbook.com/guides/custom-event-gtm-tag/"/>
    <id>https://trackingrunbook.com/guides/custom-event-gtm-tag/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Build a custom event as a GA4 Event tag on its own trigger, so an action GA4 does not already measure gets a name and parameters of your own.</summary>
  </entry>

  <entry>
    <title>Add an event parameter to a GA4 Event tag: one row, one variable, and the registration that makes it visible in reports</title>
    <link href="https://trackingrunbook.com/guides/add-event-parameter/"/>
    <id>https://trackingrunbook.com/guides/add-event-parameter/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Add a parameter to an existing GA4 Event tag — a data layer variable, one row in the tag, Preview, publish — then register it so the reports can use it.</summary>
  </entry>

  <entry>
    <title>The 25-parameter limit per event: count the parameters, keep the useful ones, drop the rest</title>
    <link href="https://trackingrunbook.com/guides/event-parameter-limit-25/"/>
    <id>https://trackingrunbook.com/guides/event-parameter-limit-25/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>An event can carry at most 25 parameters, and the 26th is dropped silently — audit the tag, count what it sends, and cut before the limit cuts for you.</summary>
  </entry>

  <entry>
    <title>Modify an event in the GA4 interface: change what an existing event measures, without touching the tags</title>
    <link href="https://trackingrunbook.com/guides/modify-event-in-ga4/"/>
    <id>https://trackingrunbook.com/guides/modify-event-in-ga4/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Edit a created event's conditions or parameters in the GA4 interface, so an event that nearly measures the right thing starts measuring it — with the warning that the change overwrites the original.</summary>
  </entry>

  <entry>
    <title>Rename an event in GA4: there is no rename button — the supported path is Modify, and history stays under the old name</title>
    <link href="https://trackingrunbook.com/guides/rename-event/"/>
    <id>https://trackingrunbook.com/guides/rename-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>GA4 has no rename button for an event. The supported way to change a name is to modify the created event or build a new one from it — and the old name's history is never renamed.</summary>
  </entry>

  <entry>
    <title>Mark an event as a key event: the star, the counting method, and the 30-event limit</title>
    <link href="https://trackingrunbook.com/guides/mark-key-event/"/>
    <id>https://trackingrunbook.com/guides/mark-key-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Mark generate_lead as a key event from the Events page, pick the counting method, and set a default value — so the action that matters gets counted as a key event from that day on.</summary>
  </entry>

  <entry>
    <title>Give an event a value: the value and currency parameters, and what they do in the reports</title>
    <link href="https://trackingrunbook.com/guides/event-value/"/>
    <id>https://trackingrunbook.com/guides/event-value/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Add the value and currency parameters to any event — not only purchases — so GA4 can sum it, report revenue from it, and pass it to Google Ads.</summary>
  </entry>

  <entry>
    <title>Event naming rules: 40 characters, letters numbers and underscores, and the names you must never reuse</title>
    <link href="https://trackingrunbook.com/guides/event-naming-rules/"/>
    <id>https://trackingrunbook.com/guides/event-naming-rules/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Name an event with lowercase letters, numbers, and underscores, starting with a letter, under 40 characters — and never reuse a reserved name or prefix for a different meaning.</summary>
  </entry>

  <entry>
    <title>Event count versus event users: the ratio that tells you whether an event fires once or all the time</title>
    <link href="https://trackingrunbook.com/guides/event-count-vs-event-users/"/>
    <id>https://trackingrunbook.com/guides/event-count-vs-event-users/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Divide event count by total users to get event count per active user — the number that says whether people trigger an event once or again and again.</summary>
  </entry>

  <entry>
    <title>See events in Realtime: the Event count by Event name card and the last 30 minutes</title>
    <link href="https://trackingrunbook.com/guides/events-in-realtime/"/>
    <id>https://trackingrunbook.com/guides/events-in-realtime/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Open the Realtime report after firing an event, read the Event count by Event name card, and click the event to check its parameters — the check that works within minutes.</summary>
  </entry>

  <entry>
    <title>Unmark a key event in GA4: remove the star, and what happens to the numbers</title>
    <link href="https://trackingrunbook.com/guides/unmark-key-event/"/>
    <id>https://trackingrunbook.com/guides/unmark-key-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Unmark a key event from the Key events tab in Admin, and read the reports knowing the change is forward-only.</summary>
  </entry>

  <entry>
    <title>The default key events GA4 creates: purchase, and what is already marked for you</title>
    <link href="https://trackingrunbook.com/guides/default-key-events-ga4/"/>
    <id>https://trackingrunbook.com/guides/default-key-events-ga4/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>GA4 marks purchase as a key event on its own. Check the Key events tab before you mark anything twice.</summary>
  </entry>

  <entry>
    <title>Key event counting method: once per event against once per session, and which to pick</title>
    <link href="https://trackingrunbook.com/guides/key-event-counting-method/"/>
    <id>https://trackingrunbook.com/guides/key-event-counting-method/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Keep once per event for purchases. Use once per session only when one count per visit is the definition you want.</summary>
  </entry>

  <entry>
    <title>Sessions with key events in GA4: what the metric counts, and how to read it</title>
    <link href="https://trackingrunbook.com/guides/sessions-with-key-events/"/>
    <id>https://trackingrunbook.com/guides/sessions-with-key-events/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Sessions with key events counts visits with at least one key event. It is the numerator of the session key event rate.</summary>
  </entry>

  <entry>
    <title>Session key event rate in GA4: the formula, and why it is not the key event count</title>
    <link href="https://trackingrunbook.com/guides/session-key-event-rate/"/>
    <id>https://trackingrunbook.com/guides/session-key-event-rate/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Session key event rate is sessions with a key event divided by sessions. Quote the rate with its denominator.</summary>
  </entry>

  <entry>
    <title>User key events in GA4: users who triggered a key event, and the user key event rate</title>
    <link href="https://trackingrunbook.com/guides/user-key-events/"/>
    <id>https://trackingrunbook.com/guides/user-key-events/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>User key events counts people, not visits. One user with three sessions and two purchases still counts once.</summary>
  </entry>

  <entry>
    <title>Key events in GA4 advertising reports: Conversion performance, and what stays out</title>
    <link href="https://trackingrunbook.com/guides/key-events-advertising-reports/"/>
    <id>https://trackingrunbook.com/guides/key-events-advertising-reports/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Google Ads conversions from key events appear in Advertising, under Conversion performance. They do not appear in standard reports.</summary>
  </entry>

  <entry>
    <title>Create a key event from an existing event in GA4: the Create event step, then the star</title>
    <link href="https://trackingrunbook.com/guides/create-key-event-from-existing-event/"/>
    <id>https://trackingrunbook.com/guides/create-key-event-from-existing-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Build the new event from the old one with a condition, then mark it. The key event only counts from creation.</summary>
  </entry>

  <entry>
    <title>Mark a key event through Tag Manager: the GA4 event tag, then the star in GA4</title>
    <link href="https://trackingrunbook.com/guides/key-event-via-tag-manager/"/>
    <id>https://trackingrunbook.com/guides/key-event-via-tag-manager/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send the event with a GA4 event tag in Tag Manager, confirm it in DebugView, then mark it as a key event in GA4.</summary>
  </entry>

  <entry>
    <title>Key event attribution in GA4: data-driven credit, and the 90-day lookback window</title>
    <link href="https://trackingrunbook.com/guides/key-event-attribution/"/>
    <id>https://trackingrunbook.com/guides/key-event-attribution/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>GA4 credits key events with data-driven attribution by default. The lookback window decides how far back a touch can reach.</summary>
  </entry>

  <entry>
    <title>Key event reporting lag in GA4: the 24-hour wait, the 24 to 48 hour standard reports, and 7 days of updates</title>
    <link href="https://trackingrunbook.com/guides/key-event-reporting-lag/"/>
    <id>https://trackingrunbook.com/guides/key-event-reporting-lag/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A key event marked today can take up to 24 hours to show in standard reports. Attributed key events can update for up to 7 days.</summary>
  </entry>

  <entry>
    <title>Key event for a form submit in GA4: generate_lead, the success signal, and the rate</title>
    <link href="https://trackingrunbook.com/guides/key-event-form-submit/"/>
    <id>https://trackingrunbook.com/guides/key-event-form-submit/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send generate_lead only when the form succeeds. Mark it as a key event, and count submissions against the business inbox.</summary>
  </entry>

  <entry>
    <title>Key event for a phone-number click in GA4: the tel link, the click event, and the rate</title>
    <link href="https://trackingrunbook.com/guides/key-event-phone-number-click/"/>
    <id>https://trackingrunbook.com/guides/key-event-phone-number-click/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send a click event when a visitor taps the phone number, and mark it as a key event. A tap is interest, not a booked call.</summary>
  </entry>

  <entry>
    <title>Key event rate by channel in GA4: compare organic, paid, and direct on the same key event</title>
    <link href="https://trackingrunbook.com/guides/key-event-rate-by-channel/"/>
    <id>https://trackingrunbook.com/guides/key-event-rate-by-channel/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Read the session key event rate per channel in Traffic acquisition, with the same key event and the same dates on every row.</summary>
  </entry>

  <entry>
    <title>Conversion against key event in GA4: the same action, two names, and which report holds each</title>
    <link href="https://trackingrunbook.com/guides/conversion-vs-key-event/"/>
    <id>https://trackingrunbook.com/guides/conversion-vs-key-event/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>A key event measures the action in GA4. A conversion is that key event shared with Google Ads to measure campaigns and bid.</summary>
  </entry>

  <entry>
    <title>Purchase as a key event for ecommerce: the key-event side of the order, not the tag</title>
    <link href="https://trackingrunbook.com/guides/purchase-as-key-event-ecommerce/"/>
    <id>https://trackingrunbook.com/guides/purchase-as-key-event-ecommerce/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Purchase is a key event by default in GA4. Read the key-event side: count, rate, and value, without rebuilding the tag.</summary>
  </entry>

  <entry>
    <title>Key event for file downloads in GA4: file_download, the file name, and the rate</title>
    <link href="https://trackingrunbook.com/guides/key-event-file-download/"/>
    <id>https://trackingrunbook.com/guides/key-event-file-download/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Mark file_download as a key event only when every download matters. Otherwise build a new event for the one file that does.</summary>
  </entry>

  <entry>
    <title>Key event for video plays in GA4: video_start, video_complete, and which one to mark</title>
    <link href="https://trackingrunbook.com/guides/key-event-video-play/"/>
    <id>https://trackingrunbook.com/guides/key-event-video-play/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Mark video_complete for a video that must be watched, and video_start only when starting is the outcome. Check the 10% progress marks.</summary>
  </entry>

  <entry>
    <title>Key event for newsletter sign-ups in GA4: sign_up, the confirmed subscriber, and the rate</title>
    <link href="https://trackingrunbook.com/guides/key-event-newsletter-sign-up/"/>
    <id>https://trackingrunbook.com/guides/key-event-newsletter-sign-up/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Send sign_up when the subscription is confirmed, and mark it. A sign-up form shown is not a subscriber.</summary>
  </entry>

  <entry>
    <title>Key event for outbound link clicks in GA4: outbound_click, the partner link, and the rate</title>
    <link href="https://trackingrunbook.com/guides/key-event-outbound-link-click/"/>
    <id>https://trackingrunbook.com/guides/key-event-outbound-link-click/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Mark outbound_click as a key event only for the links that earn the business something. Otherwise build a narrow event for one link.</summary>
  </entry>

  <entry>
    <title>Key events in GA4 Explore reports: build a free-form exploration on one key event</title>
    <link href="https://trackingrunbook.com/guides/key-events-explore-reports/"/>
    <id>https://trackingrunbook.com/guides/key-events-explore-reports/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>Build a free-form exploration with Event name as rows and Key events as the value. Filter to the key event before you read it.</summary>
  </entry>

  <entry>
    <title>Read the Tech details report: browser, device, operating system and screen resolution</title>
    <link href="https://trackingrunbook.com/guides/tech-details-report-read/"/>
    <id>https://trackingrunbook.com/guides/tech-details-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Tech details report shows the technology your visitors used — browser, device, operating system and screen resolution — one row per technology, ranked by users.</summary>
  </entry>

  <entry>
    <title>Read the Search terms report: the queries behind your clicks, once Search Console is linked</title>
    <link href="https://trackingrunbook.com/guides/search-terms-report-read/"/>
    <id>https://trackingrunbook.com/guides/search-terms-report-read/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The Search terms report shows the Google queries that brought people to your site — clicks, impressions, click-through rate and average position — but only after Search Console is linked.</summary>
  </entry>

  <entry>
    <title>Delete a user&amp;#x27;s data with the User Deletion API: one POST, one identifier, and the 63-day wait</title>
    <link href="https://trackingrunbook.com/guides/user-deletion-api/"/>
    <id>https://trackingrunbook.com/guides/user-deletion-api/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>The User Deletion API deletes one user&amp;#x27;s data by programmatic request — one POST, one identifier, and the analytics.edit scope — where the Admin screens handle one request at a time.</summary>
  </entry>

  <entry>
    <title>The events GA4 collects on its own: first_visit, session_start and user_engagement — and why you never recreate them</title>
    <link href="https://trackingrunbook.com/guides/automatically-collected-events/"/>
    <id>https://trackingrunbook.com/guides/automatically-collected-events/</id>
    <updated>2026-11-11T00:00:00-07:00</updated>
    <summary>GA4 collects first_visit, session_start, user_engagement and the rest of the automatic events with no code of yours — know which ones arrive on their own before you build a tag for one.</summary>
  </entry>
</feed>
