(403) 545-0195

Web Design

Your content goes here. Edit or remove this text inline.

Logo Design

Your content goes here. Edit or remove this text inline.

Web Development

Your content goes here. Edit or remove this text inline.

White Labeling

Your content goes here. Edit or remove this text inline.

VIEW ALL SERVICES 

TikTok for Business

Since its launch in 2016, TikTok has become one of the most popular social media platforms, with over 800 million active users worldwide.

Tiktok for small business

Reach a younger demographic

TikTok is a highly popular social media platform among younger audiences, and using it can help small businesses reach and engage with this demographic. By creating interesting and engaging content on TikTok, small businesses can increase their brand awareness among younger consumers.

Opportunity for virality

TikTok has a unique algorithm that helps content go viral quickly, giving small businesses the opportunity to increase their visibility and reach on the platform. With creative and engaging content, small businesses can quickly gain a large following and increase their brand recognition on TikTok.

Cost-effective marketing

Compared to other social media platforms, TikTok is relatively low-cost for businesses to advertise on. This means that small businesses with limited budgets can still create effective marketing campaigns and reach a large audience without breaking the bank.

TikTok's Power for Business Growth

TikTok’s Power for Business Growth

With over 500 million monthly active users, TikTok is a global sensation with users from all walks of life. Everyone uses TikTok to create and share fun videos, from kids to celebrities.

As the TikTok app grows in popularity, businesses are taking notice and creating engaging content to reach a new audience. Creating TikTok videos for your business can help you get a wider audience, connect with potential customers, and boost brand awareness.

Let’s Work Together

Take your business to the next level with TikTok. Let us help you plan, advertise, and create high-quality vertical videos that will capture your audience’s attention. Contact us now to get started!

Locations

Medicine Hat

Unit 102 101-1201 Kingsway Ave SE
Medicine Hat, AB  T1A2Y2

Calgary

Unit 2000 – 940 6 Ave SW, Calgary, AB T2P 3T1. 

Office Phone: (403) 800-1527
Cell Phone: (403) 878-6032

info@ifmedia.ca

/** * IF MEDIA INC. — VBOUT CRM Bridge v2 * JS · Divi > Theme Options > Integration > Body Code * OR enqueued via child theme (preferred) * * Single public namespace: window.IFSForms * * Modules * ─────── * 1. CONFIG — all constants and thresholds * 2. EVENTS — internal pub/sub lifecycle bus * 3. SDK LOADER — idempotent async script injection * 4. FIELD BRIDGE — polls for live VBOUT fields, builds registry * 5. OBSERVER — MutationObserver-based success detection * 6. SUBMIT ENGINE — public API, data injection, state machine */(function () { 'use strict';/* ───────────────────────────────────────────────────────────── 1. CONFIG ───────────────────────────────────────────────────────────── */ var CONFIG = { SCRIPT_SRC: 'https://www.vbt.io/ext/vbtforms.js?lang=en', SCRIPT_ID: 'ifs-vbout-sdk', SCRIPT_CHARSET: 'utf-8', BRIDGE_SELECTOR: '.ifs-crm-bridge', FORM_SELECTOR: '.ifs-crm-form', FORM_KEY_ATTR: 'data-form-key', BRIDGE_STATE_ATTR: 'data-bridge-state',/* How long to poll for VBOUT fields after SDK loads */ POLL_INTERVAL_MS: 200, POLL_TIMEOUT_MS: 12000,/* Max wait for VBOUT SDK script to load */ SDK_TIMEOUT_MS: 10000,/* requestIdleCallback budget */ IDLE_TIMEOUT_MS: 3000,/* * How long to observe the VBOUT wrapper for a success signal * after submit.click() fires. If nothing is detected in this * window, we emit 'submitted_unconfirmed' instead of 'success'. */ SUCCESS_TIMEOUT_MS: 8000,/* * Text/class patterns VBOUT uses to signal a successful * submission. These are observed in the wrapper's DOM. * Extend this list if VBOUT's output changes. */ SUCCESS_TEXT_PATTERNS: [ 'thank you', 'thanks', 'submitted', 'received', 'success', 'confirmation', ], SUCCESS_CLASS_PATTERNS: [ 'success', 'confirmation', 'thank', 'submitted', ], };/* ───────────────────────────────────────────────────────────── 2. EVENTS Internal pub/sub. Errors in subscribers never crash the bridge. Lifecycle events: sdk:loaded | sdk:error form:ready | form:error bridge:ready ready | error | submit | submitting | success | submitted_unconfirmed ───────────────────────────────────────────────────────────── */ var Events = (function () { var listeners = {};function on(event, fn) { if (typeof fn !== 'function') return; (listeners[event] = listeners[event] || []).push(fn); }function off(event, fn) { if (!listeners[event]) return; listeners[event] = listeners[event].filter(function (f) { return f !== fn; }); }function emit(event, payload) { (listeners[event] || []).forEach(function (fn) { try { fn(payload); } catch (_) {} }); }return { on: on, off: off, emit: emit }; })();/* ───────────────────────────────────────────────────────────── 3. SDK LOADER Injects the VBOUT script once. Guards against Divi partial re-renders, WP ajax navigation, and double-execution. ───────────────────────────────────────────────────────────── */ var SDKLoader = (function () { var loaded = false; var pending = false; var timer = null;function load() { if (document.getElementById(CONFIG.SCRIPT_ID)) { loaded = true; Events.emit('sdk:loaded'); return; } if (pending || loaded) return; pending = true;var script = document.createElement('script'); script.id = CONFIG.SCRIPT_ID; script.src = CONFIG.SCRIPT_SRC; script.async = true; script.charset = CONFIG.SCRIPT_CHARSET;timer = setTimeout(function () { if (!loaded) { pending = false; Events.emit('sdk:error', { reason: 'timeout' }); } }, CONFIG.SDK_TIMEOUT_MS);script.onload = function () { clearTimeout(timer); loaded = pending = false; loaded = true; Events.emit('sdk:loaded'); };script.onerror = function () { clearTimeout(timer); pending = false; Events.emit('sdk:error', { reason: 'load_error' }); };document.body.appendChild(script); }return { load: load }; })();/* ───────────────────────────────────────────────────────────── 4. FIELD BRIDGE Polls each .ifs-crm-form wrapper until VBOUT has injected its real /