
{
  "version": "5.1-INTEGRATION-COMPLETE",
  "lastUpdated": "2025-01-14",
  "basedOn": "codeExamples.ts and real production code",
  "installation_methods": {
    "sdk_recommande": {
      "url": "https://lqppxmjtytwvsosfizdm.supabase.co/functions/v1/leadtracker-unified-sdk",
      "code_installation": "<!-- SDK v5.1 DÉDUPLICATION -->\n<script src=\"https://lqppxmjtytwvsosfizdm.supabase.co/functions/v1/leadtracker-unified-sdk\"></script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n  if (typeof window.LeadTrackerUnified === 'undefined') {\n    console.error('❌ SDK v5.1 non chargé');\n    return;\n  }\n  console.log('✅ Lead Tracker v5.1 opérationnel');\n  \n  setTimeout(() => {\n    const diagnostic = leadTracker.diagnostic();\n    console.log('🔍 Diagnostic v5.1:', diagnostic);\n  }, 1000);\n});\n</script>",
      "validation_automatique": true
    },
    "sdk_statique": {
      "url": "/leadtracker-unified-sdk.js",
      "usage": "Fallback si problème réseau",
      "meme_validation": true
    }
  },
  "exemples_production": {
    "ecommerce_complet": {
      "description": "Tracking automatique e-commerce avec détection montants",
      "code": "// E-commerce : Tracking automatique avec cookies v5.1\ndocument.addEventListener('DOMContentLoaded', function() {\n  if (window.location.pathname.includes('/checkout/success')) {\n    \n    const orderTotalSelectors = [\n      '#order-total', '.order-total', '#total-amount', \n      '.total-amount', '[data-order-total]'\n    ];\n    \n    let orderAmount = 0;\n    for (const selector of orderTotalSelectors) {\n      const element = document.querySelector(selector);\n      if (element) {\n        const amount = parseFloat(\n          element.textContent.replace(/[^0-9.,]/g, '').replace(',', '.')\n        );\n        if (amount > 0) {\n          orderAmount = amount;\n          break;\n        }\n      }\n    }\n    \n    if (orderAmount > 0) {\n      setTimeout(() => {\n        if (typeof leadTracker !== 'undefined' && leadTracker.hasAffiliateCode()) {\n          leadTracker.recordConversion({amount: orderAmount});\n        }\n      }, 1000);\n    }\n  }\n});",
      "patterns_detection": ["/checkout/success", "/order/complete", "/thank-you"]
    },
    "saas_workflow": {
      "description": "Lead puis conversion SaaS avec métadonnées",
      "code": "// SaaS : Lead puis conversion avec cookies v5.1\ndocument.addEventListener('DOMContentLoaded', function() {\n  // 1. Lead sur pages info\n  if (window.location.pathname.includes('/pricing') || \n      window.location.pathname.includes('/features')) {\n    \n    setTimeout(() => {\n      if (typeof leadTracker !== 'undefined' && leadTracker.hasAffiliateCode()) {\n        leadTracker.recordLead({\n          leadType: 'saas_interest',\n          metadata: {\n            source: 'pricing_page_visit',\n            page: window.location.pathname\n          }\n        });\n      }\n    }, 2000);\n  }\n  \n  // 2. Conversion sur succès\n  if (window.location.pathname.includes('/subscription/success')) {\n    const urlParams = new URLSearchParams(window.location.search);\n    let subscriptionAmount = urlParams.get('amount');\n    \n    if (subscriptionAmount) {\n      setTimeout(() => {\n        if (typeof leadTracker !== 'undefined' && leadTracker.hasAffiliateCode()) {\n          leadTracker.recordConversion({\n            amount: parseFloat(subscriptionAmount),\n            metadata: {\n              source: 'saas_subscription',\n              plan_type: urlParams.get('plan') || 'unknown'\n            }\n          });\n        }\n      }, 1000);\n    }\n  }\n});",
      "patterns_leads": ["/pricing", "/features", "/demo"],
      "patterns_conversions": ["/subscription/success", "/welcome", "/account/created"]
    }
  },
  "diagnostic_integration": {
    "composant_ui": "DiagnosticTab - Interface complète de test",
    "tests_automatiques": {
      "sdk_loaded": "Vérification window.LeadTrackerUnified",
      "instance_available": "Vérification window.leadTracker",
      "affiliate_code": "Détection code affiliation",
      "cors_headers": "Validation headers Supabase",
      "connectivity": "Test endpoints lead/conversion"
    },
    "code_diagnostic": "function testerInstallation() {\n  console.log('🔍 === TEST SDK v5.1 ===');\n  \n  console.log('1. SDK chargé:', typeof window.LeadTrackerUnified !== 'undefined' ? '✅' : '❌');\n  console.log('2. Instance:', typeof window.leadTracker !== 'undefined' ? '✅' : '❌');\n  \n  if (typeof leadTracker !== 'undefined') {\n    const hasCode = leadTracker.hasAffiliateCode();\n    console.log('3. Code affiliation:', hasCode ? '✅ ' + leadTracker.getAffiliateCode() : '❌');\n    \n    const diagnostic = leadTracker.diagnostic();\n    console.log('4. Diagnostic complet:', diagnostic);\n    \n    if (hasCode) {\n      leadTracker.recordLead({ leadType: 'test', metadata: { source: 'diagnostic_v5.1' } })\n        .then(result => console.log('5. Test connectivité: ✅', result))\n        .catch(error => console.log('5. Test connectivité: ❌', error));\n    }\n  }\n}"
  },
  "migration_v4_v5": {
    "differences_majeures": [
      "Headers CORS Supabase obligatoires",
      "Déduplication intégrée automatique",
      "Patterns de détection améliorés",
      "Diagnostic automatique intégré"
    ],
    "etapes_migration": [
      "1. Remplacer URL script par version v5.1",
      "2. Vider cache navigateur",
      "3. Tester avec ?ref=test123",
      "4. Vérifier diagnostic console",
      "5. Confirmer absence erreurs CORS"
    ],
    "code_migration": "// Remplacer cette ligne v4.0:\n// <script src=\"old-v4.0-url\"></script>\n\n// Par cette ligne v5.1:\n<script src=\"https://lqppxmjtytwvsosfizdm.supabase.co/functions/v1/leadtracker-unified-sdk\"></script>"
  },
  "plateformes_support": {
    "wordpress": "Plugin et code manuel",
    "shopify": "Intégration theme et checkout",
    "sites_custom": "JavaScript pur",
    "react_vue": "Intégration SPA",
    "cms_divers": "Code universel"
  }
}
