Jump to content

파이썬으로 북미 B2B 세일즈를 위한 소스 수집 앱을 만들어보자. - 2편


1편 글과 이어진 내용

역시 마찬가지로 준비 과정에서 틈틈히 작성한 연결된 메모들을 정리

사실 미국에는 리드만을 수집하는 많은 회사들이 있다. 특히, 보험 업계의 경우 경쟁이 심한데, 리드 퀄러티에 따라 하나당 리드 가격이 (독점 제공인 경우) 몇백불인 경우도 있다.

 

+

 

정보 제공 사이트 만들었다가 리드 팔았던 이야기

1. 오바마 케어 시행 전, 미국 보험 비교 평가 사이트를 만들어서 온라인에 올려둔 적이 있었다.

2. 보험에 대대 유대인 친구들의 생각을 들었던 적이 있는데, 유대인은 아이가 태어나면 보통 조부모가 아이들의 보험을 선물로 들어준다고 한다. 어린 아이기 때문에, 낮은 보험료로 계약할 수 있다는 장점 외에, 그 아이가 자라 묵돈이 필요할 때 그 보험에 쌓인 돈을 무이자 대출로 꺼내 쓸 수 있어서 아주 요긴하다고 한다. 그니까 태어나자마자 보험을 들고, 묵돈이 필요한 20대 중반에 그 보험에 쌓인 돈을 무이자로 꺼내 쓸 수 있는거고, 형제 자매가 많은 경우 누가 하나 뭘 하겠다고 하면 그 돈을 꺼내 도와준다고 한다. 

3. 어떻게 저 친구는 20대 중반의 나이에 사업을 시작했지?라는 생각을 하면서, 부모가 돈이 많아서 도와줬겠지라는 생각을 했는데, 그 친구 말로는 자기 역시 그렇게 사업을 시작한 경우라고 얘기를 들려줬다.

4. 이런 얘기를 파이낸스 관점에서 적은 몇개의 글들과 다양한 보험 상품에 대해 사람들이 오해할만한 내용들을 한글로 작성해서 운영헀다.

5. 그 때 우리도 (이미 좀 늦었지만) 아이들 셋을 모두 보험 가입을 했고, 부모가 아이들 보장 금액 이상의 보험이 반드시 있어야 한다는 것도 끔찍한 배경 이야기와 함께 듣게 되었다.

6. 그런데 그 사이트가 금방 화제가 되었고 미국에 거주하는 교민들 사이에서 입소문이 나기 시작했다. 

7. 어쩌면 당연했다. 당시만 해도 한국어로 된 보험 관련 콘텐츠가 많이 없었으니까. 

8. 그러던 어느 날부터, 여기 저기 보험회사에서 연락이 오기 시작했다. 리드폼을 달고, 그 리드를 자기들에게 팔라는 연락이었다.

9. 콘텐츠의 힘이었을까? 리드 폼(아주 간단한 리드 폼이었다. 실제 보험 전문가에게 상담을 받으라는 내용과 함께 이름과 연락처, 흡연 여부를 묻는 정도)으로 연락들이 들어오기 시작헀다.

10. 대형 보험회사의 한 에이전트에게 해당 리드들을 독점적으로 제공하기로 계약을 했다.

11. 그 이후 몇가지 항목을 추가했는데, 그 때 리드 하나당 가격을 몇백불로 인정해줬다.

12. 이 때 이게 특별한게 아니라 리드 비즈니스에서 일반적인 가격대(후하지도 모자라지도 않는 적정 수준의 가치)라는 것도 알게 되었다.

13. 오바마 케어가 시행되면서 사이트는 더 트래픽이 몰렸고, 큰 금액은 아니었지만 좋은 조건으로 매각했었다.

14. 생각해보면, 이런 정보 제공 사이트를 만든 후 검색 엔진 최적화를 하고 리드 생성 엔진을 달면 언제든 매수자는 나올 법 싶다. 이런 모델에서 발전한게 Thumbtack 같은 곳들이 아닐까?

