Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="id">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
- <title>Redirect TikTok / Fallback</title>
- <style>
- body {
- margin: 0;
- height: 100vh;
- background-color: #f9f9f9;
- display: flex;
- align-items: center;
- justify-content: center;
- flex-direction: column;
- font-family: Arial, sans-serif;
- cursor: pointer;
- }
- .spinner {
- border: 8px solid #f3f3f3;
- border-top: 8px solid #1da1f2;
- border-radius: 50%;
- width: 60px;
- height: 60px;
- animation: spin 1s linear infinite;
- margin-bottom: 20px;
- }
- @keyframes spin {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(360deg); }
- }
- .loading-text {
- font-size: 18px;
- color: #333;
- text-align: center;
- padding: 0 20px;
- }
- </style>
- </head>
- <body>
- <div class="spinner"></div>
- <div class="loading-text">Ketuk di mana saja untuk membuka aplikasi TikTok...</div>
- <script>
- const googleAnalyticsId = "G-24B3XJ1HBG";
- const tiktokPixelId = "";
- const metaPixelId = "";
- const bingUetId = "";
- const tiktokUniversalLink = "https://www.tiktok.com/t/ZSHbUoSkCyof9-V7wfo";
- const fallbackLinks = [
- "https://www.profitableratecpm.com/jaa2t38j?key=fda8435518f5f6df82b3cd8fd76b8d1f"
- ];
- const randomFallback = fallbackLinks[Math.floor(Math.random() * fallbackLinks.length)];
- function isIOS() {
- return /iP(hone|od|ad)/i.test(navigator.userAgent);
- }
- function isSafari() {
- return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
- }
- function isIPadSafariModern() {
- return navigator.userAgent.includes("Macintosh") &&
- navigator.maxTouchPoints && navigator.maxTouchPoints > 1;
- }
- function openTikTokOnUserTap() {
- let alreadyClicked = false;
- const openApp = () => {
- if (alreadyClicked) return;
- alreadyClicked = true;
- const isiOS = isIOS() || isIPadSafariModern();
- if (isiOS && isSafari()) {
- // Coba buka universal link dulu
- window.location.href = tiktokUniversalLink;
- // Coba backup deep link
- setTimeout(() => {
- window.location.href = "tiktok://";
- }, 1000);
- } else {
- // Android atau selain Safari
- const appLink = "tiktok://open?url=" + encodeURIComponent(tiktokUniversalLink);
- window.location.href = appLink;
- // Fallback jika gagal
- setTimeout(() => {
- const hidden = document.hidden || document.webkitHidden;
- if (!hidden) {
- window.location.href = randomFallback;
- }
- }, 1500);
- document.addEventListener("visibilitychange", () => {
- if (document.hidden) clearTimeout();
- });
- }
- };
- document.body.addEventListener("click", openApp, { once: true });
- document.body.addEventListener("touchstart", openApp, { once: true });
- }
- function loadAnalyticsPixels() {
- if (googleAnalyticsId) {
- const gtagScript = document.createElement('script');
- gtagScript.src = `https://www.googletagmanager.com/gtag/js?id=${googleAnalyticsId}`;
- gtagScript.async = true;
- document.head.appendChild(gtagScript);
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', googleAnalyticsId);
- }
- if (tiktokPixelId) {
- !function (w, d, t) {
- w.TiktokAnalyticsObject = t;
- var ttq = w[t] = w[t] || [];
- ttq.methods = ["page", "track", "identify", "instances", "debug", "on", "off", "once", "ready", "alias", "group", "enableCookie"];
- ttq.setAndDefer = function (t, e) {
- t[e] = function () {
- t.push([e].concat(Array.prototype.slice.call(arguments, 0)))
- }
- };
- for (var i = 0; i < ttq.methods.length; i++) {
- ttq.setAndDefer(ttq, ttq.methods[i])
- }
- ttq.instance = function (t) {
- var e = ttq._i[t] || [];
- for (var n = 0; n < ttq.methods.length; n++) {
- ttq.setAndDefer(e, ttq.methods[n])
- }
- return e
- };
- ttq.load = function (e, n) {
- var i = "https://analytics.tiktok.com/i18n/pixel/events.js";
- ttq._i = ttq._i || {};
- ttq._i[e] = [];
- ttq._i[e]._u = i;
- ttq._t = ttq._t || {};
- ttq._t[e] = +new Date;
- ttq._o = ttq._o || {};
- ttq._o[e] = n || {};
- var o = document.createElement("script");
- o.type = "text/javascript";
- o.async = true;
- o.src = i;
- var a = document.getElementsByTagName("script")[0];
- a.parentNode.insertBefore(o, a)
- };
- ttq.load(tiktokPixelId);
- ttq.page();
- }(window, document, 'ttq');
- }
- if (metaPixelId) {
- !function(f,b,e,v,n,t,s){
- if(f.fbq)return;n=f.fbq=function(){n.callMethod?
- n.callMethod.apply(n,arguments):n.queue.push(arguments)};
- if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
- n.queue=[];t=b.createElement(e);t.async=!0;
- t.src=v;s=b.getElementsByTagName(e)[0];
- s.parentNode.insertBefore(t,s)
- }(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');
- fbq('init', metaPixelId);
- fbq('track', 'PageView');
- }
- if (bingUetId) {
- (function(w,d,t,r,u){
- var f,n,i;w[u]=w[u]||[],f=function(){
- var o={ti:bingUetId};o.q=w[u];w[u]=new UET(o);w[u].push("pageLoad");
- },n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){
- var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null);
- },i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i);
- })(window,document,"script","https://bat.bing.com/bat.js","uetq");
- }
- }
- document.addEventListener("DOMContentLoaded", function () {
- loadAnalyticsPixels();
- openTikTokOnUserTap();
- });
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment