Big Data w eCommerce – jak zwiększyć sprzedaż nie zwiększając budżetów?

Image Description
Dawid Krystosik
czw. 01.08.2019

Big Data w eCommerce

Reklamując cały asortyment naszego sklepu jesteśmy pewni, że poszukujący klienci odnajdą wszystkie nasze produkty wyszukując je w sieci. Jednak – jak wynika z naszych doświadczeń – nie zawsze najlepiej sprzedający się produkt jest produktem, który opłaca się promować. Często koszty zjadają cały zysk ze sprzedaży produktu, co powoduje, że jego reklama jest nieopłacalna. Tylko co zrobić, gdy baza naszych produktów to setki lub tysiące artykułów? Ciężko każdego dnia przeprowadzać analizy uwzględniające możliwie jak najwięcej czynników, a następnie wyłączać reklamy produktów, które pomimo dobrej sprzedaży obniżają rentowność naszego sklepu. Badając marżę nie znajdziemy produktów, których reklamę należy ograniczyć. Równie istotnym czynnikiem są produkty, które powodują sprzedaż innych produktów. Nie możemy rezygnować z klientów, którzy trafiają do naszego sklepu szukając danego (teoretycznie nierentownego) przedmiotu, a wychodzą z zakupionymi trzema innymi. Powinniśmy również co jakiś czas badać, czy nie zmienił się sposób zachowania klientów, czy nie obniżyły się koszty reklamy danego produktu albo czy nie zwiększyła się marża na naszym produkcie. Do tak kompleksowych działań najlepiej zaprzęgnąć komputery oraz Big Data i pozwolić im wykonywać pracę za nas – ograniczając nasze działania do ewentualnej kontroli ich poczynań.

Jak zautomatyzować działania dzięki skryptom i danym?

Jak zacząć?

Podstawą każdych działań reklamowych w Internecie które mają być zarządzane przez automaty jest przemyślana i konsekwentna struktura kont. Najłatwiej uzyskać taką strukturę korzystając z szablonów. Najwygodniej zarządzać kontami, gdy każde ze słów kluczowych będzie posiadało etykiety opisujące produkty do których kierują. Kolejne informacje o automatycznym tworzeniu struktur napiszemy w jednym z następnych artykułów.

Najprostszy sposób automatycznego zarządzania takimi kontami to skrypty Google Ads. Jednak aby „wiedziały” one które reklamy włączać i wyłączać potrzebujemy dla nich wsadu. Wsad taki należy przygotować w bazie danych, którą w najprostszej wersji zasilimy danymi z Google Ads (informacje o kosztach, konwersji, klikalności) i naszego systemu CRM (informacje o sprzedaży, marży, zawartości koszyków). Inne przydatne dane pozwalające nam jeszcze lepiej dobierać produkty które należy promować to np. informacje z Google Analytics czy z Facebooka. Dane z Google Analytics dodadzą nam informacji takich jak oglądane produkty, informacje o produkcie dzięki któremu użytkownik rozpoczął zakupy itp..

Jak przechowywać nasze dane?

Musimy pamiętać że są to cenne dane i należy zadbać o ich bezpieczne przechowywanie. Generalnie mamy cztery możliwości:

  1. Przechowywanie danych na własnym serwerze – teoretycznie najtańsze
  2. Serwery dedykowane
  3. VPS
  4. Rozwiązania chmurowe.

Własny serwer (może to być zwykły PC z zainstalowanym np. MySQL) to rozwiązanie tanie na starcie ale wymagające od nas cennego czasu na dbanie o kopie zapasowe, stałe zasilanie, dostęp do Internetu, aktualizacje i wszystkie inne czynności administracyjne związane z utrzymaniem serwera (lub pracownika). Możemy też zasoby na naszą bazę danych wykupić w ramach abonamentu gdzie otrzymujemy często gotowy serwer bazy danych a większość czynności utrzymaniowych i administracyjnych zostają po stronie dostawcy usług. O zaletach i wadach serwerów dedykowanych, VPS i chmur przeczytasz np. tutaj. Jednak przy naszych rozwiązaniach związanych z Google Ads i Big Data, warto rozważyć ofertę Google Cloud Platform. Informację jak podłączyć się do bazy danych znajdziemy w dokumentacji. A przykładowy fragment kodu wysyłający dane z Google Ads poniżej.

var table_name = 'Testowa_tabela';
var batchSize = 10000;
var report = AdWordsApp.report(
'SELECT CampaignId, AdGroupId, Id, Status, FinalUrls FROM KEYWORDS_PERFORMANCE_REPORT where Status != REMOVED and CampaignStatus != REMOVED and AdGroupStatus != REMOVED');
var stmt = conn.prepareStatement('insert INTO ' + table_name + ' ([CampaignId],[AdGroupId],[Id],[Status],[FinalUrls]) values (?, ?, ?, ?, ?)');
var count = 0;
var rows = report.rows();
while (rows.hasNext()) {
var row = rows.next();
stmt.setLong(1, row["CampaignId"]);
stmt.setLong(2, row["AdGroupId"]);
stmt.setLong(3, row["Id"]);
stmt.setString(4, row["Status"]);
stmt.setString(5, row["FinalUrls"]);
stmt.addBatch();
if (++count % batchSize == 0){
var batch = stmt.executeBatch();
conn.commit();
};
};

