Documentation
Tagioo reference docs
Technical detail for every part of the platform. New here? Start with the full setup guide instead — this page is for reference once you're up and running.
Getting Started
Every Tagioo account starts on the Free plan (15,000 events/month, forever). Launch flow, top to bottom:
- Create your Tagioo account and a GTM Server container
- Point a subdomain at Tagioo via one CNAME record
- Create a container in your Tagioo dashboard
- Generate and import Web + Server GTM templates via Setup Assistant
- Connect your store (WooCommerce plugin or the self-service Laravel Bridge)
- Test in Meta Events Manager and confirm events in your dashboard
See the full step-by-step walkthrough for screenshots and detail on each step.
WooCommerce Plugin
Download the Tagioo plugin from your dashboard's Setup Assistant, upload it under Plugins → Add New → Upload Plugin in WordPress, activate, and paste your container's tracking ID when prompted. No GTM4WP or manual dataLayer coding needed.
Once active, it automatically pushes these events to the dataLayer on every relevant page:
page_view— every page load, with page_location and page_title set explicitlyview_item— product page viewsadd_to_cart— cart additions, with product ID, price, quantitybegin_checkout— checkout page reachedpurchase— completed order, with transaction ID, value, and items- Hashed
user_data(email, phone) on purchase for Meta CAPI match quality, where available
Laravel Setup
This is the complete self-service order for connecting a Laravel ecommerce store. The private cPanel Bridge is connected and mapped first; the GTM files are generated only after Tagioo understands the store's orders.
Before starting: create one Web container and one Server container in Google Tag Manager, create the Tagioo container and tracking domain, and make sure the customer can access cPanel File Manager and Cron Jobs. Add only the Web GTM ID to the Laravel website.
Step 1 — Select Laravel and create the private Bridge package
- Open Tagioo → Setup Assistant.
- Select Ecommerce and Laravel / Custom Ecommerce.
- Enter the store's public URL, including
https://, and confirm its default currency. - Continue to the Laravel Bridge area and click Download private ZIP.
The ZIP is unique to this store and tenant. Do not reuse it for another customer and do not share config.php or its private secret.
Step 2 — Upload and extract the Bridge in the cPanel home directory
- Open cPanel → File Manager.
- Go to the account's home directory, which is one level above
public_html. - Upload the private ZIP and click Extract.
- Confirm that the result is
/home/CPANEL_USERNAME/tagioo-bridge/and that it is outsidepublic_html. - Open
tagioo-bridge/README.txt. It contains the installation rules and the Cron command.
Step 3 — Add the once-per-minute Cron Job
- Open cPanel → Cron Jobs.
- Choose Once Per Minute. All five schedule fields should contain
*. - Paste the complete command from
README.txt. - Confirm the PHP executable, cPanel username, and Bridge path belong to this hosting account.
- Click Add New Cron Job.
Use the logging version during setup so any error is visible in cron.log. The log suffix does not make tracking work; it only records output. After the integration is Live, replace it with the production command below so the log does not grow forever.
Step 4 — Return to Tagioo and check the connection
- Wait one or two minutes for the first Cron run.
- Return to the Laravel Bridge area in Setup Assistant.
- Click Check connection.
- If the status remains Not connected, wait for another run and open
tagioo-bridge/cron.login File Manager.
About laravel_root: leave it blank. Tagioo detects the Laravel application automatically when the hosting account contains one app. Set it manually only if cron.log says that more than one Laravel app was found or Laravel could not be found.
Step 5 — Review Advanced mapping before activation
When the Bridge connects, Tagioo detects safe schema metadata—table and column names, not the customer's database password or historical customer records. A Needs mapping status means the Bridge is working but one or more detected choices need confirmation.
- Open Advanced mapping.
- Confirm the orders table, order total, status, created time, updated time, items table, item reference, product ID/name, item price, and quantity.
- For Order ID, choose the customer-facing invoice or order number—usually
invoice_id,invoice_number,invoice_no,order_number, ororder_no. Do not choose an internalidif the storefront displays a different invoice number. - For COD stores, add every database status that represents a valid placed order. This may include
pendingor a numeric value such as1. - Click Save mapping and detect again, wait for the next Cron run, and confirm Tagioo reports the mapping as ready.
invoice_id is selected instead of the internal row ID, and the store's valid COD status values are included.Click Activate tracking after the mapping is correct. Activation checkpoints existing orders, so only orders created afterward are treated as new purchases.
Step 6 — Select destinations and generate the Web and Server GTM files
- Continue through Setup Assistant to Select destinations.
- Check only the platforms the customer uses. GA4 and Meta are the initial defaults; Google Ads and TikTok remain excluded unless selected.
- Enter the credentials requested for those selected destinations.
- Generate and download
tagioo-web-template.jsonandtagioo-server-template.json. - Import the Web file into the Web GTM container and the Server file into the Server GTM container.
- For a clean first import, choose Merge. For an updated Tagioo template, choose Merge → Overwrite conflicting tags, triggers, and variables.
- Do not publish yet. Open Preview mode for both containers first.
Step 7 — Test the browser events in Web GTM Preview
- Connect GTM Preview to the Laravel website.
- Open one normal page, one product, add the product to the cart, continue to checkout, and complete one new order.
- Confirm the corresponding Tagioo tags fire on the correct event. One action should not create several independent browser copies.
Step 8 — Verify the backend Purchase in Tagioo
- Create the test order only after Bridge activation.
- Make sure the order reaches one of the valid mapped statuses.
- Wait up to two minutes for the Cron Job.
- Return to Tagioo and click Verify test order.
- Confirm the public invoice/order number, value, currency, items, and selected destinations.
Step 9 — Verify Meta browser/server deduplication
- Open Meta Events Manager → Test events and select Website.
- Use the same test event code entered in Tagioo and clear earlier activity before the new test.
- Browser and Server rows are expected. For one logical event, the event names and Event IDs must match exactly; Meta normally marks one row as Deduplicated.
- For Purchase, compare the Event ID with the public invoice/order ID mapped in Tagioo.
Step 10 — Publish and switch the Cron Job to production output
- Publish the Web and Server GTM containers after Tagioo, GTM Preview, and the selected destinations all pass.
- Edit the Cron command and replace the temporary
cron.logsuffix with> /dev/null 2>&1. - Leave the once-per-minute Cron Job enabled.
Duplicate events from existing website tracking
Keep the Laravel site's standard ecommerce dataLayer pushes, but disable older GTM tags or hard-coded fbq('track', ...), fbq('trackCustom', ...), and ttq.track(...) calls that send the same events directly.
Tagioo funnel Event IDs normally begin with tagioo-. An ID such as ob3_plugin-set_... is created by another script on the Laravel website, not by Tagioo.
ob3_plugin-set_ Event ID identifies a separate website-side Meta sender. Disable that duplicate sender if Tagioo is responsible for the same event.Safety, pausing, and removal
The Bridge uses read-only database SELECT queries, does not edit Laravel source files, and does not run migrations. Keep the ZIP, config.php, logs, and secret outside public_html. Use Pause tracking in Tagioo or disable the Cron Job for an immediate stop. Removing the Cron Job and tagioo-bridge folder removes the Bridge without changing the Laravel website.
GTM Setup Assistant
Prefer to follow along? Watch the complete Tagioo server-side tracking setup video ↗.
A 4-step wizard in your dashboard that generates two ready-to-import JSON files:
- web.json — imports into your Web GTM container: dataLayer listeners, the Custom Loader tag, and Consent Mode v2 defaults
- server.json — imports into your Server GTM container with the server tags and credentials required by the destinations selected in the assistant
For a first import, use Import Container → Merge. When updating an existing Tagioo setup, use Merge → Overwrite conflicting tags, triggers, and variables. Review in Preview mode, then Publish both containers.
First-party Domain & SSL
Point a subdomain you own at Tagioo with a single CNAME record:
Once DNS propagates (usually minutes, sometimes up to a few hours), Tagioo automatically provisions an SSL certificate via Let's Encrypt and renews it silently — no action needed from you. This is also the domain the Custom Loader uses to serve gtm.js/gtag.js first-party, which is what lets tracking survive Brave and most ad-blockers.
Offline Conversions
Available on Pro and Enterprise. Upload a CSV of phone, COD, or in-store orders from your dashboard's Offline Conversions view. Expected columns:
Email and phone are hashed client-side before upload. You'll see a validation preview before confirming, and every upload is logged with a per-batch history so you can see exactly what was sent to Meta CAPI and when.
Purchase Gap Alert
Tagioo compares today's purchase count against your trailing 7-day average, scaled for time of day so it doesn't false-positive at 9am. If today's count runs more than 50% below that baseline, a red banner appears in your dashboard the same day — instead of you noticing days later via a bad ROAS number.
On the Free plan, usage against your 15,000 events/month cycle is tracked the same way: you're notified by email and WhatsApp as you approach the limit (at rising thresholds from 10K events), and your container pauses if you reach 15,000 until the 30-day cycle resets or you upgrade.
Troubleshooting
Events not showing up in Meta Test Events? Confirm your Server GTM container is published (not just saved), check the container status in your Tagioo dashboard is "Running," and verify your domain's SSL certificate is issued (a padlock on https://track.yoursite.com).
Purchases missing after a WooCommerce order? Check the WordPress plugin is active and its container tracking ID matches your dashboard. Use the Purchase Inspector in your dashboard to search by order ID and see exactly which destinations (Meta, GA4) received it.
ROAS suddenly dropped? Check the dashboard's Purchase Gap Alert first — it's built for exactly this. If it's not flagging anything, check your 30-day table for a spike in errors on the affected day.
Still stuck? Message us on WhatsApp — free setup help.