본문 바로가기
반응형

데이터사이언스3

[데이터 마케팅 첫걸음]콘텐츠 마케팅에 맞는 카피라이팅(4) 주제 시각자료 [데이터 마케팅 첫걸음]콘텐츠 마케팅에 맞는 카피라이팅(4) 타깃을 분화시켜라 MZ세대 VS 기성세대 타깃 분화의 중요성 타깃 고객을 생각하라 ● 모두에게 똑같은 메시지를 전하는 건 옳지 못합니다. ● 제품과 서비스별로 타겟층이 다릅니다. ● 해당 타겟층을 대상으로 방식을 분화시켜야 합니다. 개인의 성향이 존재하기에 100%의 진리는 아닙니다. MZ세대 VS 기성세대 스포티파이 ● 스포티파이는 한국 R&B 등 장르를 세분화해 바꿔가며 지속적으로 타겟층을 좁히는 카피를 선보입니다. ● 대상화가 필요한 MZ세대에게 매우 최적화입니다. 여명 808 ● 숙취해소에 "정말 좋다"는 카피 하나로 기성세대 숙취해소제 시장을 장악한 사례입니다. ● MZ세대는 각자 다를 수 있다고 생각하기 때문에 이런 광범위한 타깃팅에 공감하지 못합니다. 실전에 적용해 보겠습니다. 신발을 홍보하.. 2022. 12. 29.
[데이터 마케팅 첫걸음]콘텐츠 마케팅에 맞는 카피라이팅(3) 주제 시각자료 [데이터 마케팅 첫걸음]콘텐츠 마케팅에 맞는 카피라이팅(3) 카피라이팅 소셜미디어 글쓰기 클릭을 부르는 법, 3가지 요소 파악하기 상황을 명시하기 (1) 상황을 명시합니다. - 나의 카피를 볼 사람들은 매우 다양합니다. 범 대중적인 건 타깃은 확대하나 애매한 지점이 많습니다. 따라서 상황 명시를 통해 핵심 타깃에게 메시지를 전합니다. 현재 상황에 대한 명기로 핵심 타겟은 명확히 잡아가는 형식입니다. - 취준생, 직장인, 주부, 1인가구 등등 변화를 알려주기 (2) 변화를 미리 알려줍니다. - 우리의 제품, 콘텐츠, 서비스로 인해 변하는 것입니다. 대중이 기대할 수 있는 결과와 변화를 알려줍니다. 특히 당장 도움 되는 사항들을 알려주면 좋습니다. 변화에 대한 결과를 미리 알려주기 입니다. - 00의 전문가가 되는, 00을 벌 수 있게 해주는, 00을 가능하게 하는 .. 2022. 12. 29.
[데이터 마케팅 첫걸음]마케팅 조사와 디지털 마케팅 주제 시각자료 [데이터 마케팅 첫걸음]마케팅 조사와 디지털 마케팅 01. 마케팅 조사의 목적과 소비자 이해 [마케팅 조사의 필요성과 정의] ● 마케팅은 소비자의 니즈를 규명하고 만족시키는데 주안점을 둡니다. ● 고객, 경쟁자 및 다른 시장 요인들에 대한 정보가 필요합니다. ● 마케팅 조사는 체계적이고 객관적인 확인, 수집, 분석이며, 마케팅의 문제(혹은 기회)의 확인과 해결을 위한 의사 결정을 용이하게 할 목적으로 정보를 사용합니다. - 쳬계적(systematic) - 객관적(objective) - 의사결정에 필요한 정보(information) [시장의 변화] - 이러한 정보를 바탕으로 보다 효과적인 의사결정을 합니다. [소비자와 시장을 분석하는 이유] 1. 시장의 변화(환경의 변화)를 파악합니다. 2. 고객의 니즈를 파악합니다. 3. 고객의 트렌드를 파악합니다. 4... 2022. 12. 20.
반응형