var batch = stmt.executeBatch();
conn.commit();
conn.close();

Nasze małe Big Data dla eCommerce

Posiadając już w jednym miejscu dane na temat naszych produktów, należy zastanowić się jakie dane należy zestawić tak, aby otrzymać listy produktów, których reklama powinna zostać wstrzymana lub wznowiona. Takich list warunków będzie na pewno kilka lub kilkanaście, w zależności od tego do jakiej grupy należy produkt. Bez względu na to czy potrafimy tworzyć zapytania do bazy danych czy nie – warto spisać warunki słownie. Zarządzając sklepem sami najlepiej wiemy jak działa rynek i jak sprzedają się nasze produkty, a spisane warunki łatwiej będzie bezbłędnie przełożyć na język bazy danych. Poniżej przykładowa definicja listy produktów do wstrzymania.

Produkty, dla których będą spełnione wszystkie poniższe warunki:

  • Suma kosztów reklamy z ostatnich 7 dni jest wyższa niż 70% sumy marży z ostatnich 7 dni
  • Suma kosztów reklamy z ostatnich 30 dni jest wyższa niż 70% sumy marży z ostatnich 30 dni
  • Produkt nie inicjuje zakupu gdzie koszyk ma wartość większą niż 300zł
  • Produkt nie należy do grupy ‘Duże AGD’
  • Produkt nie należy do grupy ‘Wyprzedaż’

Taka lista jest podstawą do uruchomienia skryptu, który pobierze listę produktów i w zależności od potrzeb włączy lub wyłączy reklamy. Przykład takiego skryptu:

var stmtread = conn.createStatement();
var results = stmtread.executeQuery('SELECT AdGroupId,Id FROM ' + tabela_z_produktami_do_pauzowania);
var i = 0;
var keywordIds = new Array();

while (results.next()) {
keywordIds[i] = new Array (results.getLong(1), results.getLong(2));
i++;
}

var kwIter = AdWordsApp.keywords()
.withIds(keywordIds)
.withCondition("Status = ENABLED")
.get();

var toPause = [];
while (kwIter.hasNext()) {
var kw = kwIter.next();
toPause.push(kw);
}

for(var i in toPause) {
toPause[i].pause();
}

Dodatkowo posiadając takie listy możemy usprawnić albo wręcz powierzyć bazie proces generowania feeda produktowego do takich rozwiązań jak Google Merchant Center. Pełną kontrolę, zapewni przygotowanie raportu, który każdego dnia będzie nas informował jakie produkty zostały wyłączone lub włączone z listy promowanych produktów.

Korzyści z  Big Data w eCommerce

Jakich przykładowych efektów możemy się spodziewać po wdrożeniu powyższego rozwiązania?

  • Spadek kosztów przy zachowaniu poziomu przychodów
  • Wzrost przychodów przy zachowaniu poziomu kosztów
  • Wzrost współczynnika konwersji
  • Wzrost średniej procentowej marży na produkcie
  • Wzrost ROAS i ROI

Co dalej?

Posiadając dane w jednym miejscu i dołączając kolejne informacje o naszych produktach możemy badać jakie inne czynniki wpływają na naszą sprzedaż. Równie dobrze możemy dzięki temu rozwiązaniu wyłączać reklamy Google Ads produktów, których mamy mało na stanie albo takich, których czas dostawy aktualnie się wydłuża (co np. negatywnie wpływa na oceny naszych produktów). A może koszty spadną, gdy reklamy części produktów będziemy kierować tylko do kobiet? Możliwości są ograniczone tylko naszą wyobraźnią i danymi, które posiadamy.

Jeżeli nie masz dość zasobów aby wdrożyć taką funkcjonalność w swoim sklepie my pomożemy Ci najlepiej wykorzystać środki przeznaczone na promocję Twoich produktów. Dodatkowo jeżeli masz pomysł na inne rozwiązania albo pomysłu nie masz ale czujesz że potrzebne są zmiany zapraszamy do kontaktu i wspólnie spróbujemy znaleźć rozwiązanie jak rozwinąć Twój biznes.

1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (8 głosy, średnia ocena: 5,00)
Loading...
Image Description

Specjalista od baz danych. Od 2014 współpracuje z różnymi agencjami marketingu online, wspierając je przy tworzeniu skryptów, analiz i niestandardowych rozwiązań w technologiach javascript, python oraz SQL. Obecnie Head of Analytics w AdPeak. Majsterkowicz, zwolennik prostych i szybkich rozwiązań, miłośnik nicnierobienia w dziczy.