πŸ† US-Registered Digital Marketing Agency Trusted by 200+ brands Β· USA Β· UK Β· Canada Β· AUS
DEVELOPER TOOL

Open Graph Tag Generator β€” social share previews

Build clean Open Graph and Twitter Card meta tags and preview exactly how your link will look on Facebook, LinkedIn, and X.

Keep it under ~60 characters so it doesn't truncate.
Aim for 110–160 characters.
Live share preview
Arb Digital β€” Fast, High-Converting Websites
arbsbuy.com
0
Title chars
0
Desc chars
6
Tags generated
OK
Length status
Tip: Facebook and LinkedIn cache your OG tags β€” use their debug/inspector tools to force a re-scrape after changes.
Advertisement

The Open Graph tag generator on this page builds the exact `` tags that control how a URL looks when it's shared on Facebook, LinkedIn, Slack, Discord, and X (Twitter). Instead of memorizing property names or copy-pasting from an old project, you fill in a title, description, image, and URL, and the tool outputs a ready-to-paste block plus a live preview of the resulting share card.

This is one of a growing set of free developer utilities from Arb Digital, built the same way we build client sites β€” fast, accessible, and free of unnecessary bloat.

What This Open Graph Tag Generator Does

Open Graph is a protocol originally introduced by Facebook that lets any web page describe itself as a rich object in a social graph. When you paste a link into a chat app or social feed, the platform looks for a small set of `` tags in the page's ``. If they're present and well-formed, the platform renders a card with an image, headline, and description instead of a bare blue link. If they're missing, most platforms fall back to guessing from the page's `` and first image, which usually looks worse and sometimes pulls the wrong image entirely.</p> <p>This tool takes the five core Open Graph fields β€” title, description, URL, image, and type β€” along with the site name, and assembles the corresponding tags in the correct format. It also generates the matching Twitter Card tags, since X does not read Open Graph tags for its card image by default and expects its own `twitter:card` family. Filling both in means your link looks correct everywhere, not just on the platforms that respect the original OG spec.</p> <h2>How to Use It</h2> <ol> <li><strong>Enter your page title.</strong> This becomes the bold headline on the share card. Keep it close to your actual `<title>` tag so it reads consistently.</li> <li><strong>Write a description.</strong> One or two sentences that sell the click. Most platforms truncate around 110–160 characters, so the tool tracks your character count live.</li> <li><strong>Paste the canonical URL.</strong> Always use the full `https://` URL, including trailing slash if that's your site's convention, so the platform doesn't cache a duplicate variant.</li> <li><strong>Add an image URL.</strong> 1200Γ—630px is the safe universal size β€” it satisfies Facebook, LinkedIn, and X's large-image card without cropping oddly.</li> <li><strong>Pick og:type and the Twitter card style,</strong> then copy the generated block into your page's `<head>`, above the closing `</head>` tag.</li> </ol> <h2>How the Tags Are Structured</h2> <p>Open Graph properties follow a flat `og:property` naming convention rather than nested JSON, which is what makes them easy to hand-write once you know the pattern: `og:title`, `og:description`, `og:url`, `og:image`, `og:type`, and `og:site_name` are the six that cover the vast majority of real-world sharing needs. The official specification lives at <a href="https://ogp.me/" target="_blank" rel="noopener noreferrer">ogp.me</a>, maintained as the canonical reference for the protocol, and it documents optional fields like `og:image:width`, `og:image:height`, and locale variants for larger implementations.</p> <p>Twitter's card tags run in parallel and use the `twitter:` prefix instead of `og:` β€” `twitter:card`, `twitter:title`, `twitter:description`, and `twitter:image`. X's current documentation on card markup, hosted under its developer platform, is the authoritative source if you need less common card types like player cards for embedded video. Both tag families can coexist safely in the same `<head>`; browsers and crawlers simply ignore the properties they don't recognize.</p> <div class="ad-zone"><span class="ad-label">Advertisement</span><ins class="adsbygoogle" style="display:block;text-align:center" data-ad-format="auto" data-full-width-responsive="true" data-ad-client="ca-pub-5719786263050161" data-ad-slot="1762203027"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script></div> <h2>Why Open Graph Tags Matter for Click-Through Rate</h2> <p>A link shared without Open Graph tags is a wall of blue text competing against dozens of other posts in a feed. A link with a clean image, a punchy headline, and a tight description stops the scroll. Marketing teams routinely see meaningfully higher click-through rates on social posts once proper OG tags are in place, simply because the card looks intentional rather than accidental. This matters just as much for internal tools and documentation shared in Slack as it does for public marketing pages β€” a badly cropped auto-generated thumbnail undermines trust even before someone clicks.</p> <p>It's also worth noting that Open Graph tags are read by many chat apps beyond the big social networks β€” Slack, Discord, Microsoft Teams, WhatsApp link previews, and iMessage all use some flavor of OG parsing. Getting the tags right once means every one of those surfaces benefits, without platform-specific extra work.</p> <h2>Common Pitfalls With Open Graph Images</h2> <ul> <li><strong>Relative image paths.</strong> `og:image` must be an absolute URL (`https://...`), never a relative path like `/img/hero.jpg` β€” crawlers that fetch your page won't resolve relative paths reliably.</li> <li><strong>Images that are too small.</strong> Facebook requires a minimum of 200Γ—200px and strongly recommends 1200Γ—630px; images below the minimum may be dropped from the card entirely.</li> <li><strong>Forgetting to update after a redesign.</strong> Cached previews can persist for days. If your card still shows an old image after a change, use each platform's cache-refresh tool rather than waiting.</li> <li><strong>Mismatched `og:url`.</strong> If `og:url` points to a different URL than the one actually being shared, some platforms treat it as canonical and merge engagement stats onto the wrong link.</li> <li><strong>Missing `og:type`.</strong> Leaving this out defaults most parsers to `website`, which is fine for most pages, but articles and products benefit from their more specific types for richer rendering.</li> </ul> <div class="arb-note" style="border-left:4px solid var(--gold,#E8A020);background:var(--bg-soft);padding:16px 20px;border-radius:8px;margin:22px 0;"> <strong>Need your whole site's social presence handled, not just one tag block?</strong> <p style="margin:6px 0 10px;">Arb Digital builds fast, SEO-ready websites where Open Graph, schema markup, and page speed are baked in from day one β€” not bolted on afterward. See what we build.</p> <a class="btn" href="/services/">Our Services</a> <a class="btn btn-secondary" href="/tools/">All Free Tools</a> </div> <h2>Common Mistakes to Avoid</h2> <ul> <li>Writing a title that doesn't match the page's actual `<title>` tag, which can look deceptive to users and to search engines.</li> <li>Using an image with important text or a logo pushed to the far edges β€” platforms crop differently, and edge content often gets cut off.</li> <li>Skipping `twitter:card` entirely and assuming Open Graph tags alone will render properly on X β€” they usually won't produce the large-image card without it.</li> <li>Leaving the description empty, which forces the platform to auto-extract body text that's often the wrong sentence.</li> <li>Not testing before publishing β€” always paste the live URL into a platform's official debugger before considering the job done.</li> </ul> <h2>Related Free Tools From Arb Digital</h2> <p>Pair this generator with the <a href="/cron-expression-generator/">Cron Expression Generator</a> for scheduling backend jobs, the <a href="/string-to-slug/">String to Slug Converter</a> for clean URL paths, and the <a href="/json-to-xml/">JSON to XML Converter</a> for API data transforms. Browse the full <a href="/tools/">free online tools hub</a> for more.</p> <h2>The Tags That Actually Change Your Share Preview</h2> <p>When someone pastes your link into Facebook, LinkedIn, Slack or iMessage, the rich card that appears is built almost entirely from four Open Graph tags: <code>og:title</code>, <code>og:description</code>, <code>og:image</code> and <code>og:url</code>. Miss them and platforms fall back to guessing — often grabbing your generic site name, a stray paragraph, and whatever image they can find, which is frequently a logo or nothing at all. Setting them explicitly is the single highest-leverage thing you can do for how your content looks when shared, and it directly affects click-through: a clear headline and a compelling image can multiply the clicks a link earns in a feed.</p> <p><code>og:image</code> does the heaviest lifting because the picture dominates the card visually. <code>og:title</code> should be a punchy, specific headline rather than your page's raw <code><title></code> tag, and <code>og:description</code> is your one or two sentences of persuasion. Twitter/X reads these too but also honours its own <code>twitter:card</code> family; setting <code>twitter:card</code> to <code>summary_large_image</code> is what upgrades a small thumbnail into the full-width image card most brands want. The generator above emits both sets so your preview looks intentional on every major platform at once.</p> <h2>Image Sizes, Caching and Debugging the Preview</h2> <p>Two practical gotchas trip up almost everyone. First, <strong>image dimensions</strong>: the widely recommended size is 1200×630 pixels (a 1.91:1 ratio) served over HTTPS at an absolute URL, not a relative path. Undersized or oddly shaped images get cropped awkwardly or rejected, and a relative <code>/image.jpg</code> that works in your browser will fail when a crawler on another domain tries to fetch it. Always give the full <code>https://…</code> address for <code>og:image</code> and <code>og:url</code>.</p> <p>Second, <strong>caching</strong>. Platforms scrape your tags once and cache the result aggressively, so if you fix your tags after a link has already been shared, the old preview can stubbornly persist. The remedy is each platform's debugging tool — Facebook's Sharing Debugger and LinkedIn's Post Inspector both let you re-scrape a URL and force a fresh preview, and they double as validators that show exactly what the crawler sees. Generate your tags with the tool here, paste them into your page's <code><head></code>, then run the URL through those debuggers before you announce anything; it turns "why does my link look broken" into a two-minute fix.</p> <h2>Structured Data and Fallbacks Beyond Open Graph</h2> <p>Open Graph tags control social previews, but they are one member of a small family of metadata worth setting together. The classic <code><meta name="description"></code> still feeds the snippet many search engines show, and it is a separate tag from <code>og:description</code> — setting one does not set the other, which is why pages sometimes have a great share preview but a blank search snippet, or vice versa. A thorough head section defines both, plus a real <code><title></code>, so every surface that quotes your page has something intentional to show.</p> <p>It also pays to design graceful <strong>fallbacks</strong>. If <code>og:title</code> is missing a platform drops back to <code><title></code>; if <code>og:image</code> is missing it may pick any image on the page or nothing at all. Rather than rely on that lottery, set the tags explicitly and treat a strong default share image as part of your template so even a hastily published page never looks broken when shared. Combined with the debugging tools each platform provides, this "belt and braces" approach — Open Graph for social, meta description for search, sensible defaults for everything else — is what makes a link look polished no matter where it lands.</p> <h2>Frequently Asked Questions</h2> <div class="faq-item"><strong>What is an Open Graph tag generator used for?</strong><p>It builds the `<meta property="og:...">` and Twitter Card tags that control how a URL's title, description, and image appear when shared on social platforms and chat apps.</p></div> <div class="faq-item"><strong>What image size should I use for og:image?</strong><p>1200Γ—630 pixels is the widely recommended size β€” it fills Facebook, LinkedIn, and X's large-image card cleanly without awkward cropping.</p></div> <div class="faq-item"><strong>Why does my link still show the old preview after I updated the tags?</strong><p>Social platforms cache Open Graph data. Use Facebook's Sharing Debugger or LinkedIn's Post Inspector to force a fresh scrape of the page.</p></div> <div class="faq-item"><strong>Do I need both Open Graph and Twitter Card tags?</strong><p>Yes for full coverage. Open Graph tags drive Facebook, LinkedIn, and most chat apps; X primarily reads its own `twitter:card` tags for card rendering.</p></div> <div class="faq-item"><strong>Can og:image be a relative URL?</strong><p>No, it must be a full absolute URL starting with https:// so crawlers on other domains can fetch it correctly.</p></div> <div class="faq-item"><strong>Is this Open Graph tag generator free to use?</strong><p>Yes, it runs entirely in your browser at no cost, with no sign-up and no limit on how many tag sets you generate.</p></div> </article> <div class="ad-zone"><span class="ad-label">Advertisement</span><ins class="adsbygoogle" style="display:block;text-align:center" data-ad-format="auto" data-full-width-responsive="true" data-ad-client="ca-pub-5719786263050161" data-ad-slot="1762203027"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({});</script></div> <script type="application/ld+json"> { "@context":"https://schema.org","@graph":[ {"@type":"WebApplication","name":"Open Graph Tag Generator","url":"https://www.arbsbuy.com/og-tag-generator/","description":"Generate Open Graph and Twitter Card meta tags with a live social share preview.","applicationCategory":"UtilitiesApplication","operatingSystem":"All","browserRequirements":"Requires JavaScript","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"publisher":{"@type":"Organization","name":"Arb Digital","url":"https://www.arbsbuy.com/"}}, {"@type":"BreadcrumbList","itemListElement":[ {"@type":"ListItem","position":1,"name":"Home","item":"https://www.arbsbuy.com/"}, {"@type":"ListItem","position":2,"name":"Free Tools","item":"https://www.arbsbuy.com/tools/"}, {"@type":"ListItem","position":3,"name":"Open Graph Tag Generator","item":"https://www.arbsbuy.com/og-tag-generator/"} ]}, {"@type":"FAQPage","mainEntity":[ {"@type":"Question","name":"What is an Open Graph tag generator used for?","acceptedAnswer":{"@type":"Answer","text":"It builds the meta property og tags and Twitter Card tags that control how a URL's title, description, and image appear when shared on social platforms and chat apps."}}, {"@type":"Question","name":"What image size should I use for og:image?","acceptedAnswer":{"@type":"Answer","text":"1200x630 pixels is the widely recommended size, it fills Facebook, LinkedIn, and X's large-image card cleanly without awkward cropping."}}, {"@type":"Question","name":"Why does my link still show the old preview after I updated the tags?","acceptedAnswer":{"@type":"Answer","text":"Social platforms cache Open Graph data. Use Facebook's Sharing Debugger or LinkedIn's Post Inspector to force a fresh scrape of the page."}}, {"@type":"Question","name":"Do I need both Open Graph and Twitter Card tags?","acceptedAnswer":{"@type":"Answer","text":"Yes for full coverage. Open Graph tags drive Facebook, LinkedIn, and most chat apps; X primarily reads its own twitter:card tags for card rendering."}}, {"@type":"Question","name":"Can og:image be a relative URL?","acceptedAnswer":{"@type":"Answer","text":"No, it must be a full absolute URL starting with https:// so crawlers on other domains can fetch it correctly."}}, {"@type":"Question","name":"Is this Open Graph tag generator free to use?","acceptedAnswer":{"@type":"Answer","text":"Yes, it runs entirely in your browser at no cost, with no sign-up and no limit on how many tag sets you generate."}} ]} ]} </script> <script> function ogEsc(s){ return String(s).replace(/&/g,'&').replace(/"/g,'"').replace(/</g,'<').replace(/>/g,'>'); } function ogCalc(){ var title = document.getElementById('ogTitle').value || 'Untitled Page'; var desc = document.getElementById('ogDesc').value || ''; var url = document.getElementById('ogUrl').value || 'https://www.arbsbuy.com/'; var site = document.getElementById('ogSite').value || ''; var image = document.getElementById('ogImage').value || ''; var type = document.getElementById('ogType').value || 'website'; var twCard = document.getElementById('ogTwCard').value || 'summary_large_image'; var lines = []; lines.push('<meta property="og:title" content="' + ogEsc(title) + '">'); lines.push('<meta property="og:description" content="' + ogEsc(desc) + '">'); lines.push('<meta property="og:url" content="' + ogEsc(url) + '">'); lines.push('<meta property="og:type" content="' + ogEsc(type) + '">'); if(image){ lines.push('<meta property="og:image" content="' + ogEsc(image) + '">'); } if(site){ lines.push('<meta property="og:site_name" content="' + ogEsc(site) + '">'); } lines.push('<meta name="twitter:card" content="' + ogEsc(twCard) + '">'); lines.push('<meta name="twitter:title" content="' + ogEsc(title) + '">'); lines.push('<meta name="twitter:description" content="' + ogEsc(desc) + '">'); if(image){ lines.push('<meta name="twitter:image" content="' + ogEsc(image) + '">'); } document.getElementById('ogOutput').value = lines.join('\n'); document.getElementById('ogBig').textContent = title; var host = ''; try { host = url.replace(/^https?:\/\//,'').split('/')[0]; } catch(e){ host = url; } document.getElementById('ogSub').textContent = host; document.getElementById('ogA').textContent = title.length; document.getElementById('ogB').textContent = desc.length; document.getElementById('ogC').textContent = lines.length; var status = 'OK'; if(title.length > 70 || desc.length > 170){ status = 'Long'; } document.getElementById('ogD').textContent = status; } function ogCopy(){ var ta = document.getElementById('ogOutput'); ta.select(); ta.setSelectionRange(0, 999999); try { document.execCommand('copy'); } catch(e) {} if(navigator.clipboard && navigator.clipboard.writeText){ navigator.clipboard.writeText(ta.value).catch(function(){}); } var msg = document.getElementById('ogCopied'); msg.style.display = 'inline'; setTimeout(function(){ msg.style.display = 'none'; }, 1500); } ogCalc(); </script> </div> <section class="tool-related"> <h2>More Free Tools</h2> <div class="tool-related-grid"> <a href="/base64-encode-decode/"> <span class="n">Base64 Encode Decode</span> <span class="d">Encode text to Base64 or decode Base64 to text instantly, with UTF-8 a...</span> </a> <a href="/base64-encoder-decoder/"> <span class="n">Base64 Encoder & Decoder</span> <span class="d">Encode text to Base64 or decode it back instantly, with full Unicode s...</span> </a> <a href="/binary-to-text/"> <span class="n">Binary to Text</span> <span class="d">Convert space-separated 8-bit binary code into readable UTF-8 text ins...</span> </a> <a href="/border-radius-generator/"> <span class="n">Border Radius Generator</span> <span class="d">Drag four corner sliders, preview instantly, and copy ready-to-use CSS...</span> </a> <a href="/box-shadow-generator/"> <span class="n">Box Shadow Generator</span> <span class="d">Design a CSS box-shadow visually with offset, blur, spread, color and...</span> </a> <a href="/case-converter/"> <span class="n">Free Text Case Converter</span> <span class="d">Change text to UPPERCASE, lowercase, Title Case, camelCase, snake_case...</span> </a> </div> </section> </div></div> </main> <footer class="ftr-main" role="contentinfo"><div class="ftr-inner"><div class="ftr-cta-strip"><div class="ftr-cta-text"><strong>Ready to grow your business online?</strong> Get a free digital marketing audit from Arb Digital β€” no cost, no commitment. We'll show you exactly where you're losing customers.</div> <a href="/services/" class="ftr-cta-btn" aria-label="Get your free digital marketing audit">Explore Our Services β†’</a></div><div class="ftr-grid"><div class="ftr-col"> <a href="/" aria-label="Arb Digital Digital Marketing β€” Home"><div class="ftr-logo-wrap"><div class="ftr-logo-icon" aria-hidden="true"><img src="/favicon.svg" alt="Arb Digital" width="46" height="46"></div><div><div class="ftr-logo-name">Arb Digital</div><div class="ftr-logo-sub">Marketing Agency</div></div></div> </a><p class="ftr-desc">Arb Digital Digital Marketing delivers affordable, results-driven digital marketing services for small businesses worldwide β€” SEO, paid advertising, content marketing, web design, social media, and app development. Professional results. Transparent reporting. No contracts.</p><div class="ftr-badges" role="list"><div class="ftr-badge" role="listitem">🏒 Arbsbuy LLC β€” USA Registered Company</div><div class="ftr-badge" role="listitem">πŸ“… Founded January 2025</div><div class="ftr-badge" role="listitem">🌍 Worldwide Service β€” USA Β· UK Β· Canada Β· AUS Β· Global</div><div class="ftr-badge" role="listitem">⚑ Response Within 24 Business Hours</div></div><div class="ftr-social" role="list" aria-label="Social media"> <a class="ftr-soc-btn" href="https://www.facebook.com/arbsbuy" target="_blank" rel="noopener noreferrer" aria-label="Facebook" role="listitem">f</a> <a class="ftr-soc-btn" href="https://www.instagram.com/arbsbuy" target="_blank" rel="noopener noreferrer" aria-label="Instagram" role="listitem">ig</a> <a class="ftr-soc-btn" href="https://www.linkedin.com/company/arbsbuy" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" role="listitem">in</a> <a class="ftr-soc-btn" href="https://twitter.com/arbsbuy" target="_blank" rel="noopener noreferrer" aria-label="Twitter/X" role="listitem">𝕏</a> <a class="ftr-soc-btn" href="https://www.youtube.com/@arbsbuy" target="_blank" rel="noopener noreferrer" aria-label="YouTube" role="listitem">β–Ά</a></div></div><div class="ftr-col"><h4>Our Services</h4><nav class="ftr-links" aria-label="Services"> <a href="/seo-services/" class="ftr-link">SEO Services</a> <a href="/local-seo/" class="ftr-link">Local SEO</a> <a href="/technical-seo/" class="ftr-link">Technical SEO</a> <a href="/e-commerce-seo/" class="ftr-link">E-commerce SEO</a> <a href="/enterprise-seo/" class="ftr-link">Enterprise SEO</a> <a href="/link-building/" class="ftr-link">Link Building</a> <a href="/google-ads-ppc/" class="ftr-link">Google Ads / PPC</a> <a href="/facebook-instagram-ads/" class="ftr-link">Facebook & Instagram Ads</a> <a href="/youtube-advertising/" class="ftr-link">YouTube Advertising</a> <a href="/content-marketing/" class="ftr-link">Content Marketing</a> <a href="/email-marketing/" class="ftr-link">Email Marketing</a> <a href="/copywriting/" class="ftr-link">Copywriting</a> <a href="/affiliate-marketing/" class="ftr-link">Affiliate Marketing</a> <a href="/social-media-marketing/" class="ftr-link">Social Media Marketing</a> <a href="/web-design/" class="ftr-link">Web Design & Development</a> <a href="/woocommerce-store/" class="ftr-link">WooCommerce Store</a> <a href="/reputation-management/" class="ftr-link">Reputation Management</a> <a href="/app-development/" class="ftr-link">App Development</a> <a href="/services/" class="ftr-link all">View All 18 Services β†’</a></nav></div><div class="ftr-col"><h4>Quick Links</h4><nav class="ftr-links" aria-label="Quick links"> <a href="/digital-library/" class="ftr-link">eBook Store</a> <a href="/blog/" class="ftr-link">Blog & Resources</a> <a href="/about-us/" class="ftr-link">About Us</a> <a href="/contact-us/" class="ftr-link">Contact Us</a></nav><h4 style="margin-top:22px;">Free Tools</h4><div class="ftr-tools" role="list" aria-label="Free digital marketing tools"> <a href="https://pagespeed.web.dev" target="_blank" rel="noopener noreferrer" class="ftr-tool" role="listitem"> <span class="ftr-tool-icon">⚑</span><div><span class="ftr-tool-name">Google PageSpeed</span><span class="ftr-tool-desc">Test & improve page load speed</span></div> </a> <a href="https://search.google.com/search-console" target="_blank" rel="noopener noreferrer" class="ftr-tool" role="listitem"> <span class="ftr-tool-icon">πŸ”</span><div><span class="ftr-tool-name">Google Search Console</span><span class="ftr-tool-desc">Monitor your Google rankings</span></div> </a> <a href="https://analytics.google.com" target="_blank" rel="noopener noreferrer" class="ftr-tool" role="listitem"> <span class="ftr-tool-icon">πŸ“Š</span><div><span class="ftr-tool-name">Google Analytics 4</span><span class="ftr-tool-desc">Track traffic & conversions</span></div> </a> <a href="https://moz.com/domain-analysis" target="_blank" rel="noopener noreferrer" class="ftr-tool" role="listitem"> <span class="ftr-tool-icon">πŸ†</span><div><span class="ftr-tool-name">Moz Domain Authority</span><span class="ftr-tool-desc">Check your domain authority</span></div> </a> <a href="https://search.google.com/test/rich-results" target="_blank" rel="noopener noreferrer" class="ftr-tool" role="listitem"> <span class="ftr-tool-icon">πŸ“‹</span><div><span class="ftr-tool-name">Rich Results Test</span><span class="ftr-tool-desc">Validate your schema markup</span></div> </a></div></div><div class="ftr-col"><h4>Get In Touch</h4><div class="ftr-contact" role="list"><div class="ftr-ci" role="listitem"> <span class="ftr-ci-icon">πŸ“§</span><div class="ftr-ci-text"><a href="mailto:support@arbsbuy.com">support@arbsbuy.com</a><br>All enquiries & support</div></div><div class="ftr-ci" role="listitem"> <span class="ftr-ci-icon">πŸ“</span><div class="ftr-ci-text"><a href="/contact-us/">Contact Form</a><br>Response within 24 business hours</div></div><div class="ftr-ci" role="listitem"> <span class="ftr-ci-icon">πŸ•</span><div class="ftr-ci-text">Mon–Fri: 9:00 AM – 6:00 PM EST</div></div><div class="ftr-ci" role="listitem"> <span class="ftr-ci-icon">🏒</span><div class="ftr-ci-text">Operated by <span class="gold">Arbsbuy LLC</span><br>Registered β€” United States of America</div></div></div></div></div></div><div class="ftr-trust"><div class="ftr-trust-inner" role="list" aria-label="Trust signals"><div class="ftr-pay-badge" role="listitem">πŸ’³ Stripe</div><div class="ftr-pay-badge" role="listitem">πŸ’™ PayPal</div><div class="ftr-pay-badge" role="listitem">VISA</div><div class="ftr-pay-badge" role="listitem">Mastercard</div><div class="ftr-pay-badge" role="listitem">πŸ”’ SSL Secured</div><div class="ftr-pay-badge" role="listitem">🌍 GDPR Compliant</div><div class="ftr-pay-badge" role="listitem">πŸ‡ΊπŸ‡Έ CCPA Compliant</div><div class="ftr-llc-badge" role="listitem">🏒 Arbsbuy LLC β€” USA Registered</div></div></div><div class="ftr-bottom"><div class="ftr-bottom-inner"><p class="ftr-copy"> © <span id="ftr-year">2026</span> <strong>Arb Digital Digital Marketing</strong> β€” Operated by Arbsbuy LLC, United States of America. All Rights Reserved.</p><nav class="ftr-legal" aria-label="Legal links"> <a href="/privacy-policy/">Privacy Policy</a> <a href="/terms-conditions/">Terms & Conditions</a> <a href="/cookie-policy/">Cookie Policy</a> <a href="/returns-refunds/">Refund Policy</a> <a href="/disclaimer/">Disclaimer</a> <a href="/dmca/">DMCA Policy</a> <a href="/sitemap.xml">Sitemap</a></nav></div></div></footer> <div id="arbChat" class="arbc" aria-live="polite"> <button id="arbcLauncher" class="arbc-launcher" aria-label="Chat with us"> <svg class="arbc-ic-chat" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <svg class="arbc-ic-close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M18 6 6 18M6 6l12 12"/></svg> <span class="arbc-pulse"></span> </button> <div id="arbcTeaser" class="arbc-teaser" role="button" tabindex="0"> <button class="arbc-teaser-x" aria-label="Dismiss">×</button> <span class="arbc-teaser-av"><img src="/favicon.svg" alt="" width="30" height="30"></span> <p>πŸ‘‹ Hey! Want to <b>grow your business</b>? Ask me anything β€” a <b>free marketing proposal</b> is on the table!</p> </div> <div id="arbcPanel" class="arbc-panel" role="dialog" aria-label="Arb Digital live chat"> <div class="arbc-head"> <span class="arbc-av"><img src="/favicon.svg" alt="" width="38" height="38"></span> <div class="arbc-head-txt"> <b>Ask Arb Digital <span class="arbc-online"></span></b> <small>AI Assistant Β· replies in minutes</small> </div> <button id="arbcMin" class="arbc-min" aria-label="Minimize">–</button> </div> <div id="arbcBody" class="arbc-body"> <div class="arbc-msg bot"> <span class="arbc-bubble">πŸ‘‹ Hi! I'm your Arb Digital assistant. I can help with <b>digital marketing</b>, <b>eBooks</b> or <b>free tools</b>. How can I help?</span> </div> <div class="arbc-chips"> <button class="arbc-chip" data-q="I'm interested in digital marketing services">πŸ“ˆ Marketing services</button> <button class="arbc-chip" data-q="Show me your free marketing tools">🧰 Free tools</button> <button class="arbc-chip" data-q="Tell me about your eBooks membership">πŸ“š eBooks</button> </div> </div> <form id="arbcForm" class="arbc-input"> <input id="arbcText" type="text" placeholder="Type your message…" autocomplete="off" maxlength="1000" required> <button type="submit" aria-label="Send"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M3 11l18-8-8 18-2-7-8-3z"/></svg></button> </form> <div class="arbc-foot">Powered by Arb Digital AI Β· <a href="/contact-us/">Talk to a human</a></div> </div> </div> <style> .arbc{--n:#1B3A6B;--nd:#0d2347;--g:#E8A020;position:fixed;right:22px;bottom:22px;z-index:9999;font-family:var(--font-body,'Inter',sans-serif)} .arbc-launcher{width:62px;height:62px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--g),#c8841a);color:#fff;cursor:pointer;box-shadow:0 12px 30px rgba(232,160,32,.45);display:flex;align-items:center;justify-content:center;position:relative;transition:.25s} .arbc-launcher:hover{transform:scale(1.06)} .arbc-launcher svg{width:28px;height:28px;position:absolute;transition:.25s} .arbc-ic-close{opacity:0;transform:rotate(-90deg)} .arbc.open .arbc-ic-chat{opacity:0;transform:rotate(90deg)} .arbc.open .arbc-ic-close{opacity:1;transform:rotate(0)} .arbc-pulse{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 0 rgba(232,160,32,.5);animation:arbcp 2.2s infinite} .arbc.open .arbc-pulse{display:none} @keyframes arbcp{70%{box-shadow:0 0 0 16px rgba(232,160,32,0)}100%{box-shadow:0 0 0 0 rgba(232,160,32,0)}} .arbc-teaser{position:absolute;right:4px;bottom:80px;width:286px;background:#fff;border-radius:16px;box-shadow:0 16px 46px rgba(13,42,90,.3);padding:14px 30px 14px 14px;display:none;gap:11px;align-items:flex-start;cursor:pointer;animation:arbcpop .45s cubic-bezier(.2,.8,.2,1)} .arbc.show-teaser .arbc-teaser{display:flex} .arbc.open .arbc-teaser{display:none!important} @keyframes arbcpop{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}} .arbc-teaser-av img{border-radius:8px;display:block;flex-shrink:0} .arbc-teaser p{font-size:.84rem;line-height:1.45;color:#1e2b45;margin:0} .arbc-teaser-x{position:absolute;top:5px;right:9px;background:none;border:none;color:#9aa7bd;font-size:1.15rem;cursor:pointer;line-height:1} .arbc-teaser-x:hover{color:#1e2b45} .arbc-panel{position:absolute;right:0;bottom:78px;width:376px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 130px);background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(13,42,90,.34);display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(16px) scale(.97);pointer-events:none;transition:.28s cubic-bezier(.2,.8,.2,1)} .arbc.open .arbc-panel{opacity:1;transform:none;pointer-events:auto} .arbc-head{background:linear-gradient(135deg,var(--nd),var(--n));color:#fff;padding:15px 16px;display:flex;align-items:center;gap:11px} .arbc-av img{border-radius:10px;display:block} .arbc-head-txt{flex:1;line-height:1.25} .arbc-head-txt b{font-size:1rem;display:flex;align-items:center;gap:7px} .arbc-online{width:8px;height:8px;border-radius:50%;background:#27c93f;box-shadow:0 0 0 3px rgba(39,201,63,.25)} .arbc-head-txt small{color:#aebfd8;font-size:.74rem} .arbc-min{background:rgba(255,255,255,.12);border:none;color:#fff;width:28px;height:28px;border-radius:8px;font-size:1.2rem;cursor:pointer;line-height:1} .arbc-body{flex:1;overflow-y:auto;padding:18px 16px;background:#f6f8fc;display:flex;flex-direction:column;gap:12px} .arbc-msg{display:flex;max-width:86%} .arbc-msg.bot{align-self:flex-start} .arbc-msg.user{align-self:flex-end;justify-content:flex-end} .arbc-bubble{padding:11px 14px;border-radius:15px;font-size:.9rem;line-height:1.5;word-wrap:break-word} .arbc-msg.bot .arbc-bubble{background:#fff;color:#1e2b45;border:1px solid #e6ecf6;border-bottom-left-radius:4px;box-shadow:0 1px 3px rgba(13,42,90,.05)} .arbc-msg.user .arbc-bubble{background:linear-gradient(135deg,var(--n),#254b86);color:#fff;border-bottom-right-radius:4px} .arbc-bubble a{color:var(--g);font-weight:600;text-decoration:underline} .arbc-msg.user .arbc-bubble a{color:#ffd98a} .arbc-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px} .arbc-chip{background:#fff;border:1px solid #d6e0f0;color:var(--n);font-size:.8rem;font-weight:600;padding:.5em .85em;border-radius:20px;cursor:pointer;transition:.15s} .arbc-chip:hover{background:var(--n);color:#fff;border-color:var(--n)} .arbc-typing{display:flex;gap:4px;padding:12px 14px} .arbc-typing i{width:7px;height:7px;border-radius:50%;background:#b7c4dc;animation:arbct 1.2s infinite} .arbc-typing i:nth-child(2){animation-delay:.2s}.arbc-typing i:nth-child(3){animation-delay:.4s} @keyframes arbct{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}} .arbc-input{display:flex;gap:8px;padding:12px;border-top:1px solid #e6ecf6;background:#fff} .arbc-input input{flex:1;border:1.5px solid #dbe3f0;border-radius:24px;padding:.7em 1em;font-size:.9rem;outline:none;transition:.15s} .arbc-input input:focus{border-color:var(--g)} .arbc-input button{width:44px;height:44px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--g),#c8841a);color:#fff;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center} .arbc-input button svg{width:20px;height:20px} .arbc-input button:disabled{opacity:.5;cursor:default} .arbc-foot{text-align:center;font-size:.68rem;color:#9aa7bd;padding:7px;background:#fff} .arbc-foot a{color:var(--n);font-weight:600} .arbc-prods{display:flex;flex-direction:column;gap:8px;align-self:flex-start;max-width:94%} .arbc-prod{display:flex;gap:10px;background:#fff;border:1px solid #e6ecf6;border-radius:12px;padding:8px;align-items:center;box-shadow:0 1px 3px rgba(13,42,90,.05)} .arbc-prod-img{width:52px;height:52px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#f0f4fa;display:flex;align-items:center;justify-content:center} .arbc-prod-img img{width:100%;height:100%;object-fit:cover} .arbc-prod-ph{font-size:1.3rem} .arbc-prod-b{flex:1;min-width:0} .arbc-prod-n{display:block;font-size:.82rem;font-weight:600;color:#1e2b45;line-height:1.25;text-decoration:none;margin-bottom:4px} .arbc-prod-f{display:flex;align-items:center;justify-content:space-between;gap:8px} .arbc-prod-f b{color:var(--n);font-size:.9rem} .arbc-prod-add{background:var(--g);color:#fff;border:none;border-radius:16px;font-size:.75rem;font-weight:700;padding:.42em .95em;cursor:pointer;flex-shrink:0;transition:.15s} .arbc-prod-add:hover{background:#c8841a}.arbc-prod-add:disabled{opacity:.8;cursor:default} @media(max-width:480px){.arbc{right:14px;bottom:14px}.arbc-panel{width:calc(100vw - 24px);height:calc(100vh - 100px)}} </style> <script> (function(){ var root=document.getElementById('arbChat'),L=document.getElementById('arbcLauncher'), P=document.getElementById('arbcPanel'),B=document.getElementById('arbcBody'), F=document.getElementById('arbcForm'),T=document.getElementById('arbcText'), M=document.getElementById('arbcMin'); function toggle(o){root.classList[o===undefined?'toggle':(o?'add':'remove')]('open');if(root.classList.contains('open'))setTimeout(function(){T.focus()},250);} L.addEventListener('click',function(){root.classList.remove('show-teaser');toggle()}); M.addEventListener('click',function(){toggle(false)}); // proactive greeting teaser (once per browser session) var teaser=document.getElementById('arbcTeaser'); if(teaser){ var tx=teaser.querySelector('.arbc-teaser-x'); if(!sessionStorage.getItem('arbc_teaser')){ setTimeout(function(){if(!root.classList.contains('open'))root.classList.add('show-teaser');},4500); } teaser.addEventListener('click',function(e){if(e.target===tx)return;sessionStorage.setItem('arbc_teaser','1');root.classList.remove('show-teaser');toggle(true);}); tx.addEventListener('click',function(e){e.stopPropagation();sessionStorage.setItem('arbc_teaser','1');root.classList.remove('show-teaser');}); } function esc(s){return (s||'').replace(/[&<>"]/g,function(c){return{'&':'&','<':'<','>':'>','"':'"'}[c];});} function linkify(s){return esc(s).replace(/\*\*(.+?)\*\*/g,'<b>$1</b>').replace(/(^|[\s(])(\/[a-z0-9\-\/]+\/?)/g,'$1<a href="$2">$2</a>').replace(/(https?:\/\/[^\s<]+)/g,'<a href="$1" target="_blank" rel="noopener">$1</a>').replace(/\n/g,'<br>');} function add(role,html){var d=document.createElement('div');d.className='arbc-msg '+role;d.innerHTML='<span class="arbc-bubble">'+html+'</span>';B.appendChild(d);B.scrollTop=B.scrollHeight;return d;} function typing(){var d=document.createElement('div');d.className='arbc-msg bot';d.id='arbcTyping';d.innerHTML='<span class="arbc-bubble arbc-typing"><i></i><i></i><i></i></span>';B.appendChild(d);B.scrollTop=B.scrollHeight;} function untyping(){var t=document.getElementById('arbcTyping');if(t)t.remove();} var CSRF=(document.querySelector('meta[name=csrf-token]')||{}).content||''; function renderProducts(list){var w=document.createElement('div');w.className='arbc-prods';list.slice(0,4).forEach(function(p){var c=document.createElement('div');c.className='arbc-prod';var img=p.image?'<img src="'+esc(p.image)+'" alt="" loading="lazy">':'<span class="arbc-prod-ph">πŸ›οΈ</span>';c.innerHTML='<a href="'+esc(p.url)+'" class="arbc-prod-img">'+img+'</a><div class="arbc-prod-b"><a href="'+esc(p.url)+'" class="arbc-prod-n">'+esc(p.name)+'</a><div class="arbc-prod-f"><b>'+esc(p.price)+'</b><button class="arbc-prod-add" data-id="'+p.id+'">Add</button></div></div>';w.appendChild(c);});B.appendChild(w);B.scrollTop=B.scrollHeight;} document.addEventListener('click',function(e){var b=e.target.closest('.arbc-prod-add');if(!b||b.disabled)return;var id=b.getAttribute('data-id');b.disabled=true;b.textContent='…';fetch('/cart/add',{method:'POST',headers:{'Content-Type':'application/json','Accept':'application/json','X-CSRF-TOKEN':CSRF},body:JSON.stringify({product_id:parseInt(id,10),quantity:1})}).then(function(r){return r.json();}).then(function(d){b.textContent='βœ“ Added';var cc=document.querySelector('[data-cart-count]');if(cc&&d.count!=null)cc.textContent=d.count;}).catch(function(){b.disabled=false;b.textContent='Add';});}); var busy=false; function send(msg){ if(busy||!msg)return;busy=true; var chips=B.querySelector('.arbc-chips');if(chips)chips.remove(); add('user',esc(msg));typing(); fetch('/chat/message',{method:'POST',headers:{'Content-Type':'application/json','Accept':'application/json'},body:JSON.stringify({message:msg})}) .then(function(r){return r.json();}) .then(function(d){untyping();add('bot',linkify(d.reply||'Sorry, please try again.'));if(d.products&&d.products.length)renderProducts(d.products);}) .catch(function(){untyping();add('bot','Sorry, I had a connection issue. Please email support@arbsbuy.com.');}) .finally(function(){busy=false;}); } F.addEventListener('submit',function(e){e.preventDefault();var v=T.value.trim();if(!v)return;T.value='';send(v);}); document.addEventListener('click',function(e){var c=e.target.closest('.arbc-chip');if(c)send(c.getAttribute('data-q'));}); })(); </script> <script src="/assets/js/arbsbuy.js?v=1" defer></script> </body> </html>