try { window.analyzify.initialize = function () { try { window.analyzify.loadScript = function (callback) { callback(); }; window.analyzify.appStart = function () { try { analyzify.log('appStart', 'app-embed-v4'); // Retry configuration const MAX_RETRIES = 10; const INITIAL_DELAY = 500; // ms let retryCount = 0; function initializeServices(dataObj) { window.analyzify.initBing(dataObj, window.analyzify.properties.BING); if (window.analyzify.testing_environment) console.log('-> Bing initialized.'); window.analyzify.initGa4Gads(dataObj, window.analyzify.properties.GA4, window.analyzify.properties.GADS); if (window.analyzify.testing_environment) console.log('-> GA4 GADS initialized.'); window.analyzify.initGTM(dataObj, window.analyzify.properties.GTM); if (window.analyzify.testing_environment) console.log('-> GTM initialized.'); } function attemptInitialization() { // Check if appStartSection1 is available if (window.analyzify && typeof window.analyzify.appStartSection1 === 'function') { try { if (window.analyzify.testing_environment) console.log('Analyzify app_embed appStartSection1 loading...'); // Execute the section1 function window.analyzify.appStartSection1(); const dataObj = window.analyzify; if (!dataObj) { return analyzify.log('dataObj is not found'); } // Initialize all services initializeServices(dataObj); if (window.analyzify.testing_environment) console.log('Analyzify app_embed appStartSection1 completed.'); return true; // Success } catch (error) { console.error('Error executing appStartSection1 or services:', error); return false; } } else { // appStartSection1 not yet available retryCount++; if (retryCount <= MAX_RETRIES) { const delay = INITIAL_DELAY * Math.pow(2, Math.min(retryCount - 1, 5)); // Exponential backoff, max 3.2s if (window.analyzify.testing_environment) console.log(`-> AppStartSection1 is still unavailable. This may be due to script loading delays or interference (e.g., MutationObserver). Retrying in ${delay}ms... Attempt ${retryCount}/${MAX_RETRIES}`); setTimeout(attemptInitialization, delay); } else { console.error('AppStartSection1 failed to load after maximum retries. Some analytics services may not function properly.'); // Fallback: try to initialize services without appStartSection1 try { const dataObj = window.analyzify; if (dataObj) { if (window.analyzify.testing_environment) console.log('-> Attempting fallback initialization without appStartSection1...'); initializeServices(dataObj); } } catch (fallbackError) { console.error('Fallback initialization also failed:', fallbackError); } } return false; } } // Start the initialization attempt attemptInitialization(); } catch (error) { console.error("Error processing appStart:", error); } }; } catch (error) { console.error("Error processing initialize:", error); } }; window.analyzify.initial_load.initialize = true; analyzify.initialize(); analyzify.loadScript(function () { try { analyzify.appStart(); window.analyzify.initial_load.app_start = true; } catch (error) { console.error("Error processing loadScript:", error); } }); } catch (error) { console.error("Error processing initialize:", error); }