15. 특히 니치한 마켓은 정보 불균형이 심한 곳들이 아직도 많기 때문에, 여전히 이 방법은 유효한거 같다.

16. 구글 검색을 했을 때, 나오는 보험 비교 사이트들이 대부분 리드 수집 회사이다.

17. 구글에서 검색 광고 키워드가 비싼 몇몇 키워드 중 하나가 보험이다.

 

+

 

리드 수집에 있어서 중요한 2가지

어쨌든 리드를 찾고 데이터로 가공하기 위해서는 몇가지 중요한 기본들이 있다.

목표 시장을 식별하는 것과 잠재 고객을 식별하고 나열하는 것.

내가 파이썬 스터디 모임에서 풀고자 했던 문제의 경우를 다시 생각해보자. 대부분의 데이터를 구글 맵에서 검색해서 찾을 수 있다. 목표 시장별 검색 결과로 잠재 고객을 식별해낼 수 있다.

가령, 내가 친환경 일회용 식기류 제조사 또는 브랜드일 경우 구글맵에서 손쉽게 내 잠재 고객들을 식별할 수 있다. Chinese Restaurants 등이 적절한 목표 시장이 될 수 있다. 마찬가지로 스파 용품을 판매 중이라면, 구글 맵에서 마찬가지로 스파들만을 찾아낼 수 있다.

이렇게 찾은 결과는 이미 구글에서 식별되고 나열된다. 이 데이터들을 CSV 파일 등으로 보기 쉽게 가져오는게 우선은 첫번째 단계다.

구글 Map 데이터를 빠르게 실시간으로 패치할 수 있도록 API는 만들었고 잘 작동되는걸 확인했다. 결과값은 맘에 든다.

[
    {
      "name": "National Museum of the American Indian",
      "full_address": "1 Bowling Green, New York, NY 10004",
      "borough": "Manhattan",
      "street": "1 Bowling Green",
      "city": "New York",
      "postal_code": "10004",
      "country_code": "US",
      "country": "United States of America",
      "us_state": "New York",
      "state": "New York",
      "plus_code": null,
      "latitude": 40.7039861,
      "longitude": -74.01368889999999,
      "time_zone": "America/New_York",
      "site": "http://www.americanindian.si.edu/",
      "phone": "+1 212-514-3700",
      "type": "National museum",
      "subtypes": "National museum, Tourist attraction",
      "posts": null,
      "rating": 4.4,
      "reviews": 3684,
      "reviews_data": null,
      "photos_count": 19359,
      "google_id": "0x89c25a13ea8996f7:0x8891204f43265340",
      "place_id": "ChIJ95aJ6hNawokRQFMmQ08gkYg",
      "reviews_link": "https://search.google.com/local/reviews?placeid=ChIJ95aJ6hNawokRQFMmQ08gkYg&q=museums+near+New+York,+NY,+USA&authuser=0&hl=en&gl=US",
      "reviews_id": "-8606061888127216832",
      "photo": "https://lh5.googleusercontent.com/p/AF1QipM-H0FWxL1FhlJQBJ7X3-D3VDrySvJenqzEuGhS",
      "working_hours": {
        "Monday": "10AM–5PM",
        "Tuesday": "10AM–5PM",
        "Wednesday": "10AM–5PM",
        "Thursday": "10AM–8PM",
        "Friday": "10AM–5PM",
        "Saturday": "10AM–5PM",
        "Sunday": "10AM–5PM"
      },
      "business_status": "CLOSED_TEMPORARILY",
      "about": {
        "Accessibility": {
          "Wheelchair accessible elevator": true,
          "Wheelchair accessible restroom": true,
          "Wheelchair accessible parking lot": false
        }
      },
      "range": null,
      "reviews_per_score": {
        "1": 66,
        "2": 78,
        "3": 347,
        "4": 866,
        "5": 2327
      },
      "reserving_table_link": null,
      "booking_appointment_link": null,
      "owner_id": "107114672541065218029",
      "verified": true,
      "owner_title": "National Museum of the American Indian",
      "owner_link": "https://www.google.com/maps/contrib/107114672541065218029",
      "location_link": "https://www.google.com/maps/place/National+Museum+of+the+American+Indian/@40.7039861,-74.01368889999999,14z/data=!4m8!1m2!2m1!1sNational+Museum+of+the+American+Indian!3m4!1s0x89c25a13ea8996f7:0x8891204f43265340!8m2!3d40.7039861!4d-74.01368889999999"
    },
    ...
]

 

이런 스크랩핑 패치 API를 만들면서 느낀 점

꼭 구글 맵 데이터만이 아니어도 다른 몇가지 데이터를 빠르게 가져올 수 있는 표준 패치 API를 만들면 응용 범위가 확 늘어날 수 있다. 표준 API를 만들고 각 소스 데이터에 적용 가능하게 만들면 이를 통해 다양한 정보들을 빠르게 수집할 수 있을거 같다. 조금만 응용하면 다음과 같은 데이터를 빠르게 가져올 수 있다.

  • 구글 맵 리뷰 데이터들
  • 구글 검색 결과 데이터들
  • 조금 응용하면, 아마존 제품 API도 만들 수 있다.

데이터를 가져와서 CSV 파일 등으로 빠르게 생성을 했다.

Sample-Result-1-1024x390.png

(Los Angeles에 있는 Medical Spa 데이터만을 가져와서 CSV 파일로 Export)

근데, 이 경우 처음에 해결하고자 하는 문제를 여전히 해결할 수가 없다. (이전 글 작성 때부터 이미 알고 있었던 문제인데) 구글 맵 데이터에는 비즈니스 정보를 폭넓게 가져올 순 있지만 컨택 정보가 전화 번호에 국한된다.

그럼 실패일까? 아니다.

기본 데이터 수집을 할 수 있는 좋은 소스 채널은 맞다. 실패는 아니다. 방법을 좀 더 고민해보자.

 

+

 

구글 맵 데이터에서 이메일 주소 등을 수집하는 방법

수집된 정보 데이터를 보면, 홈페이지 정보를 볼 수 있다. 몇몇 홈페이지들을 클릭해서 들어가보면, 이메일 주소와 소셜 미디어 정보 등을 확인할 수 있었다. 하나 하나 홈페이지를 클릭해서 확인해보니 높은 확율로 이메일 주소가 있는걸 다시 확인할 수 있었다. 업종에 따라 다르지만, 소셜 미디어 프로필 정보도 게시된 곳들을 많이 확인할 수 있었다.

여기에서 고민, 차라리 업종 + 상세 지역명으로 나오는 구글 검색 결과를 자동으로 다음 단계로 넘어가 정보를 가져오는 방법이 더 좋지 않을까?

이 경우도 분명 좋을수 있는데, 난이도가 있긴 하다. 해당 검색 결과를 봇이 하나 하나 링크를 클릭해서 들어간 후 소스 코드를 읽은 후 특정 데이터들을 찾아내야 하는데, 보통 홈페이지들이 내가 수집하고자 하는 데이터들을 정형화된 클라스 등으로 표기하지 않기 때문에, 텍스트 인덱싱을 거친 후 해당 데이터를 다시 찾아야 한다.

가령 홈페이지에 해당 데이터가 없을 경우 다른 페이지들 예를 들면, About Us, Our Story, Contact Us 등 많은 세부 페이지들에도 같은 작업을 반복해야 한다. 시간이 쓸데없이(?) 많이 걸릴 수 밖에 없는 이유이다.

이런 생각을 하다가, 범용화된 솔루션이 차라리 더 좋은 방법이라고 깨달았다.

기본적인 스크랩핑 훅은 각각의 용도와 채널에 맞춰 나눈 후 생성된 데이터를 후작업하는 엔진을 따로 만들면 된다.

이 경우,

  1. 구글 맵에서 상세 데이터 수집 > 수집된 데이터에서 이메일 등 주소를 다시 찾는 2차 작업
  2. 구글 검색 결과에서 추가 데이터 수집(해당 상호나 전화번호로 홈페이지와 소셜 미디어 프로필 등을 찾기 위한) > 1번과 동일한 2차 작업
  3. 또 다른 소스에서 찾은 데이터
  4. …n개의 다른 소스에서 찾은 데이터 > 2차 작업

