Winning the marketing competition today is impossible without applying data analysis to improve business performance. The new technologies allow companies to transform their workflow, effectively leverage data for making decisions, and reach marketing goals faster.
In this case, we describe the solution provided by the OWOX BI team for an omnichannel retailer of furniture and household items which customers make purchases on the website, in brick-and-mortar stores, and/or by phone through a call center. It had challenges with improving its online advertising ROI.
As the company was looking to improve its online advertising ROI, its strategy involved the following steps:
The process involved: collecting full data (user actions; orders made online, offline, and by phone; advertising performance data), implementing a custom attribution model, and automating bid management in the bid management system.
The company needed to know how well each keyword performs to automate bids. All customer touchpoints, including online sessions across devices, phone calls, and purchases in physical stores need to be stitched together to determine keyword values. In Google Analytics, there’s no such option.
Attribution models in Google Analytics can’t evaluate advertising channels accurately because of the following shortcomings:
Incorrect evaluation of keyword performance makes it difficult to set bids correctly. Consequently, a high bid would be a waste of budget, and a low one would drive fewer customers.
Data about phone orders and offline orders, as well as cost data for non-Google paid advertising campaigns, is unavailable in Google Analytics. So, the data collection and attribution modeling is set up in Google BigQuery.
This service was chosen for the following reasons:
The value of channels and keywords were calculated in Google BigQuery to manage bids and then the results were imported to the bid management system using RESTful API.
Now, let’s take a closer look at each step.
Google AdWords cost and performance data is automatically imported to Google Analytics thanks to the native integration and account linking.
OWOX BI Pipeline is used for:
The following data is sent to Google BigQuery using APIs:
The data collection flowchart is given below:
Now all user behavior data from physical stores, call centers, and the website, is collected in Google BigQuery. The session data (hit sequences, session IDs, and encrypted personal data of the users) is transferred to Google BigQuery using OWOX BI Pipeline. The sessions are associated with users by the following parameters:
The company groups sessions using SQL queries. Let’s take a look at 3 examples of how the data is combined.
Anna browses sofas on the website using a browser app on her smartphone. After some time, she visits the website again on the same device, makes her choice, signs in via email, and adds the sofa to her cart. Since the device and browser are the same, these two sessions are grouped by ClientID. Anna comes home, opens her laptop, logs in to her account, and buys the sofa she chose. Now the sessions on her phone and laptop can be combined by UserID:
Nick visits the website while looking for a new kitchen table on his work computer. During his lunch break, he creates an account on the website using his smartphone and places an order.
Nick used two different devices and authorized only from his smartphone. These two sessions can’t be linked by ClientID or UserID. As a result, Google Analytics counts them as sessions from two different users.
Back at work, Nick remembers that his wife has always wanted a wenge table, not a walnut one, and also that he has a loyalty card. He enters the website on his work computer, logs in, changes his order, and makes a purchase using his loyalty card.
Now all of Nick’s sessions can be stitched together by associating the purchase on a computer with:
As a result, the data related to Nick’s journey from the very first visit to purchase is collected in Google BigQuery.
Nick browses the website on his work computer, looking for chairs to match the new table. He calls the phone number displayed on the website and places an order. Then he drives to the store and buys the chairs using his loyalty card.
Nick’s previous actions on the website were merged with actions in the store and on the phone:
Now it’s enough data to link together all Nick’s interactions. This is how they do it:
As a result, all the user’s ClientIDs, email addresses, loyalty cards, and orders were consolidated to see which of the search queries bring in revenue, and which of them consume bids without assisting in a purchase.
The logic of the attribution model is as follows: the total value of the first and the last session in a customer’s conversion path equals the value of the sessions in between. The first session is when a user visits the website for the very first time and gets acquainted with the brand. The last session is when the user makes a purchase. Combining data across different devices helps find a connection between the sessions and their chronological order.
The value for each channel is determined in 2 stages:
The value of keywords and channels is automatically recalculated on a daily basis. The result is stored in a table in Google BigQuery and Google Cloud Storage. The attribution results are exported from Google Cloud Storage to the bid management system using the RESTful API.
The rules were set up for the bid management system to determine the bid size. The greater ROI of the search phrase mentioning the product, the higher the bid. For example, if ROI for tables is less than 15%, the bid for a buy tables keyword will equal $1. If ROI is greater than 75%, the bid will equal $4. All numbers were determined experimentally.
Thanks to merging data on online and offline customer behavior, determining keyword values, and automating bid adjustments, the company is now able to answer such questions as:
As a result, it was possible to: