Google 검색 데이터에 대해 쿼리를 실행하여 숙박 시설이 Google 검색 결과에 표시되는 빈도, 검색어, 데스크톱 또는 스마트폰 등 다양한 정보를 확인할 수 있습니다. 이 결과를 사용하여 속성의 검색 실적을 개선할 수 있습니다. 예를 들면 다음과 같습니다.
- 시간 경과에 따른 검색 트래픽 변화, 검색 트래픽의 출처, 숙박 시설을 표시할 가능성이 가장 높은 검색어를 확인합니다.
- 스마트폰에서 생성되는 검색어를 파악하고, 이 정보를 활용하여 모바일 타겟팅을 개선합니다.
- Google 검색결과에서 최고(및 최저) 클릭률을 보이는 페이지를 확인합니다.
검색 쿼리 데이터는 searchanalytics.query()
메서드를 사용하여 노출됩니다. query()
메서드는 Search Console의 실적 보고서에서 사용 가능한 모든 데이터를 노출합니다. 쿼리를 실행하기 전에
실적 보고서 문서를 읽고 노출되는 데이터와 그 의미를 파악해야 합니다.
이 페이지에서는 다양한 요청 매개변수를 사용하여 일반적인 쿼리를 수행하는 방법을 설명합니다.
시작하기
데이터 존재 여부 확인
쿼리를 실행하기 전에 먼저 해당 기간의 데이터가 있는지 테스트해야 합니다. 필터, 정렬, 행 제한, 시작일, 종료일, '날짜'를 제외한 다른 모든 매개변수를 생략합니다(날짜는 유일한 측정기준으로 사용).
코드
request = { 'startDate': flags.start_date, 'endDate': flags.end_date, 'dimensions': ['date'] }
출력
python search_analytics_api_sample.py 'https://www.example.com/' '2015-05-01' '2015-05-15' Available dates: Keys Clicks Impressions CTR Position 2015-05-01 22823.0 373911.0 0.0610385893969 8.1829472789 2015-05-02 16075.0 299718.0 0.0536337490574 8.14173322924 2015-05-03 18794.0 337759.0 0.055643224903 8.07772405769 2015-05-04 31894.0 468076.0 0.0681385074219 7.4104611217 2015-05-05 34392.0 482919.0 0.071216912153 7.20689805123 2015-05-06 35650.0 484353.0 0.0736033430164 7.11683214515 2015-05-07 33994.0 465812.0 0.0729779395979 6.91755472165 2015-05-08 27328.0 413007.0 0.0661683700276 7.22172747677 2015-05-09 16637.0 297302.0 0.0559599329974 8.01876206685 2015-05-10 19167.0 332607.0 0.0576265682923 7.87882696395 2015-05-11 35358.0 499888.0 0.070731843933 7.11701821208 2015-05-12 35952.0 486583.0 0.073886675038 6.80677294521 2015-05-13 34417.0 480777.0 0.071586203167 6.86552185317 2015-05-14 32029.0 457187.0 0.0700566726525 6.92575904389 2015-05-15 27071.0 415973.0 0.0650787430915 7.27105605412
다른 날짜 시도
해당 기간의 데이터가 있으므로 계속 진행해도 됩니다. 실제 쿼리를 실행하기 전에 이 작업을 하는 것이 중요합니다. 예를 들어 다른 범위에 대해 동일한 쿼리를 실행하면 다음과 같이 반환됩니다.
python search_analytics_api_sample.py 'https://www.example.com/' '2015-06-01' '2015-06-15' Available dates: Keys Clicks Impressions CTR Position 2015-06-01 31897.0 468486.0 0.0680852789624 6.81207122518 2015-06-02 32975.0 460266.0 0.0716433540605 6.62655942433 2015-06-03 32779.0 459599.0 0.0713208688444 6.58126758326 2015-06-04 30116.0 435308.0 0.0691831990223 6.71409668557 2015-06-05 25188.0 380444.0 0.0662068530454 7.00998570092 2015-06-06 14829.0 272324.0 0.0544535186028 7.6309910254 2015-06-07 17896.0 318094.0 0.056260099216 7.56606223318 2015-06-08 33377.0 487274.0 0.0684973957158 6.77552260125 2015-06-09 33885.0 484241.0 0.0699754874123 6.70545451542 2015-06-10 32622.0 466250.0 0.0699667560322 6.64417372654 2015-06-11 31317.0 447306.0 0.0700124746818 6.61534832978 2015-06-12 25932.0 393791.0 0.065852190629 7.15718998149 2015-06-13 15451.0 275493.0 0.0560849095984 7.69994518917 2015-06-14 18358.0 318193.0 0.0576945438775 7.34048517724
자세히 살펴보면 14일에 데이터가 끝나고 15일에 데이터가 없는 것을 확인할 수 있습니다.
자유 형식 편집 모드에서 API 탐색기를 사용하여 쿼리를 빠르게 테스트하는 것이 유용할 수 있습니다 (요청 본문 필드 옆에 있는 드롭다운 화살표를 클릭하고 '자유 형식 편집기'를 클릭).
유효한 기간을 확인한 후에는 다른 측정기준으로 그룹화하고 필터, 행 개수 제한 등을 추가할 수 있습니다.
클릭수 기준 내림차순으로 정렬된 상위 10개 검색어
코드
request = { 'startDate': flags.start_date, 'endDate': flags.end_date, 'dimensions': ['query'], 'rowLimit': 10 }
출력
Top Queries: Keys Clicks Impressions CTR Position seo 3523.0 270741.0 0.0130124362398 5.86615252215 hreflang 3207.0 5496.0 0.583515283843 1.10080058224 robots.txt 2650.0 23005.0 0.115192349489 4.30367311454 301 redirect 2637.0 7814.0 0.337471205529 1.621192731 googlebot 2572.0 6421.0 0.400560660333 1.15823080517 google seo 2260.0 11205.0 0.201695671575 1.38295403838 google sitemap 1883.0 4288.0 0.439132462687 1.21175373134 canonical url 1882.0 3714.0 0.506731287022 1.12762520194 sitemap 1453.0 22982.0 0.06322339222 3.78074144983
클릭수 기준으로 내림차순으로 정렬된 상위 10개 페이지
코드
request = { 'startDate': flags.start_date, 'endDate': flags.end_date, 'dimensions': ['page'], 'rowLimit': 10 }
출력
Top Pages: Keys Clicks Impressions CTR Position https://www.example.com/21 10538.0 62639.0 0.168233847922 3.63031019014 https://www.example.com/65 9740.0 82375.0 0.118239757208 5.61003945372 https://www.example.com/15 9220.0 128101.0 0.0719744576545 5.32300294299 https://www.example.com/41 8859.0 426633.0 0.0207649197319 1.62309057199 https://www.example.com/53 8791.0 829679.0 0.0105956641062 14.4941887164 https://www.example.com/46 7390.0 82303.0 0.0897901656076 5.7723290767 https://www.example.com/27 7169.0 64013.0 0.111992876447 4.98709637105 https://www.example.com/80 6047.0 84233.0 0.0717889663196 4.10592048247 https://www.example.com/9 5886.0 59704.0 0.0985863593729 4.0897594801 https://www.example.com/8 5043.0 66869.0 0.0754161120998 4.57651527614
인도에서 클릭수 기준으로 내림차순으로 정렬된 인기 검색어 10개
필터 연산자 'equals'는 기본 연산자이므로 생략됩니다.
코드
request = { 'startDate': flags.start_date, 'endDate': flags.end_date, 'dimensions': ['query'], 'dimensionFilterGroups': [{ 'filters': [{ 'dimension': 'country', 'expression': 'ind' }] }], 'rowLimit': 10 }
출력
Top queries in India: Keys Clicks Impressions CTR Position googlebot 250.0 429.0 0.582750582751 1.0 search console 238.0 34421.0 0.00691438366114 1.00101682113 dns error 189.0 850.0 0.222352941176 1.38470588235 google seo 165.0 552.0 0.298913043478 1.04166666667 canonical url 141.0 282.0 0.5 1.0 301 redirect 132.0 557.0 0.236983842011 1.78276481149 google search console 126.0 16898.0 0.00745650372825 1.03929459108 robots.txt 117.0 1046.0 0.111854684512 3.9206500956 canonical tag 111.0 223.0 0.497757847534 1.0
인도의 상위 10개 모바일 쿼리(클릭수 기준 내림차순 정렬)
코드
request = { 'startDate': flags.start_date, 'endDate': flags.end_date, 'dimensions': ['query'], 'dimensionFilterGroups': [{ 'filters': [{ 'dimension': 'country', 'expression': 'ind' }, { 'dimension': 'device', 'expression': 'MOBILE' }] }], 'rowLimit': 10 }
출력
Top mobile queries in India: Keys Clicks Impressions CTR Position search console 26.0 1004.0 0.0258964143426 1.00298804781 dns error 24.0 111.0 0.216216216216 1.27927927928 google seo 18.0 69.0 0.260869565217 1.02898550725 eliminar 16.0 134.0 0.119402985075 1.0 googlebot 11.0 24.0 0.458333333333 1.0 404 9.0 214.0 0.0420560747664 8.64018691589 robots.txt 9.0 40.0 0.225 4.025 google search console 8.0 438.0 0.0182648401826 1.04337899543 seo 8.0 111.0 0.0720720720721 4.96396396396
행 슬라이스 쿼리
시작 행 번호 (0부터 시작)와 반환할 행 수를 지정하여 특정 행 슬라이스를 쿼리할 수 있습니다. 잘못된 시작 행 번호를 지정하면 오류가 반환되지만 사용 가능한 행보다 더 많은 행을 지정하면 사용 가능한 모든 행이 반환됩니다.
해당 기간의 상위 11~20개 모바일 검색어(클릭수를 기준으로 정렬, 내림차순 정렬)
코드
request = { 'startDate': flags.start_date, 'endDate': flags.end_date, 'dimensions': ['query'], 'dimensionFilterGroups': [{ 'filters': [{ 'dimension': 'device', 'expression': 'mobile' }] }], 'rowLimit': 10, 'startRow': 10 }
출력
Top 11-20 Mobile Queries: Keys Clicks Impressions CTR Position dns error 1220.0 15064.0 0.0809877854 3.13448726206 google seo 1161.0 7923.0 0.146535403 2.31479556195 sitemap 926.0 12478.0 0.0742106107 5.8130025067 googlebot 903.0 7822.0 0.115443621 4.6910285792 robots.txt 799.0 24868.0 0.0321296445 5.92759215963 404 520.0 12777.0 0.0406981295 5.80352636506 seo 506.0 2925.0 0.172991453 2.50413960996 search console 487.0 981.0 0.496432212 1.00036102455 canonical url 326.0 4087.0 0.0797651089 3.23664971157 301 redirect 261.0 3165.0 0.082464455 3.63074363869
행이 25,000개를 초과함
쿼리의 데이터 행이 25,000개를 초과하는 경우 여러 개의 쿼리를 전송하고 매번 startRow 값을 증분하여 한 번에 25,000개의 행 단위로 데이터를 요청할 수 있습니다. 검색된 행 수를 계산합니다. 요청된 행 수보다 적은 경우 모든 데이터를 검색한 것입니다. 요청이 데이터 경계에서 정확히 종료되는 경우 (예: 행이 25,000개 있고 startRow=0 및 rowLimit=25000을 요청함) 다음 호출 시 빈 응답이 반환됩니다.
기간 동안 클릭수 기준으로 내림차순으로 정렬된 상위 1~25,000개의 모바일 검색어
코드
request = { 'startDate': flags.start_date, 'endDate': flags.end_date, 'dimensions': ['query'], 'dimensionFilterGroups': [{ 'filters': [{ 'dimension': 'device', 'expression': 'mobile' }] }], 'rowLimit': 25000, 'startRow': 0 }
기간 동안 클릭수 기준으로 내림차순으로 정렬된 상위 25,001~50,000개의 모바일 검색어
코드
request = { 'startDate': flags.start_date, 'endDate': flags.end_date, 'dimensions': ['query'], 'dimensionFilterGroups': [{ 'filters': [{ 'dimension': 'device', 'expression': 'mobile' }] }], 'rowLimit': 25000, 'startRow': 25000 }
모든 데이터 가져오기
모든 검색 트래픽 쿼리를 참고하세요.