수집되어 Export 한 CSV 파일에는 공통적으로 URL만 있으면 된다. 이 URL 데이터들을 넣어서 돌리면 이메일 주소, 페이스북 등 소셜 미디어 링크 등을 추가로 가져오는 API를 만들면 된다.

단계가 2단계로 나뉘지만, 이 경우 필요에 따른 여러 조합으로 데이터 가공을 할 수 있게 된다.

  1. 기본적인 Raw Data 수집 > 내 경우는 홈페이지 URL
  2. 수집한 원시 데이터에서 필요한 정보를 추출하기 위한 작업

자 이제 다음 단계는 홈페이지들에서 내가 원하는 정보들을 추출하는 API와 CSV 등으로 추출해내는 Export 기능을 분리해서 만들면 된다.

 

+

 

이런 저런 메모들을 하면서 스터디 모임을 준비했었다. 

인터페이스를 따로 만들진 못헀지만, 실제 한국의 모 기관에 이렇게 특정 분야의 미국내 리드 정보를 815개를 수집해서 제공했다.

image.png.ce3a2e01052c97807fb235284b6a5828.png

이 토이 프로젝트는 준비 과정에서 적절한 예를 위해 시작했고, 이정도에서 끝내기로 결론을 내렸다.

그렇지만, 나중에 시간이 되면,

  • UI를 만들고 다듬어 보고 싶다.
  • ChatGPT API 등이 공개되면, 수집된 정보 기반으로 해당 이메일에 자동으로 Sales 이메일을 보내는것까지 가능할꺼 같다.  

 

 

  • Like 5

3 개의 댓글


추천 댓글들

  • beTITAN 정회원
James

Posted

Wow, Crazy

  • Like 2
  • 커뮤니티 안내자
Key

Posted

15 hours ago, James said:

Wow, Crazy

오늘 한글 자판 키보드 득템했습니다. : ) 어르신들용인지 크게 크게 써 있어서 아주 맘에 쏘옥 드실꺼예요 : )

  • Like 2
  • 커뮤니티 안내자
Key

Posted

이 글을 읽고 미국 시장 진출을 고려 중이거나 지금 현재 진행 중인 중소기업 중 자신의 제품과 서비스와 관련된 로컬 리테일 스토어들과 온라인 스토어들 데이타를 받아보시고 싶으신 분은 아래 내용을 참고해서 사이트 하단 문의하기 메뉴를 클릭해 주세요. 

1. 대상: 한국 기업(중소기업, 브랜드 오너 등)

2. 신청 지역: 신청 지역을 한개의 State 단위로 한정해 주세요.(예. 캘리포니아) 미 전역을 할 경우 너무 데이타가 방대해서 콜록

3. 업종 또는 아이템: 데이타 수집을 원하는 업종 또는 자신의 아이템을 알려주세요.

4. B2B 홀세일 공급을 위한 경우에 한해 무상으로 데이타 수집을 해서 전달해드리겠습니다.

5. 로컬 리테일러 공급 레퍼런스는 향후 월마트 등에 제품 공급 피치를 할 때 유리하게 작용합니다. : )

6. 신청시, 반드시 회사 이메일로 신청해주시고, 회사 홈페이지 등 기본적인 준비 사항(미국 시장 진출)이 갖춰 있어야 합니다.(개인적인 시간을 들여 무상으로 제공해드리기 때문에, 신청하시는 분도 진지하고 준비가 되어 있어야 합니다.)

  • Like 2
Guest
[잠긴글 안내] 이 포스팅에는 더 이상 추가 댓글 작성을 하실 수 없습니다.
  • 주변 예비 타이탄에게 타이탄 커뮤니티를 소개하기

    비타이탄 커뮤니티가 맘에 드신다면, 더 많은 예비 타이탄분들이 읽을 수 있게 소개해주세요.
×
×
  • Create New...