Crumbs · IntegrationsBack to analytics

Connect once. Keep the useful context.

Public integration instructions. Your website data and credentials are not included on this page.

Looker Studio / Data Studio

Use your own Google Apps Script connector to read daily aggregate reports from Crumbs. This deliberately transfers those aggregates to Google; decide whether that destination fits your company's policy.

  1. In Crumbs → API & exports, create an expiring Read reports key for the intended website.
  2. Create an Apps Script project. Copy the connector source into Code.gs and use the manifest template. Replace publisher and policy details with your organisation's information and use a 40 × 40 canonical Crumbs icon. Set CRUMBS_API_ORIGIN in the script and the matching urlFetchWhitelist prefix in the manifest to your verified Collection API origin. The endpoint is fixed in code so a report editor cannot redirect a stored credential.
  3. Follow Google's community connector deployment guide to create a deployment and open it in Looker Studio.
  4. Enter the read key in the connector's credential prompt. Enter the website ID as configuration. Each viewer supplies their own key. Never put the key in a tracking script, URL or report title.

The connector returns daily visitors, visits, pageviews, events, bounces, visit duration and engagement/scroll components. Visitor totals across days are daily estimates, not unique people across the period. Calculate bounce rate from summed bounces / visits and scroll from summed depth / samples; do not average percentages.

Key revocation, loss of the issuer's management access and a stale Hub directory stop new reads. Reports already stored at Google have Google's retention and sharing rules. Query limits remain visible as errors; the connector never replaces a failed report with zero. Large date ranges can exceed Google's connector runtime budget.

Goals, properties and revenue

Page and scroll goals are configured in Goals & revenue without website code. Quick goals use the optional download, outbound and form-submit tracking switches. Form submission counts an attempt, not server-confirmed success.

<button data-crumbs-event="Demo: Open">Explore demo</button>

Allowlist properties under Settings before sending them. Choose controlled labels, never names, email addresses or account IDs.

window.crumbs('Purchase', {
  revenueMinor: 5900,
  currency: 'CHF',
  props: { plan: 'team' }
});

Send purchase events only after confirmation. Currency values use integer minor units and are never converted or combined. Attribution uses the visit's first source. Retries of the same event ID are deduplicated; independent calls after a reload are new events. Use a stable non-personal event ID through the server API if your purchase integration requires reliable idempotency. This is revenue analytics, not full cart/refund accounting.

REST API and SDK documentation

Collection and measurement boundaries

The tracker uses no cookies, localStorage or sessionStorage. It respects GPC, DNT and configured consent. This is not a blanket consent exemption. Native collection processes IP and User-Agent in replicated ingress; application events keep daily pseudonyms. See Data & privacy.

Known bot agents and a small documented referrer-spam list are filtered. This does not identify all automated or datacenter traffic. AI sources mean identifiable referrers such as chatgpt.com, not AI crawlers or a reliable record of every AI recommendation.

Raw event retention can be set from 1 to 1,827 days; it defaults to 365. The current event storage and 100,000-event query limits still apply. Selecting five years is not a capacity guarantee. Workload, infrastructure geography, backups and deletion behavior require an operator review.