setTimeout(function () { const dragSensitivity = 0.55; // 드래그 민감도 const clickTolerance = 0; // 클릭 간주 기준 (px), 0: 클릭 시 이동 안함. 클릭 시 이동하려면 1~3값 설정 고려. const dragRatioThreshold = 0.55; // 배너 너비 대비 드래그 비율, 배너 드래그 후 드롭 시. const newWindow = 1; // 1: 새 창, 0: 현재 창 const bannerConfigs = [ { selector: '.sliding-banner-300', width: 300, height: 300, id: '940041', trackingCode: 'AF2787934', // 본인의 추적 코드로 대체 subId: '', tsource: '', background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x600-back2.jpg', cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-left.png', arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png', dragDirection: 'left' }, { selector: '.sliding-banner-150', width: 320, height: 150, id: '940041', trackingCode: 'AF2787934', // 본인의 추적 코드로 대체 subId: '', tsource: '', background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/640x300-back2.jpg', cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-32Ox15O-cover-left.png', arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png', dragDirection: 'left' }, { selector: '.sliding-banner-250', width: 300, height: 250, id: '940041', trackingCode: 'AF2787934', // 본인의 추적 코드로 대체 subId: '', tsource: '', background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x500-back2.jpg', cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-left.png', arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrowbtn.png', dragDirection: 'left' }, { selector: '.sliding-banner-280', width: 336, height: 280, id: '940041', trackingCode: 'AF2787934', // 본인의 추적 코드로 대체 subId: '', tsource: '', background: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/600x500-back3.jpg', cover: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/WOW-30Ox25O-cover-right.png', arrowIcon: 'https://tistory1.daumcdn.net/tistory/8074023/skin/images/arrow-right.png', dragDirection: 'right' } ]; const coupangLink = 'https://link.coupang.com/a/c2PToW'; // 본인의 간편 링크로 대체 📍 function openLink(link) { if (newWindow) { window.open(link, '_blank'); } else { history.replaceState(null, null, window.location.href); window.location.href = link; } } function generateIframeURL(config) { return `https://ads-partners.coupang.com/widgets.html?id=${config.id}&template=carousel&trackingCode=${config.trackingCode}&subId=${encodeURIComponent(config.subId || '')}&width=${config.width}&height=${config.height}&tsource=${encodeURIComponent(config.tsource || '')}`; } function createBanner(config) { const iframeURL = generateIframeURL(config); const wrapper = document.createElement('div'); wrapper.innerHTML = `
`; return wrapper; } // trigger event update function setupDragEvents(dragTarget, animatedBanner, threshold, link, direction) { let startX = 0, diffX = 0, triggered = false, isDragging = false; function getClientX(e) { return e.type.includes('touch') ? e.touches[0].clientX : e.clientX; } function triggerOnce() { if (triggered) return; triggered = true; animatedBanner.style.transform = 'translateX(0)'; animatedBanner.classList.add('active'); openLink(link); } function startDrag(e) { if (e.type.startsWith('mouse') && e.button !== 0) return; isDragging = true; startX = getClientX(e); diffX = 0; triggered = false; animatedBanner.classList.remove('active'); e.preventDefault(); } function onDrag(e) { if (!isDragging) return; const currentX = getClientX(e); diffX = currentX - startX; if ((direction === 'left' && diffX < 0) || (direction === 'right' && diffX > 0)) { animatedBanner.style.transform = `translateX(${diffX}px)`; if (Math.abs(diffX) > threshold) { triggerOnce(); } e.preventDefault(); } } function endDrag() { if (!isDragging) return; isDragging = false; const dragRatio = Math.abs(diffX) / dragTarget.offsetWidth; if (Math.abs(diffX) < clickTolerance || ( dragRatio >= dragRatioThreshold && ((direction === 'left' && diffX < 0) || (direction === 'right' && diffX > 0)) )) { triggerOnce(); } else { animatedBanner.style.transform = 'translateX(0)'; animatedBanner.classList.add('active'); } diffX = 0; } dragTarget.addEventListener('mousedown', startDrag); dragTarget.addEventListener('mousemove', onDrag); dragTarget.addEventListener('mouseup', endDrag); dragTarget.addEventListener('mouseleave', endDrag); dragTarget.addEventListener('touchstart', startDrag, { passive: false }); dragTarget.addEventListener('touchmove', onDrag, { passive: false }); dragTarget.addEventListener('touchend', endDrag); } // end bannerConfigs.forEach(config => { const targets = document.querySelectorAll(config.selector); if (targets.length === 0) return; targets.forEach(target => { target.innerHTML = ''; const banner = createBanner(config); target.appendChild(banner); const customBox = banner.querySelector('.customBox'); const animatedBanner = banner.querySelector('.customBanner'); const threshold = config.width * dragSensitivity; setupDragEvents(customBox, animatedBanner, threshold, coupangLink, config.dragDirection); }); }); }, 100);