{"id":5532,"date":"2026-04-17T17:15:38","date_gmt":"2026-04-17T17:15:38","guid":{"rendered":"https:\/\/immogo.com\/ad-generator-with-ai\/"},"modified":"2026-05-15T12:43:45","modified_gmt":"2026-05-15T12:43:45","slug":"ad-generator-with-ai","status":"publish","type":"page","link":"https:\/\/immogo.com\/en\/ad-generator-with-ai\/","title":{"rendered":"Ad generator with AI"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5532\" class=\"elementor elementor-5532 elementor-5407\">\n\t\t\t\t<div class=\"elementor-element elementor-element-706d3c0 e-flex e-con-boxed e-con e-parent\" data-id=\"706d3c0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-418d312 elementor-widget elementor-widget-heading\" data-id=\"418d312\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">A free expert writer at your service<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-595f353 e-flex e-con-boxed e-con e-parent\" data-id=\"595f353\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-89d25cc elementor-widget elementor-widget-text-editor\" data-id=\"89d25cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Writing a good real estate ad is harder than it looks. Most texts suffer from the same flaws: too many superlatives, not enough facts, clich\u00e9s that everyone recognizes and no one reads anymore. <\/p><p>This AI tool has been trained with the editorial rules that Immogo applies to every ad: show rather than tell, situate the property before describing it, give concrete information that only the seller knows, and eliminate everything else. <\/p><p>If needed, the AI agent will ask you a few targeted questions, then write a clear and effective proposal. You are free to modify it before publishing. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-246f6949 e-flex e-con-boxed e-con e-parent\" data-id=\"246f6949\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3da6b5a elementor-widget elementor-widget-html\" data-id=\"3da6b5a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=DM+Sans:wght@300;400;500&display=swap');\n  #immogo-gen *{box-sizing:border-box;margin:0;padding:0;}\n  #immogo-gen{font-family:'DM Sans',sans-serif;font-size:17px;color:#111;max-width:800px;margin:0 auto;padding:1rem 0 2rem;}\n  #immogo-gen .ig-toprow{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}\n  #immogo-gen .ig-subtitle{font-size:15px;color:#333;font-weight:300;flex:1;}\n  #immogo-gen .ig-heading{font-family:'DM Sans',sans-serif;font-size:20px;font-weight:500;color:#111;letter-spacing:-0.01em;flex:1;margin:0;}\n  #immogo-gen .ig-lang-switcher{display:flex;gap:4px;flex-shrink:0;}\n  #immogo-gen .ig-lang-btn{background:none;border:1px solid #ccc;border-radius:6px;padding:5px 12px;font-size:14px;font-family:'DM Sans',sans-serif;cursor:pointer;color:#444;transition:all 0.15s;}\n  #immogo-gen .ig-lang-btn.active{background:#1a1a1a;color:#fff;border-color:#1a1a1a;}\n  #immogo-gen .ig-progress-bar{display:flex !important;gap:6px !important;margin-bottom:1.5rem !important;height:auto !important;background:none !important;}\n  #immogo-gen .ig-progress-step{height:3px !important;flex:1 !important;border-radius:2px !important;background:#e0e0e0 !important;transition:background 0.3s !important;min-height:unset !important;max-height:3px !important;padding:0 !important;margin:0 !important;}\n  #immogo-gen .ig-progress-step.done{background:#1a1a1a !important;}\n  #immogo-gen .ig-progress-step.active{background:#888 !important;}\n  #immogo-gen .ig-phase{display:none;}\n  #immogo-gen .ig-phase.active{display:block;}\n  #immogo-gen .ig-section-label{font-size:12px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:#666;margin-bottom:1.25rem;}\n  #immogo-gen .ig-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;}\n  #immogo-gen .ig-form-group{display:flex;flex-direction:column;gap:8px;}\n  #immogo-gen .ig-form-group.full{grid-column:1\/-1;}\n  #immogo-gen label{font-size:15px;color:#222;font-weight:500;}\n  #immogo-gen input,#immogo-gen select,#immogo-gen textarea{font-family:'DM Sans',sans-serif;font-size:16px;border:1px solid #ddd;border-radius:6px;padding:10px 12px;width:100%;outline:none;transition:border 0.15s;background:#fff;color:#111;}\n  #immogo-gen input:focus,#immogo-gen select:focus,#immogo-gen textarea:focus{border-color:#888;}\n  #immogo-gen textarea{resize:vertical;min-height:110px;line-height:1.6;}\n  #immogo-gen .ig-btn-primary{background:#1a1a1a;color:#fff;border:none;border-radius:6px;padding:12px 28px;font-family:'DM Sans',sans-serif;font-size:16px;font-weight:500;cursor:pointer;transition:opacity 0.15s;display:inline-block;}\n  #immogo-gen .ig-btn-primary:hover{opacity:0.85;}\n  #immogo-gen .ig-btn-primary:disabled{opacity:0.4;cursor:not-allowed;}\n  #immogo-gen .ig-btn-secondary{background:none;border:1px solid #ccc;border-radius:6px;padding:12px 24px;font-family:'DM Sans',sans-serif;font-size:16px;cursor:pointer;color:#1a1a1a;transition:background 0.15s;}\n  #immogo-gen .ig-btn-secondary:hover{background:#f5f5f5;}\n  #immogo-gen .ig-chat-thread{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;max-height:460px;overflow-y:auto;padding-right:4px;}\n  #immogo-gen .ig-msg{display:flex;gap:10px;align-items:flex-start;}\n  #immogo-gen .ig-msg.user{flex-direction:row-reverse;}\n  #immogo-gen .ig-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;}\n  #immogo-gen .ig-avatar.ai{background:#f0f0f0;border:1px solid #e0e0e0;color:#888;font-family:'Playfair Display',serif;font-style:italic;font-size:14px;}\n  #immogo-gen .ig-avatar.human{background:#1a1a1a;color:#fff;}\n  #immogo-gen .ig-bubble{max-width:82%;padding:12px 16px;border-radius:12px;font-size:16px;line-height:1.65;border:1px solid #e8e8e8;}\n  #immogo-gen .ig-msg.ai .ig-bubble{background:#f7f7f7;border-radius:4px 12px 12px 12px;}\n  #immogo-gen .ig-msg.user .ig-bubble{background:#fff;border-radius:12px 4px 12px 12px;}\n  #immogo-gen .ig-typing{display:flex;gap:4px;align-items:center;padding:4px 0;}\n  #immogo-gen .ig-dot{width:7px;height:7px;border-radius:50%;background:#bbb;animation:igbounce 1.2s ease-in-out infinite;}\n  #immogo-gen .ig-dot:nth-child(2){animation-delay:0.2s;}\n  #immogo-gen .ig-dot:nth-child(3){animation-delay:0.4s;}\n  @keyframes igbounce{0%,80%,100%{transform:translateY(0);}40%{transform:translateY(-6px);}}\n  #immogo-gen .ig-reply-row{display:flex;gap:8px;align-items:flex-end;}\n  #immogo-gen .ig-reply-input{flex:1;font-size:16px;min-height:48px;max-height:120px;resize:none;border-radius:12px;line-height:1.5;padding:12px 16px;border:1px solid #ddd;font-family:'DM Sans',sans-serif;color:#111;}\n  #immogo-gen .ig-reply-input:focus{border-color:#888;outline:none;}\n  #immogo-gen .ig-send-btn{background:#1a1a1a;color:#fff;border:none;border-radius:50%;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;}\n  #immogo-gen .ig-send-btn:disabled{opacity:0.35;cursor:not-allowed;}\n  #immogo-gen .ig-result-card{background:#fff;border:1px solid #e8e8e8;border-radius:12px;overflow:hidden;margin-bottom:1.5rem;}\n  #immogo-gen .ig-result-header{background:#f7f7f7;padding:1rem 1.25rem;border-bottom:1px solid #e8e8e8;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}\n  #immogo-gen .ig-result-title{font-family:'Playfair Display',serif;font-size:16px;font-style:italic;color:#1a1a1a;}\n  #immogo-gen .ig-copy-btn{background:none;border:1px solid #ccc;border-radius:6px;padding:6px 14px;font-size:14px;cursor:pointer;color:#444;font-family:'DM Sans',sans-serif;}\n  #immogo-gen .ig-copy-btn:hover{background:#f0f0f0;}\n  #immogo-gen .ig-ad-section{padding:1.25rem;border-bottom:1px solid #f0f0f0;}\n  #immogo-gen .ig-ad-section:last-child{border-bottom:none;}\n  #immogo-gen .ig-ad-tag{font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:#888;margin-bottom:8px;}\n  #immogo-gen .ig-ad-content{font-size:16px;line-height:1.8;color:#111;white-space:pre-wrap;}\n  #immogo-gen .ig-ad-content.headline{font-family:'Playfair Display',serif;font-size:22px;font-weight:400;}\n  #immogo-gen .ig-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}\n  #immogo-gen .ig-error{font-size:15px;color:#c0392b;padding:10px 14px;background:#fdf0ef;border-radius:6px;margin-top:8px;display:none;}\n  #immogo-gen .ig-error.show{display:block;}\n  #immogo-gen .ig-banner{border:1px solid #e8e8e8;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;background:#f7f7f7;}\n  #immogo-gen .ig-banner-steps{margin:10px 0 14px;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;}\n  #immogo-gen .ig-banner-steps li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#333;line-height:1.5;}\n  #immogo-gen .ig-banner-steps li .ig-step-num{background:#1a1a1a;color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;margin-top:1px;}\n  #immogo-gen .ig-banner-warning{font-size:13px;color:#888;font-style:italic;margin-bottom:12px;}\n  #immogo-gen .ig-banner-title{font-size:16px;font-weight:500;margin-bottom:8px;color:#111;}\n  #immogo-gen .ig-banner-text{font-size:15px;color:#333;line-height:1.65;margin-bottom:14px;}\n  #immogo-gen .ig-immogo-btn{background:none;border:1px solid #ccc;border-radius:6px;padding:10px 18px;font-family:'DM Sans',sans-serif;font-size:15px;cursor:pointer;color:#1a1a1a;text-decoration:none;display:inline-block;transition:background 0.15s;}\n  #immogo-gen .ig-immogo-btn:hover{background:#fff;text-decoration:none;color:#1a1a1a;}\n  #immogo-gen .ig-immogo-btn.accent{background:#1a1a1a;color:#fff;border-color:#1a1a1a;}\n  #immogo-gen .ig-immogo-btn.accent:hover{opacity:0.85;background:#1a1a1a;color:#fff;}\n  #immogo-gen .ig-translate-note{font-size:13px;color:#999;margin-top:8px;font-style:italic;}\n  #immogo-gen .ig-lang-notice{display:none;font-size:15px;color:#444;padding:10px 14px;background:#f7f7f7;border-radius:6px;border:1px solid #e8e8e8;margin-bottom:1rem;}\n  #immogo-gen .ig-lang-notice.show{display:block;}\n  @media(max-width:580px){#immogo-gen .ig-form-grid{grid-template-columns:1fr;}#immogo-gen .ig-form-group.full{grid-column:1;}}\n  #immogo-gen .ig-path-toggle{display:flex;gap:0;margin-bottom:1.5rem;border:1px solid #ddd;border-radius:8px;overflow:hidden;}\n  #immogo-gen .ig-path-btn{flex:1;padding:12px 16px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:400;background:#fff;border:none;cursor:pointer;color:#666;transition:all 0.2s;line-height:1.3;}\n  #immogo-gen .ig-path-btn.active{background:#1a1a1a;color:#fff;font-weight:500;}\n  #immogo-gen .ig-path-btn:first-child{border-right:1px solid #ddd;}\n  #immogo-gen .ig-path-section{display:none;}\n  #immogo-gen .ig-path-section.active{display:block;}\n  #immogo-gen .ig-field-hint{font-size:13px;color:#888;margin-bottom:6px;font-style:italic;}\n  #immogo-gen .ig-essentials{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;}\n  #immogo-gen .ig-refine-panel{background:#f7f7f7;border:1px solid #e8e8e8;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;}\n  #immogo-gen .ig-refine-label{font-size:14px;font-weight:500;color:#222;margin-bottom:8px;}\n  #immogo-gen .ig-refine-hint{font-size:13px;color:#888;margin-bottom:10px;}\n  #immogo-gen .ig-refine-row{display:flex;gap:8px;align-items:flex-end;}\n  #immogo-gen .ig-refine-input{flex:1;font-size:15px;min-height:60px;max-height:120px;resize:none;border-radius:8px;line-height:1.5;padding:10px 14px;border:1px solid #ddd;font-family:'DM Sans',sans-serif;color:#111;}\n  #immogo-gen .ig-refine-input:focus{border-color:#888;outline:none;}\n  #immogo-gen .ig-refine-btn{background:#1a1a1a;color:#fff;border:none;border-radius:8px;padding:10px 18px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;}\n  #immogo-gen .ig-refine-btn:disabled{opacity:0.4;cursor:not-allowed;}\n<\/style>\n\n<div id=\"immogo-gen\">\n  <div class=\"ig-toprow\">\n    <h2 class=\"ig-heading\">AI listing generator<\/h2>\n    <div class=\"ig-lang-switcher\">\n      <button class=\"ig-lang-btn\" data-lang=\"fr\">FR<\/button>\n      <button class=\"ig-lang-btn\" data-lang=\"nl\">NL<\/button>\n      <button class=\"ig-lang-btn active\" data-lang=\"en\">EN<\/button>\n    <\/div>\n  <\/div>\n\n  <div class=\"ig-progress-bar\">\n    <div class=\"ig-progress-step active\" id=\"ig-step1\"><\/div>\n    <div class=\"ig-progress-step\" id=\"ig-step2\"><\/div>\n    <div class=\"ig-progress-step\" id=\"ig-step3\"><\/div>\n  <\/div>\n\n  <div class=\"ig-phase active\" id=\"ig-phase-form\">\n    <div class=\"ig-lang-notice\" id=\"ig-lang-notice\"><\/div>\n\n    <!-- Essentials: always visible -->\n    <div class=\"ig-essentials\">\n      <div class=\"ig-form-group\">\n        <label for=\"ig-prop-location\" id=\"ig-l-location\">Town and postal code<\/label>\n        <input type=\"text\" id=\"ig-prop-location\" placeholder=\"e.g. : Eymet 24500\">\n      <\/div>\n      <div class=\"ig-form-group\">\n        <label for=\"ig-prop-price\" id=\"ig-l-price\">Asking price (\u20ac)<\/label>\n        <input type=\"number\" id=\"ig-prop-price\" placeholder=\"ex : 395000\">\n      <\/div>\n    <\/div>\n\n    <!-- Path toggle -->\n    <div class=\"ig-path-toggle\">\n      <button class=\"ig-path-btn active\" id=\"ig-path-btn-paste\">\ud83d\udccb <span id=\"ig-path-label-paste\">I already have a text<\/span><\/button>\n      <button class=\"ig-path-btn\" id=\"ig-path-btn-scratch\">\u270f\ufe0f <span id=\"ig-path-label-scratch\">I'm starting from scratch<\/span><\/button>\n    <\/div>\n\n    <!-- Path 1: paste existing text -->\n    <div class=\"ig-path-section active\" id=\"ig-path-paste\">\n      <div class=\"ig-form-group full\">\n        <label for=\"ig-prop-desc\" id=\"ig-l-desc\">Paste your text below<\/label>\n        <div class=\"ig-field-hint\" id=\"ig-hint-paste\">The AI restructures your text, removes cliches and adds what's missing.<\/div>\n        <textarea id=\"ig-prop-desc\" style=\"min-height:160px;\" placeholder=\"Paste your existing listing here, even if imperfect. The AI does the rest.\"><\/textarea>\n      <\/div>\n    <\/div>\n\n    <!-- Path 2: structured fields -->\n    <div class=\"ig-path-section\" id=\"ig-path-scratch\">\n      <div class=\"ig-form-group full\" style=\"margin-bottom:1rem;\">\n        <label id=\"ig-l-intro\">Introduction and location<\/label>\n        <div class=\"ig-field-hint\" id=\"ig-hint-intro\">Property type, main assets, environment, peace, view, distances to shops and transport.<\/div>\n        <textarea id=\"ig-scratch-intro\" style=\"min-height:90px;\" placeholder=\"e.g. : Charming character house in a quiet village, 5 min walk to shops and 20 min from TGV station. Open views over the countryside.\"><\/textarea>\n      <\/div>\n      <div class=\"ig-form-group full\" style=\"margin-bottom:1rem;\">\n        <label id=\"ig-l-visit\">Description \/ property tour<\/label>\n        <div class=\"ig-field-hint\" id=\"ig-hint-visit\">Describe the rooms level by level. Areas, light, remarkable features.<\/div>\n        <textarea id=\"ig-scratch-visit\" style=\"min-height:90px;\" placeholder=\"e.g. : Ground floor: 40m2 living room with fireplace, open fitted kitchen. First floor: 3 bedrooms (15, 12, 10m2), bathroom with bath and shower.\"><\/textarea>\n      <\/div>\n      <div class=\"ig-form-group full\" style=\"margin-bottom:1rem;\">\n        <label id=\"ig-l-exterior\">Exterior and garden<\/label>\n        <div class=\"ig-field-hint\" id=\"ig-hint-exterior\">Garden, terrace, pool, garage, parking. Give dimensions and areas.<\/div>\n        <textarea id=\"ig-scratch-exterior\" style=\"min-height:80px;\" placeholder=\"e.g. : Landscaped garden of 1200m2 with no overlooking. Covered terrace 30m2. Double garage. Heated pool 8x4m.\"><\/textarea>\n      <\/div>\n      <div class=\"ig-form-group full\" style=\"margin-bottom:1rem;\">\n        <label id=\"ig-l-details\">Other information<\/label>\n        <div class=\"ig-field-hint\" id=\"ig-hint-details\">EPC, heating, year built, recent works, availability, property tax.<\/div>\n        <textarea id=\"ig-scratch-details\" style=\"min-height:70px;\" placeholder=\"e.g. : EPC C. Heat pump. Built in 1985, roof replaced 2020. Available immediately.\"><\/textarea>\n      <\/div>\n    <\/div>\n\n    <div class=\"ig-actions\" style=\"margin-top:1rem;\">\n      <button class=\"ig-btn-primary\" id=\"ig-btn-start\">Start AI interview<\/button>\n    <\/div>\n    <div class=\"ig-error\" id=\"ig-form-error\">Please fill in at least the town and a description.<\/div>\n  <\/div>\n\n  <div class=\"ig-phase\" id=\"ig-phase-chat\">\n    <div class=\"ig-section-label\" id=\"ig-label-interview\">AI interview<\/div>\n    <div class=\"ig-chat-thread\" id=\"ig-chat-thread\"><\/div>\n    <div class=\"ig-reply-row\">\n      <textarea class=\"ig-reply-input\" id=\"ig-reply-input\" placeholder=\"Your answer...\" rows=\"1\"><\/textarea>\n      <button class=\"ig-send-btn\" id=\"ig-send-btn\">&#8593;<\/button>\n    <\/div>\n    <div class=\"ig-error\" id=\"ig-chat-error\"><\/div>\n  <\/div>\n\n  <div class=\"ig-phase\" id=\"ig-phase-result\">\n    <div class=\"ig-section-label\" id=\"ig-label-result\">Your listing<\/div>\n    <div class=\"ig-banner\">\n      <div class=\"ig-banner-title\" id=\"ig-banner-title\">Your listing is ready. Here is how to publish it:<\/div>\n      <ol class=\"ig-banner-steps\" id=\"ig-banner-steps\">\n        <li><span class=\"ig-step-num\">1<\/span><span id=\"ig-step1-text\">Copy your text and save it somewhere (email to yourself, Notes, Word) \u2014 the page does not keep it.<\/span><\/li>\n        <li><span class=\"ig-step-num\">2<\/span><span id=\"ig-step2-text\">Create your Immogo account \u2014 from 17\u20ac\/month, no commission.<\/span><\/li>\n        <li><span class=\"ig-step-num\">3<\/span><span id=\"ig-step3-text\">Add your listing and paste your text into the form. We handle the FR and NL translations and monthly Facebook sharing.<\/span><\/li>\n      <\/ol>\n      <div style=\"display:flex;gap:8px;flex-wrap:wrap;align-items:center;\">\n        <a class=\"ig-immogo-btn accent\" href=\"https:\/\/forum.immogo.com\/fr\/membership-checkout\/\" target=\"_blank\" id=\"ig-banner-cta\">Create my Immogo account<\/a>\n        <a class=\"ig-immogo-btn\" href=\"https:\/\/forum.immogo.com\" target=\"_blank\" id=\"ig-banner-learn\">Learn more<\/a>\n      <\/div>\n      <div class=\"ig-translate-note\" id=\"ig-translate-note\" style=\"display:none;\"><\/div>\n    <\/div>\n    <div class=\"ig-result-card\">\n      <div class=\"ig-result-header\">\n        <div class=\"ig-result-title\" id=\"ig-result-title\">Your professional listing<\/div>\n        <div style=\"display:flex;gap:6px;flex-wrap:wrap;\">\n          <button class=\"ig-copy-btn\" id=\"ig-btn-copy\">Copy all<\/button>\n          <button class=\"ig-copy-btn\" id=\"ig-btn-translate\" style=\"display:none;\"><\/button>\n        <\/div>\n      <\/div>\n      <div id=\"ig-result-sections\"><\/div>\n    <\/div>\n    <div class=\"ig-refine-panel\">\n      <div class=\"ig-refine-label\" id=\"ig-refine-label\">Would you like to change something?<\/div>\n      <div class=\"ig-refine-hint\" id=\"ig-refine-hint\">Tell us what you'd like to change or add - the AI will refine the listing for you.<\/div>\n      <div class=\"ig-refine-row\">\n        <textarea class=\"ig-refine-input\" id=\"ig-refine-input\" placeholder=\"e.g. : The garden is 800m2, not 500m2. Add that the house is sold furnished.\"><\/textarea>\n        <button class=\"ig-refine-btn\" id=\"ig-refine-btn\">Refine \u2192<\/button>\n      <\/div>\n    <\/div>\n    <div class=\"ig-actions\">\n      <button class=\"ig-btn-primary\" id=\"ig-btn-regen\">Regenerate<\/button>\n      <button class=\"ig-btn-secondary\" id=\"ig-btn-restart\">New property<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\nfunction igInit() {\n  if (document.getElementById('immogo-gen') === null) return;\n  if (window._immogoInitDone) return;\n  window._immogoInitDone = true;\n\nvar PROXY = 'https:\/\/immogo.com\/api\/anthropic-proxy.php';\n\n\/\/ System prompt is handled server-side by the proxy.\n\nvar T = {\n  fr: {\n    subtitle:\"Decrivez votre bien. L'IA vous pose les bonnes questions, puis redige une annonce professionnelle \u2014 sans cliches.\",\n    labelBasics:\"Informations de base\", labelInterview:\"Entretien avec l'IA\", labelResult:\"Annonce generee\",\n    lType:\"Type de bien\", lLocation:\"Commune et code postal\", lPrice:\"Prix demande (euros)\", lSize:\"Surface habitable (m2)\",\n    lRooms:\"Chambres\", lYear:\"Annee de construction\", lDesc:\"Decrivez votre bien, ou collez votre texte ci-dessous\",\n    btnStart:\"Lancer l'entretien IA\", formError:\"Veuillez remplir au moins la commune et une description.\",\n    replyPh:\"Votre reponse...\", resultTitle:\"Votre annonce professionnelle\",\n    btnCopy:\"Copier tout\", btnRegen:\"Regenerer\", btnRestart:\"Nouveau bien\", copied:\"Copie !\",\n    tags:{TITLE:\"Titre\",INTRO:\"Accroche\",VISIT:\"Visite\",EXTERIOR:\"Exterieur\",DETAILS:\"Infos techniques\",HEADER:\"\"},\n    bannerTitle:\"Votre annonce est prete. Voici comment la publier :\",\n    bannerText:\"\",\n    step1:\"Copiez votre texte et sauvegardez-le (email a vous-meme, Notes, Word) \u2014 la page ne le conserve pas.\",\n    step2:\"Creez votre compte Immogo \u2014 abonnement a partir de 17 euros\/mois, sans commission.\",\n    step3:\"Ajoutez votre annonce et collez votre texte dans le formulaire. Nous nous occupons des traductions NL et EN et du partage mensuel sur Facebook.\",\n    bannerCta:\"Creer mon compte Immogo\", bannerLearn:\"En savoir plus\",\n    langNotice:\"\", translateBtn:\"\", translateNote:\"\",\n    pathLabelPaste:\"J'ai deja un texte\", pathLabelScratch:\"Je pars de zero\",\n    hintPaste:\"L'IA restructure votre texte, elimine les cliches et ajoute ce qui manque.\",\n    lIntro:\"Introduction et situation\", hintIntro:\"Type de bien, atouts principaux, environnement, calme, vue, distances des commerces et transports.\",\n    lVisit:\"Description \/ visite du bien\", hintVisit:\"Decrivez les pieces niveau par niveau. Surfaces, lumiere, equipements remarquables.\",\n    lExterior:\"Exterieur et jardin\", hintExterior:\"Jardin, terrasse, piscine, garage, parking. Donnez les surfaces et dimensions.\",\n    lDetails:\"Autres informations\", hintDetails:\"DPE, chauffage, annee de construction, travaux recents, disponibilite, taxe fonciere.\",\n    refineLabel:\"Vous voulez modifier quelque chose ?\",\n    refineHint:\"Indiquez ce que vous souhaitez changer ou ajouter \u2014 l'IA affine l'annonce pour vous.\",\n    refinePlaceholder:\"ex : Le jardin fait 800m2, pas 500m2. Ajoutez que la maison est vendue meublee.\",\n    refineBtn:\"Affiner\"\n  },\n  nl: {\n    subtitle:\"Beschrijf uw woning. De AI stelt de juiste vragen en schrijft een professionele advertentie zonder cliches.\",\n    labelBasics:\"Basisinformatie\", labelInterview:\"Gesprek met de AI\", labelResult:\"Gegenereerde advertentie\",\n    lType:\"Type woning\", lLocation:\"Gemeente en postcode\", lPrice:\"Vraagprijs (euro)\", lSize:\"Bewoonbare oppervlakte (m2)\",\n    lRooms:\"Slaapkamers\", lYear:\"Bouwjaar\", lDesc:\"Beschrijf uw woning, of plak uw tekst hieronder\",\n    btnStart:\"Start het AI-gesprek\", formError:\"Vul minstens de gemeente en een beschrijving in.\",\n    replyPh:\"Uw antwoord...\", resultTitle:\"Uw professionele advertentie\",\n    btnCopy:\"Alles kopieren\", btnRegen:\"Opnieuw genereren\", btnRestart:\"Nieuwe woning\", copied:\"Gekopieerd!\",\n    tags:{TITLE:\"Titel\",INTRO:\"Inleiding\",VISIT:\"Rondleiding\",EXTERIOR:\"Buitenruimte\",DETAILS:\"Technische info\",HEADER:\"\"},\n    bannerTitle:\"Uw advertentie is klaar. Zo publiceert u hem:\",\n    bannerText:\"\",\n    step1:\"Kopieer uw tekst en sla hem op (e-mail aan uzelf, Notes, Word) \u2014 de pagina bewaart hem niet.\",\n    step2:\"Maak uw Immogo-account aan \u2014 abonnement vanaf 17 euro\/maand, zonder commissie.\",\n    step3:\"Voeg uw advertentie toe en plak uw tekst in het formulier. Wij zorgen voor de vertalingen en het maandelijkse delen op Facebook.\",\n    bannerCta:\"Mijn Immogo-account aanmaken\", bannerLearn:\"Meer info\",\n    langNotice:\"Uw advertentie wordt in het Nederlands opgesteld. Voor Immogo bieden we ook een Franse vertaling aan.\",\n    translateBtn:\"Vertalen naar het Frans\", translateNote:\"Immogo publiceert in het Frans \u2014 we vertalen uw advertentie.\",\n    pathLabelPaste:\"Ik heb al een tekst\", pathLabelScratch:\"Ik begin van nul\",\n    hintPaste:\"De AI herstructureert uw tekst, verwijdert cliches en vult aan wat ontbreekt.\",\n    lIntro:\"Introductie en ligging\", hintIntro:\"Type woning, voornaamste troeven, omgeving, rust, uitzicht, afstand tot winkels en openbaar vervoer.\",\n    lVisit:\"Beschrijving \/ rondleiding\", hintVisit:\"Beschrijf de kamers per verdieping. Oppervlakten, licht, opmerkelijke kenmerken.\",\n    lExterior:\"Buitenruimte en tuin\", hintExterior:\"Tuin, terras, zwembad, garage, parking. Geef afmetingen en oppervlakten.\",\n    lDetails:\"Overige informatie\", hintDetails:\"EPC, verwarming, bouwjaar, recente werken, beschikbaarheid, onroerende voorheffing.\",\n    refineLabel:\"Wilt u iets aanpassen?\",\n    refineHint:\"Geef aan wat u wilt wijzigen of toevoegen - de AI verfijnt de advertentie voor u.\",\n    refinePlaceholder:\"bijv. : De tuin is 800m2, niet 500m2. Voeg toe dat de woning gemeubileerd wordt verkocht.\",\n    refineBtn:\"Verfijnen\"\n  },\n  en: {\n    subtitle:\"Describe your property. The AI asks the right questions, then writes a professional listing - no cliches.\",\n    labelBasics:\"Basic information\", labelInterview:\"AI interview\", labelResult:\"Your listing\",\n    lType:\"Property type\", lLocation:\"Town and postal code\", lPrice:\"Asking price (euros)\", lSize:\"Living area (m2)\",\n    lRooms:\"Bedrooms\", lYear:\"Year built\", lDesc:\"Describe your property, or paste your text below\",\n    btnStart:\"Start AI interview\", formError:\"Please fill in at least the town and a description.\",\n    replyPh:\"Your answer...\", resultTitle:\"Your professional listing\",\n    btnCopy:\"Copy all\", btnRegen:\"Regenerate\", btnRestart:\"New property\", copied:\"Copied!\",\n    tags:{TITLE:\"Headline\",INTRO:\"Introduction\",VISIT:\"Property tour\",EXTERIOR:\"Exterior\",DETAILS:\"Technical details\",HEADER:\"\"},\n    bannerTitle:\"Your listing is ready. Here is how to publish it:\",\n    bannerText:\"\",\n    step1:\"Copy your text and save it somewhere (email to yourself, Notes, Word) \u2014 the page does not keep it.\",\n    step2:\"Create your Immogo account \u2014 from 17 euros\/month, no commission.\",\n    step3:\"Add your listing and paste your text into the form. We handle the FR and NL translations and monthly Facebook sharing.\",\n    bannerCta:\"Create my Immogo account\", bannerLearn:\"Learn more\",\n    langNotice:\"You are writing in English. Immogo publishes in French \u2014 we will offer a translation once ready.\",\n    translateBtn:\"Translate to French\", translateNote:\"Immogo publishes in French \u2014 we will translate your listing.\",\n    pathLabelPaste:\"I already have a text\", pathLabelScratch:\"I'm starting from scratch\",\n    hintPaste:\"The AI restructures your text, removes cliches and adds what's missing.\",\n    lIntro:\"Introduction and location\", hintIntro:\"Property type, main assets, environment, peace, view, distances to shops and transport.\",\n    lVisit:\"Description \/ property tour\", hintVisit:\"Describe the rooms level by level. Areas, light, remarkable features.\",\n    lExterior:\"Exterior and garden\", hintExterior:\"Garden, terrace, pool, garage, parking. Give dimensions and areas.\",\n    lDetails:\"Other information\", hintDetails:\"EPC, heating, year built, recent works, availability, property tax.\",\n    refineLabel:\"Would you like to change something?\",\n    refineHint:\"Tell us what you'd like to change or add - the AI will refine the listing for you.\",\n    refinePlaceholder:\"e.g. : The garden is 800m2, not 500m2. Add that the house is sold furnished.\",\n    refineBtn:\"Refine\"\n  }\n};\n\nvar lang = 'en';\nvar history = [];\nvar propData = {};\nvar loading = false;\nvar adText = '';\n\nfunction g(id) { return document.getElementById(id); }\n\nfunction applyT() {\n  var t = T[lang];\n  var map = {\n    \/\/ subtitle removed \u2014 replaced by static heading'ig-label-basics':'labelBasics','ig-label-interview':'labelInterview',\n    'ig-label-result':'labelResult','ig-l-type':'lType','ig-l-location':'lLocation','ig-l-price':'lPrice',\n    'ig-l-size':'lSize','ig-l-rooms':'lRooms','ig-l-year':'lYear','ig-l-desc':'lDesc',\n    'ig-btn-start':'btnStart','ig-form-error':'formError','ig-result-title':'resultTitle',\n    'ig-btn-copy':'btnCopy','ig-btn-regen':'btnRegen','ig-btn-restart':'btnRestart',\n    'ig-banner-title':'bannerTitle','ig-banner-cta':'bannerCta','ig-banner-learn':'bannerLearn'\n  };\n  var s1=g('ig-step1-text'); if(s1&&t.step1) s1.textContent=t.step1;\n  var s2=g('ig-step2-text'); if(s2&&t.step2) s2.textContent=t.step2;\n  var s3=g('ig-step3-text'); if(s3&&t.step3) s3.textContent=t.step3;\n  var memberLinks={'fr':'https:\/\/forum.immogo.com\/fr\/membership-checkout\/','nl':'https:\/\/forum.immogo.com\/nl\/lidmaatschap-afrekenen\/','en':'https:\/\/forum.immogo.com\/en\/membership-checkout\/'};\n  var ctaEl=g('ig-banner-cta'); if(ctaEl) ctaEl.href=memberLinks[lang]||memberLinks['fr'];\n  for (var id in map) { var el = g(id); if (el) el.textContent = t[map[id]] || ''; }\n  var ri = g('ig-reply-input'); if (ri) ri.placeholder = t.replyPh;\n  var oh = g('ig-opt-house'); if (oh) oh.textContent = lang==='nl' ? 'Huis' : lang==='en' ? 'House' : 'Maison';\n  var og = g('ig-opt-ground'); if (og) og.textContent = lang==='nl' ? 'Grond' : lang==='en' ? 'Land' : 'Terrain';\n  var oc = g('ig-opt-comm'); if (oc) oc.textContent = lang==='nl' ? 'Handelspand' : lang==='en' ? 'Commercial \/ Office' : 'Commerce \/ Bureau';\n  var n = g('ig-lang-notice');\n  if (n) { if (t.langNotice) { n.textContent = t.langNotice; n.classList.add('show'); } else { n.classList.remove('show'); n.textContent = ''; } }\n  var tb = g('ig-btn-translate');\n  if (tb) { if (lang !== 'fr' && t.translateBtn) { tb.textContent = t.translateBtn; tb.style.display = 'inline-block'; } else { tb.style.display = 'none'; } }\n  var tn = g('ig-translate-note');\n  if (tn) { if (lang !== 'fr' && t.translateNote) { tn.textContent = t.translateNote; tn.style.display = 'block'; } else { tn.style.display = 'none'; tn.textContent = ''; } }\n  \/\/ New path toggle and refine elements\n  var ppl = g('ig-path-label-paste'); if(ppl && t.pathLabelPaste) ppl.textContent = t.pathLabelPaste;\n  var psl = g('ig-path-label-scratch'); if(psl && t.pathLabelScratch) psl.textContent = t.pathLabelScratch;\n  var hp = g('ig-hint-paste'); if(hp && t.hintPaste) hp.textContent = t.hintPaste;\n  var li = g('ig-l-intro'); if(li && t.lIntro) li.textContent = t.lIntro;\n  var hi = g('ig-hint-intro'); if(hi && t.hintIntro) hi.textContent = t.hintIntro;\n  var lv = g('ig-l-visit'); if(lv && t.lVisit) lv.textContent = t.lVisit;\n  var hv = g('ig-hint-visit'); if(hv && t.hintVisit) hv.textContent = t.hintVisit;\n  var le = g('ig-l-exterior'); if(le && t.lExterior) le.textContent = t.lExterior;\n  var he = g('ig-hint-exterior'); if(he && t.hintExterior) he.textContent = t.hintExterior;\n  var ld = g('ig-l-details'); if(ld && t.lDetails) ld.textContent = t.lDetails;\n  var hd = g('ig-hint-details'); if(hd && t.hintDetails) hd.textContent = t.hintDetails;\n  var rl = g('ig-refine-label'); if(rl && t.refineLabel) rl.textContent = t.refineLabel;\n  var rh = g('ig-refine-hint'); if(rh && t.refineHint) rh.textContent = t.refineHint;\n  var ri2 = g('ig-refine-input'); if(ri2 && t.refinePlaceholder) ri2.placeholder = t.refinePlaceholder;\n  var rb = g('ig-refine-btn'); if(rb && t.refineBtn) rb.textContent = t.refineBtn;\n}\n\nfunction setLang(l) {\n  lang = l;\n  document.querySelectorAll('#immogo-gen .ig-lang-btn').forEach(function(b) {\n    b.classList.toggle('active', b.getAttribute('data-lang') === l);\n  });\n  applyT();\n}\n\nfunction showPhase(id) {\n  ['ig-phase-form','ig-phase-chat','ig-phase-result'].forEach(function(p) { g(p).classList.remove('active'); });\n  g(id).classList.add('active');\n  var map = {'ig-phase-form':0,'ig-phase-chat':1,'ig-phase-result':2};\n  var cur = map[id];\n  ['ig-step1','ig-step2','ig-step3'].forEach(function(s, i) {\n    var el = g(s); el.classList.remove('done','active');\n    if (i < cur) el.classList.add('done');\n    if (i === cur) el.classList.add('active');\n  });\n}\n\nfunction makeRefCode(location) {\n  var now = new Date();\n  var yy = now.getFullYear().toString().slice(2);\n  var mm = String(now.getMonth()+1).padStart(2,'0');\n  var dd = String(now.getDate()).padStart(2,'0');\n  var commune = (location||'').toLowerCase()\n    .normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'')\n    .split(\/[^a-z]+\/)[0]\n    .replace(\/[^a-z]\/g,'');\n  return 'ig' + yy + mm + dd + commune;\n}\n\nfunction propSummary() {\n  var refCode = makeRefCode(propData.location);\n  propData.refCode = refCode;\n  var base = 'DONNEES DU BIEN :\\n- Lieu : ' + (propData.location||'non precise') +\n    '\\n- Prix : ' + (propData.price ? propData.price+' euros' : 'non precise');\n\n  if (propData.path === 'scratch') {\n    base += '\\n\\nINTRODUCTION ET SITUATION :\\n' + (propData.intro||'') +\n      '\\n\\nDESCRIPTION \/ VISITE :\\n' + (propData.visit||'') +\n      '\\n\\nEXTERIEUR ET JARDIN :\\n' + (propData.exterior||'') +\n      '\\n\\nAUTRES INFORMATIONS :\\n' + (propData.details||'');\n  } else {\n    base += '\\n\\nTEXTE DU VENDEUR :\\n' + (propData.description||'');\n  }\n\n  base += '\\n\\nCODE DE REFERENCE UNIQUE A UTILISER : ' + refCode +\n    '\\nInsere ce code tel quel dans la section [INTRO], sur une ligne separee a la fin, precede de Ref. :';\n  return base;\n}\n\nvar currentPath = 'paste';\n\nfunction switchPath(path) {\n  currentPath = path;\n  g('ig-path-paste').classList.toggle('active', path === 'paste');\n  g('ig-path-scratch').classList.toggle('active', path === 'scratch');\n  g('ig-path-btn-paste').classList.toggle('active', path === 'paste');\n  g('ig-path-btn-scratch').classList.toggle('active', path === 'scratch');\n}\n\nfunction startInterview() {\n  var loc = g('ig-prop-location').value.trim();\n  var err = g('ig-form-error');\n  var hasContent = false;\n\n  if (currentPath === 'paste') {\n    var desc = g('ig-prop-desc').value.trim();\n    if (!loc || !desc) { err.classList.add('show'); return; }\n    propData = { path:'paste', location:loc, price:g('ig-prop-price').value, description:desc };\n    hasContent = true;\n  } else {\n    var intro = (g('ig-scratch-intro').value||'').trim();\n    var visit = (g('ig-scratch-visit').value||'').trim();\n    var exterior = (g('ig-scratch-exterior').value||'').trim();\n    var details = (g('ig-scratch-details').value||'').trim();\n    if (!loc || (!intro && !visit)) { err.classList.add('show'); return; }\n    propData = { path:'scratch', location:loc, price:g('ig-prop-price').value, intro:intro, visit:visit, exterior:exterior, details:details };\n    hasContent = true;\n  }\n\n  if (!hasContent) { err.classList.add('show'); return; }\n  err.classList.remove('show');\n  history = [];\n  g('ig-chat-thread').innerHTML = '';\n  showPhase('ig-phase-chat');\n  history.push({role:'user', content: propSummary() + '\\n\\nCommence l\\'entretien maintenant.'});\n  callAPI();\n}\n\nfunction sendReply() {\n  var inp = g('ig-reply-input');\n  var text = inp.value.trim();\n  if (!text || loading) return;\n  inp.value = ''; inp.style.height = '';\n  g('ig-chat-error').classList.remove('show');\n  addMsg('user', text);\n  history.push({role:'user', content:text});\n  callAPI();\n}\n\nfunction callAPI() {\n  if (loading) return;\n  loading = true; setSend(false);\n  var tid = addTyping();\n  fetch(PROXY, {\n    method:'POST',\n    headers:{'Content-Type':'application\/json'},\n    body: JSON.stringify({model:'claude-sonnet-4-20250514', max_tokens:1000, lang:lang, messages:history})\n  })\n  .then(function(r) { return r.json(); })\n  .then(function(d) {\n    removeTyping(tid);\n    if (d.error) { showErr(d.error.message || 'Erreur API'); loading=false; setSend(true); return; }\n    var reply = d.content.map(function(b){return b.text||'';}).join('');\n    history.push({role:'assistant', content:reply});\n    if (reply.indexOf('===AD_START===') > -1 && reply.indexOf('===AD_END===') > -1) {\n      var m = reply.match(\/===AD_START===([\\s\\S]*?)===AD_END===\/);\n      if (m) {\n        \/\/ Show any preamble message in chat before switching to result\n        var preamble = reply.slice(0, reply.indexOf('===AD_START===')).trim();\n        if (preamble) addMsg('ai', preamble);\n        adText = m[1].trim(); renderResult(adText); showPhase('ig-phase-result');\n      }\n    } else { addMsg('ai', reply); }\n    loading=false; setSend(true);\n  })\n  .catch(function(e) { removeTyping(tid); showErr('Erreur reseau : '+e.message); loading=false; setSend(true); });\n}\n\nfunction addMsg(role, text) {\n  var thread = g('ig-chat-thread');\n  var div = document.createElement('div'); div.className = 'ig-msg ' + role;\n  var av = document.createElement('div'); av.className = 'ig-avatar ' + (role==='ai' ? 'ai' : 'human'); av.textContent = role==='ai' ? 'i' : 'V';\n  var bub = document.createElement('div'); bub.className = 'ig-bubble'; bub.textContent = text;\n  div.appendChild(av); div.appendChild(bub); thread.appendChild(div); thread.scrollTop = thread.scrollHeight;\n}\n\nfunction addTyping() {\n  var thread = g('ig-chat-thread');\n  var div = document.createElement('div'); div.className = 'ig-msg ai'; div.id = 'ig-t-'+Date.now();\n  div.innerHTML = '<div class=\"ig-avatar ai\">i<\/div><div class=\"ig-bubble\"><div class=\"ig-typing\"><div class=\"ig-dot\"><\/div><div class=\"ig-dot\"><\/div><div class=\"ig-dot\"><\/div><\/div><\/div>';\n  thread.appendChild(div); thread.scrollTop = thread.scrollHeight; return div.id;\n}\n\nfunction removeTyping(id) { var el = g(id); if (el) el.remove(); }\nfunction setSend(v) { var s = g('ig-send-btn'); if (s) s.disabled = !v; }\nfunction showErr(msg) { var el = g('ig-chat-error'); if (el) { el.textContent = msg; el.classList.add('show'); } }\n\nfunction renderResult(text) {\n  var t = T[lang]; var c = g('ig-result-sections'); c.innerHTML = '';\n  \/\/ Strip any preamble text before the first section tag\n  var firstTag = text.search(\/\\[[A-Z]+\\]\/);\n  if (firstTag > 0) text = text.slice(firstTag);\n  var parts = text.split(\/\\[([A-Z]+)\\]\/);\n  for (var i = 1; i < parts.length; i += 2) {\n    var key = parts[i]; var content = (parts[i+1]||'').trim(); if (!content) continue;\n    var sec = document.createElement('div'); sec.className = 'ig-ad-section';\n    if (key === 'HEADER') {\n      sec.style.cssText = 'padding:1rem 1.25rem 0.75rem;border-bottom:1px solid #f0f0f0;';\n      var lines = content.split('\\n').filter(function(l){return l.trim();});\n      var loc = document.createElement('div');\n      loc.style.cssText = 'font-size:15px;font-weight:500;color:#444;';\n      loc.textContent = lines[0]||'';\n      var price = document.createElement('div');\n      price.style.cssText = 'font-size:22px;font-weight:700;color:#111;margin-top:2px;';\n      price.textContent = lines[1]||'';\n      sec.appendChild(loc); sec.appendChild(price); c.appendChild(sec);\n    } else {\n      var tag = document.createElement('div'); tag.className = 'ig-ad-tag'; tag.textContent = t.tags[key]||key;\n      var body = document.createElement('div'); body.className = 'ig-ad-content'+(key==='TITLE'?' headline':''); body.textContent = content;\n      sec.appendChild(tag); sec.appendChild(body); c.appendChild(sec);\n    }\n  }\n}\n\nfunction copyAll() {\n  var parts = [];\n  \/\/ Collect header (commune + price) from the HEADER section\n  var headerSec = document.querySelector('#immogo-gen .ig-ad-section');\n  if (headerSec) {\n    var headerLines = Array.from(headerSec.querySelectorAll('div')).map(function(d){ return d.textContent.trim(); }).filter(Boolean);\n    if (headerLines.length) parts.push(headerLines.join('\\n'));\n  }\n  \/\/ Collect the rest of the ad content\n  var secs = document.querySelectorAll('#immogo-gen .ig-ad-content');\n  Array.from(secs).forEach(function(s){ if (s.textContent.trim()) parts.push(s.textContent.trim()); });\n  var text = parts.join('\\n\\n');\n  navigator.clipboard.writeText(text).then(function() {\n    var btn = g('ig-btn-copy'); var orig = T[lang].btnCopy;\n    btn.textContent = T[lang].copied;\n    setTimeout(function(){ btn.textContent = orig; }, 2000);\n  });\n}\n\nfunction requestTranslation() {\n  var btn = g('ig-btn-translate'); btn.disabled = true; btn.textContent = '...';\n  fetch(PROXY, {\n    method:'POST', headers:{'Content-Type':'application\/json'},\n    body: JSON.stringify({model:'claude-sonnet-4-20250514', max_tokens:1000, lang:'fr',\n      messages:[{role:'user', content:'Traduis cette annonce en francais selon les regles Immogo. Garde exactement le meme format avec ===AD_START=== et ===AD_END===.\\n\\n'+adText}]})\n  })\n  .then(function(r){return r.json();})\n  .then(function(d){\n    if (!d.error) { var reply=d.content.map(function(b){return b.text||'';}).join(''); var m=reply.match(\/===AD_START===([\\s\\S]*?)===AD_END===\/); if(m){adText=m[1].trim();renderResult(adText);} }\n    btn.textContent = T[lang].translateBtn; btn.disabled = false;\n  })\n  .catch(function(){ btn.textContent = T[lang].translateBtn; btn.disabled = false; });\n}\n\nfunction regenerate() {\n  var msg = lang==='nl' ? 'Schrijf een alternatieve versie met een andere invalshoek.' : lang==='en' ? 'Write an alternative version with a different angle.' : 'Propose une version alternative avec un angle different, selon les memes regles.';\n  showPhase('ig-phase-chat'); history.push({role:'user',content:msg}); addMsg('user',msg); callAPI();\n}\n\nfunction refineAd() {\n  var inp = g('ig-refine-input');\n  var text = inp.value.trim();\n  if (!text || loading) return;\n  var msg = 'Voici les modifications souhait\u00e9es par le vendeur. Merci de produire une version finale corrig\u00e9e de l\\'annonce en tenant compte de ces ajustements :\\n\\n' + text +\n    '\\n\\nAnnonce actuelle :\\n' + adText +\n    '\\n\\nProduis la version corrig\u00e9e dans le m\u00eame format ===AD_START=== ... ===AD_END===.';\n  history.push({role:'user', content:msg});\n  inp.value = '';\n  g('ig-refine-btn').disabled = true;\n  showPhase('ig-phase-chat');\n  addMsg('user', text);\n  callAPI();\n}\n\nfunction restart() {\n  history=[]; propData={}; adText=''; currentPath='paste';\n  ['ig-prop-location','ig-prop-price','ig-prop-desc','ig-scratch-intro','ig-scratch-visit','ig-scratch-exterior','ig-scratch-details'].forEach(function(id){var el=g(id);if(el)el.value='';});\n  switchPath('paste');\n  g('ig-chat-thread').innerHTML=''; showPhase('ig-phase-form');\n}\n\n\/\/ Wire up all buttons via event listeners \u2014 no onclick attributes\ndocument.querySelectorAll('#immogo-gen .ig-lang-btn').forEach(function(btn) {\n  btn.addEventListener('click', function() { setLang(btn.getAttribute('data-lang')); });\n});\ng('ig-btn-start').addEventListener('click', startInterview);\ng('ig-send-btn').addEventListener('click', sendReply);\ng('ig-btn-copy').addEventListener('click', copyAll);\ng('ig-btn-translate').addEventListener('click', requestTranslation);\ng('ig-btn-regen').addEventListener('click', regenerate);\ng('ig-btn-restart').addEventListener('click', restart);\ng('ig-path-btn-paste').addEventListener('click', function() { switchPath('paste'); });\ng('ig-path-btn-scratch').addEventListener('click', function() { switchPath('scratch'); });\ng('ig-refine-btn').addEventListener('click', refineAd);\ng('ig-reply-input').addEventListener('keydown', function(e) {\n  if (e.key==='Enter' && !e.shiftKey) { e.preventDefault(); sendReply(); }\n  var ta = g('ig-reply-input'); ta.style.height='auto'; ta.style.height=Math.min(ta.scrollHeight,120)+'px';\n});\nvar ri3 = g('ig-refine-input'); if (ri3) { ri3.addEventListener('keydown', function(e) {\n  if (e.key==='Enter' && !e.shiftKey) { e.preventDefault(); refineAd(); }\n}); }\n\napplyT();\nsetSend(true);\n\n} \/\/ end igInit\n\n\/\/ Fire on DOMContentLoaded, or immediately if DOM already ready\nif (document.readyState === 'loading') {\n  document.addEventListener('DOMContentLoaded', igInit);\n} else {\n  igInit();\n}\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>A free expert writer at your service Writing a good real estate ad is harder than it looks. Most texts suffer from the same flaws: too many superlatives, not enough facts, clich\u00e9s that everyone recognizes and no one reads anymore. This AI tool has been trained with the editorial rules that Immogo applies to every [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","footnotes":""},"class_list":["post-5532","page","type-page","status-publish","hentry","pmpro-has-access","beehive-post"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ad generator with AI AI text generator<\/title>\n<meta name=\"description\" content=\"Create your ad using artificial intelligence (AI). Our robot editor asks you questions for the best result.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ad generator with AI AI text generator\" \/>\n<meta property=\"og:description\" content=\"Create your ad using artificial intelligence (AI). Our robot editor asks you questions for the best result.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/\" \/>\n<meta property=\"og:site_name\" content=\"Immogo\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-15T12:43:45+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/generateur-annonces-intelligence-artificielle\\\/\",\"url\":\"https:\\\/\\\/immogo.com\\\/fr\\\/generateur-annonces-intelligence-artificielle\\\/\",\"name\":\"Ad generator with AI AI text generator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/#website\"},\"datePublished\":\"2026-04-17T17:15:38+00:00\",\"dateModified\":\"2026-05-15T12:43:45+00:00\",\"description\":\"Create your ad using artificial intelligence (AI). Our robot editor asks you questions for the best result.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/generateur-annonces-intelligence-artificielle\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/immogo.com\\\/fr\\\/generateur-annonces-intelligence-artificielle\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/generateur-annonces-intelligence-artificielle\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/immogo.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ad generator with AI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/immogo.com\\\/fr\\\/\",\"name\":\"Immogo\",\"description\":\"Maisons \u00e0 vendre sans agence\",\"publisher\":{\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/immogo.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/#organization\",\"name\":\"Immogo\",\"url\":\"https:\\\/\\\/immogo.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/immogo.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/cropped-logo-2.png\",\"contentUrl\":\"https:\\\/\\\/immogo.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/cropped-logo-2.png\",\"width\":220,\"height\":36,\"caption\":\"Immogo\"},\"image\":{\"@id\":\"https:\\\/\\\/immogo.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ad generator with AI AI text generator","description":"Create your ad using artificial intelligence (AI). Our robot editor asks you questions for the best result.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/","og_locale":"en_US","og_type":"article","og_title":"Ad generator with AI AI text generator","og_description":"Create your ad using artificial intelligence (AI). Our robot editor asks you questions for the best result.","og_url":"https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/","og_site_name":"Immogo","article_modified_time":"2026-05-15T12:43:45+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/","url":"https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/","name":"Ad generator with AI AI text generator","isPartOf":{"@id":"https:\/\/immogo.com\/fr\/#website"},"datePublished":"2026-04-17T17:15:38+00:00","dateModified":"2026-05-15T12:43:45+00:00","description":"Create your ad using artificial intelligence (AI). Our robot editor asks you questions for the best result.","breadcrumb":{"@id":"https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/immogo.com\/fr\/generateur-annonces-intelligence-artificielle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/immogo.com\/en\/"},{"@type":"ListItem","position":2,"name":"Ad generator with AI"}]},{"@type":"WebSite","@id":"https:\/\/immogo.com\/fr\/#website","url":"https:\/\/immogo.com\/fr\/","name":"Immogo","description":"Maisons \u00e0 vendre sans agence","publisher":{"@id":"https:\/\/immogo.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/immogo.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/immogo.com\/fr\/#organization","name":"Immogo","url":"https:\/\/immogo.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/immogo.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/immogo.com\/wp-content\/uploads\/2025\/01\/cropped-logo-2.png","contentUrl":"https:\/\/immogo.com\/wp-content\/uploads\/2025\/01\/cropped-logo-2.png","width":220,"height":36,"caption":"Immogo"},"image":{"@id":"https:\/\/immogo.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/immogo.com\/en\/wp-json\/wp\/v2\/pages\/5532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/immogo.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/immogo.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/immogo.com\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/immogo.com\/en\/wp-json\/wp\/v2\/comments?post=5532"}],"version-history":[{"count":0,"href":"https:\/\/immogo.com\/en\/wp-json\/wp\/v2\/pages\/5532\/revisions"}],"wp:attachment":[{"href":"https:\/\/immogo.com\/en\/wp-json\/wp\/v2\/media?parent=5532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}