Digisemestr – workshop – 🥩 kanibalizace 🥩

Máte-li MacOS, tak musíte do hlavičky umístit skript kvůli správnému kódování slov jinak se vám případné znaky s háčky a čárky převedou do divného formátu <U-123>. Nemáte-li MacOS tak to v žádném případě nedělejte.

## Máte-li MacOS
Sys.setlocale("LC_CTYPE", "en_US.UTF-8")

Načtení knihoven:

library(googleAuthR)
library(tidyverse)
library(searchConsoleR)

Přihlášení do GSC:

## Přihlášení do GSC:
scr_auth()

## Výpis webů ve vlastnictví:
list_websites()

Nastavení proměnných:

## Nastavení skriptu:
sc_domain = "https://www.zatkovic.cz/"
sc_days_to_start = 90
sc_start = as.character(as.Date(Sys.Date()) - sc_days_to_start - 3)
sc_end = as.character(Sys.Date() - 3)
sc_limit = 10000
sc_brand = "martin|žatkovič"

Stažení dat z GSC:

## Stažení dat z Google Search Console
queries_all <- search_analytics(sc_domain, 
                                sc_start, 
                                sc_end, c("query", "page"), 
                                dimensionFilterExp = c("country==cze"), 
                                rowLimit = sc_limit)

Načtení dat ze souboru:

Potřebujete-li sample data, tak jsou zde.

## Načtení ze souoru:
## (nemáte li vlastní GSC)
## queries_all <- read.csv("sample_query_page.csv")
## queries_all <- queries_all[,c(-1)]

Základní filtrace:

## Základní filtrace:
queries_filtered <- queries_all %>%
  filter(position<=30) %>%
  filter(clicks!=0) %>%
  filter(!str_detect(query, sc_brand))

Skript pro vyřešení kanibalizace:

## Celé nalezení kanibaluzace  
queries_computed <- queries_filtered %>%
  group_by(query) %>%
  mutate(clicksT= sum(clicks)) %>%
  group_by(page, add=TRUE) %>%
  mutate(per=round(100*clicks/clicksT,2))

Začištění datasetu:

## Seřazení pro lepší čtení
queries_final <- queries_computed %>%
  arrange(desc(clicksT))

## Odebrání propočítávaných metrik
queries_final <- queries_final[,c(-7)]

## Smazání pohodových slov
queries_final <- queries_final[queries_final$per != 100,]

## Záloha dotazů
queries_final$query_bu <- queries_final$query

## Úprava datasetu pro OpenRefine
queries_final$query[duplicated(queries_final$query)] <- ""

## Zaokrouhleni
queries_final$position <- round(queries_final$position,2)
queries_final$ctr <- round(queries_final$ctr * 100,2)

Export do .csv

## Finalizace
if(is.data.frame(queries_final) && nrow(queries_final)==0){
  cat("\014")
  print("------------------------------------")
  print("Váš web nemá problémy s kanibalizací")
  print("------------------------------------")
  
}else{
  ## Kukuč na data
  View(queries_final)
  
  ## Export do CSV
  write.csv(queries_final, file = "keyword-cannibalization.csv")
}