Lazada – All you need to know about automating your Ads Data

By AnalyticsNo Comments

If you are a marketer and have experience working with Lazada data, you might find it time-consuming for the process of manually pulling the data. Fortunately, there’s a more efficient solution! In this article, I will walk you through the process of automating the retrieval of Lazada ads data using the Lazada API.

Also, I share you with a non-coding template in spreadsheet format below which helps you get Lazada data easier. Let’s dive in and make your data analysis much easier and faster!  🤖

Step 1: Prerequisites before you can start

Before diving into the code development process, there are a few essential things you need to complete to ensure a smooth process:

  • Become a developer: Register your account and sign up as a Lazada Developer. This step is crucial to access the Lazada API and utilize its features.
  • Create application: You’ll need to create an application within the Lazada Developer platform. There are various categories to choose from, each with its unique attributes like strategy types, authorization duration, API group permissions, and API call limits. You can read each of them in detail from the reference I provided above. For me, I created an app with the ‘ERP System’ category.

💡 Please note that both the “Become a Developer” and “Create Application” steps may take 2-3 business days for approval from the Lazada Team. In case of any delays, consider contacting the support team through DingTalk for further assistance.

Lazada DingTalk groups

💡 If Lazada requires you to provide call call-back URL, it can be any. Call back URL will be used to retrieve the code parameter which I will use further in the next point

1.1 Get your App Key, App Secret, & Callback URL

  • Once your application is approved, you will receive an app key, app secret, and callback URL, which will be used further for making API calls. To access this information, follow these steps:
    • (A) Go to the App console at the top of the menu panel. You’ll be redirected to Lazada Service Provider Center
    • (B) Navigate to the Development menu and choose App management
    • (C) Click on your specific app
    • (D) Under the ‘App Overview’ section, you’ll see your App key, App secret and Callback URL. Please keep them to later for obtaining
      • Code parameter (which will be used for acquiring access token later in step 2): requires App key and Call back URL
      • Access token and campaign data: requires App key and App secret

Lazada Open Platform page

Lazada Open Platform App Management page.

Lazada Open Platform App Overview page.

  • Code parameter: This is one of the important parameters used for getting an access token later in Step 2. It can be retrieved from an authorization URL which requires your app’s callback URL, and app key as inputs. To structure the authorization URL, follow the format below provided by Lazada Open Platform.

Format of authorization URL from Lazada Open Platform (You can replicate the structure and replace it with your callback URL and App key with the highlighted part in orange) :

https://auth.lazada.com/oauth/authorize?response_type=code&force_auth=true&redirect_uri=${call_back_url}&client_id=${appkey}

Lazada App Authorization URL formatting sample.

1.2 Get your Callback URL Authorization code

After obtaining your personalized authorization URL, open it via a web browser. Select the country where your store operates and provide the username and password from your Lazada Seller Center account. Click the submit button.

Marketyze's Personalized Authorisation URL page.

Upon clicking the sign-in button, you will be redirected to your callback URL, and the URL itself will contain your authorization code. (begin after the word ‘code=’ and end before the ‘&’ symbol)

Please note that the code you retrieved will be valid only once. 🔑

If you run the script and get an error, you’ll need to repeat the steps above to get the code parameter again

By completing these prerequisites, you’ll be well-prepared to move on to the next steps of integrating the Lazada API and automating Lazada ads data with ease. 

Step 2: Ready to Automate Lazada Data!

At this stage, you can choose either to go with (2.1) a non-code or (2.2) a code-based approach, based on your specific circumstances and preferences

Pros and Cons of a code-based and non-code approach to pull Lazada Ads Data.

2.1 Non-code Approach – Utilizing a Free template

For the non-coding part, I’ve prepared a template that makes Lazada automation effortlessly accessible to you – no coding required! Simply follow the step-by-step instructions I’ve provided below.

Please make a copy of the template sheet and you’re ready to go 🙂

It’s recommended that you open the step-by-step guide while you’re using the template to avoid any confusion.

https://app.storylane.io/share/9arwxalzli3n

2.2 Code-based Approach – Understand Lazada API structure and begin Development

For those inclined to develop code yourself, we’ll be focusing on two crucial aspects: (1) generate an access token and use the token to (2) request data from the specified endpoint (in this case, obtaining campaign data).

I’ll demonstrate using Google App Script as the scripting tool. You’ll need to run two functions separately as shown in the visuals below and it’s recommended to separate them into 2 script sheets (one for access token and one for Lazada campaign data) to avoid your confusion

Lazada API structure, focusing on ads data.

(1) Generate access token (for more information: click here)

For all regions, to acquire an access token, you’ll need to use this endpoint: https://auth.lazada.com/rest and path /auth/token/create for requesting Lazada API.

Endpoint definition.

1.1 Build your requested API URL

To build your requested API URL, you’ll need to understand from the documentation what parameters are required.

You can simply read through the details of the structure for your understanding, I’ve also provided you with a code snippet below for each part!

For obtaining the access token from this endpoint, the mandatory parameters include: (1) app_key, (2) timestamp, (3) sign_method, (4) code, and (5) sign

1.2 Obtain the sign parameter.

With most of the parameters ready (app key, timestamp, sign method, and code), the next step is to obtain the sign parameter.

Lazada Open Platform requires a sign as a part of the authentication process for verifying the identity of each API request you make. To obtain this sign, you will need all system and dynamic parameters, page path and your app secret. (obtained from Step 1) Follow these steps to get the sign:

  1. Sort all request parameters
  2. Concatenate the sorted parameters and their values into a string
  3. Add the API name (page path) in front of the concatenated string
  4. Encode the concatenated string in UTF-8 format and make a digest by the signature algorithm (using HMAC_SHA256)
  5. Convert the digest to hexadecimal format with uppercase letters

You may use ChatGPT to assist in coming with code snippets for sign. I’ve provided one sample which you may use as a reference

ChatGPT prompt: 🤖

“Please write JavaScript code for Google app script to generate a signature. Within the same function, please put variable page path, app secret and parameters on the top of the function and follow by:

1. Sort all parameters using the keys object. (Name it as storeys)

2. Concatenate the sorted parameters with key and value. Please make sure key and value joint without having ‘=’ and ‘&’ (Name it as concatenated string)

3. Add page path in front of concatenate string. (Name it as a query)

4. Sign the resulting string using HMAC-SHA256 and make sure to convert the app secret and query to bytes

5. Convert the binary signature to a hexadecimal string and make it upper case. (Name it as signature)”

A code snippet is provided below for obtaining the sign using Google App Script. You may use it as a reference!

				
					var apiUrl = 'https://api.lazada.com/rest';
var pagePath = '/auth/token/create';
var timestamp = new Date();
var milliseconds = timestamp.getTime();
var appSecret = 'xxxxxxxxxxxxxxxxxxxxx'; // Replace with your app secret
var parameters = {
    sign_method: 'sha256',
    timestamp: milliseconds,
    app_key: '123456', // Replace with your app key
    code: '0_123456_Vw9SU8FsIFEoc4eb5lCBAO1p25887', // Replace with your code
};

// Step 1: Sort parameters by keys
var sortKeys = Object.keys(parameters).sort();

// Step 2: Concatenate sorted parameters with key and value
var concatenatedString = sortKeys.map(key => key + parameters[key]).join('');

// Step 3: Add page path in front of concatenated string
var query = pagePath + concatenatedString;

// Step 4: Convert appSecret and query to bytes & Generate HMAC-SHA256 signature
var appSecretBytes = Utilities.newBlob(appSecret).getBytes();
var queryBytes = Utilities.newBlob(query).getBytes();
var signatureBytes =
    Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_256,
    queryBytes, appSecretBytes);

// Step 5: Convert binary signature to hexadecimal and uppercase
var signature = signatureBytes.map(function(byte) {
return ('0' + (byte & 0xFF).toString(16)).slice(-2);
}).join('').toUpperCase();
				
			
1.3 Construct the URL.

Once you have all the necessary elements, let’s construct the requested URL! The URL should include the API’s path and required parameters in the following format.

				
					var url = apiUrl + pagePath +
    '?code=' + parameters.code +
    '&app_key=' + parameters.app_key +
    '&sign_method=' + parameters.sign_method +
    '&timestamp=' + milliseconds +
    '&sign=' + signature ;
				
			

Sample of requested URL

1.4 Get your store’s token

After encoding the URL and sending the request, you should receive the token for your store, which will be used for further requests to access the endpoint for campaign data retrieval.

				
					var encodedTokenUrl = encodeURI(url); // Encode the URL to make sure it's properly formatted
var response = UrlFetchApp.fetch(encodedTokenUrl); //Fetch data from encoded URL
var data = JSON.parse(response.getContentText()); // Parse the fetched response data as JSON
var accessToken = data.access_token; // Extract the access token from the parsed data

Logger.log(accessToken);
				
			

Please keep in mind that the generated token has a validity of 30 days.🔑

(2) Get campaign data (for more information: click here)

To fetch campaign data, you’ll need to use the endpoint that matches the location of your store. Currently, Lazada API supports for 6 countries.

In this case, I will use the Thailand endpoint, which is https://api.lazada.co.th/rest , followed by the path that provides the necessary marketing metrics: /sponsor/solutions/campaign/searchCampaignList.

2.1 Construct your API URL 

Similar to generating the token, you’ll construct your requested API URL.

For the path /searchCampaignList, required parameters include (1) app_key (2) timestamp (3) access_token (4) sign_method (5) sign (6) bizCode (7) startDate (8) endDate (9) pageNo (10) pageSize

Overview on getting your Lazada campaign's data.

2.2 Get a sign parameter 

For this endpoint, there’s no requirement for a code parameter but you still need to acquire a sign parameter, just as you did when generating the access token. [Refer to (1) Generate access token]

A code snippet provided below is an example of how you can set up your script by having it run in a loop to get Lazada Ads at daily level. Feel free to use it as a reference!

However, don’t forget to make changes on some variables which are client_name appSecret start end app_key access_token.

				
					var client_name = 'xxxxx'; // Replace with your name [can be any]
var sheetName = 'LZD_Campaign_' + client_name;
var apiUrl = 'https://api.lazada.co.th/rest' ;
var pagePath = '/sponsor/solutions/campaign/searchCampaignList' ;
var body = null;
var appSecret = 'xxxxxxxxxxxxxxxxxxxxx'; // Replace with your app secret

// define start and end dates
var start = '2023-08-01'; // Replace with your desired start date
var end = '2023-08-31'; // Replace with your desired end date

// Convert start and end to Date objects
start = new Date(start);
end = new Date(end);

// Check if the "{Client name} sheet" sheet already exists
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);

if (sheet) {
sheet.clearContents();
} else {
    // If it doesn't exist, create a new sheet
    sheet = ss.insertSheet(sheetName);
    }

// Append column name when insert new sheet, can adjust based on your need
sheet.appendRow(['date','campaign_name' , 'campaign_id', 'daily_budget' ,
'spend' , 'impressions' , 'clicks' , 'cpc' , 'ctr' , 'store_revenue',
'store_roi', 'store_orders', 'store_unitssold', 'start_date','end_date']);

// loop through each day in the range [to get daily data]
for (var day = start; day <= end; day.setDate(day.getDate() + 1)) {
var dateString = day.toISOString().split('T')[0]; // get date in YYYY-MM-DD
var timestamp = new Date();
var milliseconds = timestamp.getTime();
var parameters = {
    app_key: '123456', // Replace with your App Key
    timestamp: milliseconds,
    sign_method: 'sha256',
    startDate: dateString,
    endDate: dateString,
    bizCode: 'sponsoredSearch',
    pageNo: '1',
    pageSize: '100',
    access_token: 'xxxxxxxxxxxxxxxxxxxxxx'// Replace with your Access Token
};

// Step 1: Sort parameters by keys
var sortKeys = Object.keys(parameters).sort();

// Step 2: Concatenate sorted parameters with key and value
var concatenatedString = sortKeys.map(key => key + parameters[key]).join('');

// Step 3: Add page path in front of concatenated string
var query = pagePath + concatenatedString;

// Step 4: Convert appSecret and query to bytes & Generate HMAC-SHA256 signature
var appSecretBytes = Utilities.newBlob(appSecret).getBytes();
var queryBytes = Utilities.newBlob(query).getBytes();
var signatureBytes =

Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_256,
queryBytes, appSecretBytes);

// Step 5: Convert binary signature to hexadecimal and uppercase
var signature = signatureBytes.map(function(byte) {
return ('0' + (byte & 0xFF).toString(16)).slice(-2);
}).join('').toUpperCase();
				
			
2.3  Construct the requested URL

Once you have all the necessary elements set up, let’s construct the requested URL! The URL should include the API path and the required parameters in the specified format.

				
					var url = apiUrl + pagePath +
'?bizCode=' + parameters.bizCode +
'&endDate=' + parameters.endDate +
'&startDate=' + parameters.startDate +
'&pageNo=' + parameters.pageNo +
'&pageSize=' + parameters.pageSize +
'&app_key=' + parameters.app_key +
'&sign_method=' + parameters.sign_method +
'&access_token=' + parameters.access_token +
'&timestamp=' + milliseconds +
'&sign=' + signature ;
				
			

Sample of requested ULR to get your Lazada's campaign data.

2.4 Successful Retrieval of Data

 After encoding the URL and sending the request, you will successfully retrieve campaign data from the Sponsored Solutions!

I’ve provided you with a code snippet on how to append data to your sheet. For this case, the code will filter only campaign data with spending more than zero.

				
					var encodedApiUrl = encodeURI(url);
var response = UrlFetchApp.fetch(encodedApiUrl);
var data = JSON.parse(response.getContentText());
console.log(encodedApiUrl); // To view concatenate URL
console.log(data); // To view result

// Loop over all campaigns in the response
for (var i = 0; i < data.result.length; i++) {
var campaign = data.result[i];
var spend = campaign.spend;
var storeRevenue = campaign.storeRevenue;
var spend = campaign.spend;
storeRevenue = storeRevenue.replace('THB ', '');
spend = spend.replace('THB ', '');

// Convert spend to a number for comparison
var spendValue = parseFloat(spend);
if (spendValue >= 1) {
var metrics = {
    date: parameters.startDate,
    campaign_name: campaign.campaignName,
    campaign_id: campaign.campaignId,
    daily_budget: campaign.dailyBudget,
    spend: spend,
    impressions: campaign.impressions,
    clicks: campaign.clicks,
    cpc: campaign.cpc,
    ctr: campaign.ctr,
    store_revenue: storeRevenue,
    store_roi: campaign.storeRoi,
    store_orders: campaign.storeOrders,
    store_unitssold: campaign.storeUnitsSold,
    start_date: campaign.startDate,
    end_date: campaign.endDate
};
var rowData = Object.values(metrics);
sheet.appendRow(rowData);
}
}
}
				
			

We hope you found the information we provided useful! 🌟 If you have any questions or need further assistance in understanding anything, don’t hesitate to reach out to us at analytics@marketyze.io or kung@marketyze.io Happy to help and discuss further on the topic!

The Complete Comparison between Universal Analytics and Google Analytics 4: Everything You Need to Know About the Upgrade

By AnalyticsNo Comments

If you are working in the digital marketing field, you might have heard the name “Google Analytics (GA)”. It is a web analytics tool offered by Google that helps collect data, such as website traffic and user behavior. Currently, there are 2 versions available for use – Universal Analytics (UA or GA3) and Google Analytics 4 (GA4).

According to Google’s announcement, Universal Analytics will sunset on the 1st of July, 2023, which means no more data will be processed since that period. This automatically forces Universal Analytics users to migrate to Google Analytics 4.

But no worries! Before Google Analytics 4 completely replaces Universal Analytics from this half-year-end, there’s still time to explore and get ready!🙂 This article will highlight some key differences between the two properties to help you understand what changes and upgrades have been made by focusing on the web analytics case!

From Universal Analytics to Google Analytics 4

Universal Analytics first launched as a beta version in 2012 and later opened to the public in 2013. As of today, it has been over 10 years since its debut. However, in 2020, Google officially introduced the next generation of Google Analytics – Google Analytics 4.

Timeline for the transition of Universal Analytics to Google Analytics 4.Google Analytics 4 has mainly been designed to enhance measurement capability and address the limitations of Universal Analytics. For example, it allows data collection from both websites and apps; eliminating the need for separate platforms for Google Analytics 4 and Firebase. Also, it emphasizes customer privacy and includes predictive features.

6 Major differences between Universal Analytics and Google Analytics 4

1. Data collection model

One of the most significant changes from Universal Analytics (UA) to Google Analytics 4 (GA4) is the shift in data collection. GA4 is focusing on capturing event-based data instead of session-based data like it’s been in UA. This gives more flexibility in tracking the user journey

For UA, you might be familiar with multiple forms of hits (specific interactions of users on the website), such as page hits, event hits, eCommerce hits, and social interaction hits but here in GA4, every hit type will be captured as an event, allowing for more granular tracking

The transition of session-based data to event-based data from Universal Analytics to Google Analytics 4.Besides, the way event data has been stored differs between the two properties. In UA, the report has been displayed in the form of Category, Action Label, and Value, while GA4 doesn’t follow the same data schema and displays all data in terms of events, based on the new data model.

New data model from Universal Analytics to Google Analytics 4.Another distinction in the data model is the processing time. UA hits take roughly 4 hours to proceed (however, from my experience, it’s faster than that) but events in GA4 process slowly and may take up to 72 hours. So, when viewing the report on GA4, please keep in mind that data might be delayed.

2. User and Session calculating method

If you have migrated to Google Analytics 4 (GA4) but still use Universal Analytics (UA), you may have noticed that the number of users and sessions in both properties don’t match. This is due to the difference in data models and how each property defines its metrics.

For users, UA counts the number of users based on cookies and client ID (1 ID represents 1 user or 1 device). For example, if a person enters your website three times but across different devices, the number of users reporting to UA will be three. On the other hand, the number of users displayed on GA4 will be one since it’s calculated based on User ID which is data from Logging in Google Account. Thus, the GA4 model is trying to capture data more accurately and on point

The shift from client IDs to user ID from Universal Analytics to Google Analytics 4.For sessions, both UA and GA4 have similarities in counting sessions but are also different in some aspects. Both initiate counting when users enter the website page and consider the session ends by default after 30 minutes of inactivity. GA4 automatically generates both session ID and session number when the session starts

What’s different is that GA4 won’t create new sessions if the campaign source changes during sessions or the sessions cross a day boundary (at midnight), while the UA session covers all these circumstances. This may result in a lower session count in GA4.

Reduced session count after migrating from Universal Analytics to Google Analytics 4.3. Data retention

The data retention period is one of the big differences since in Google Analytics 4 (GA4) you can store event data for a maximum of 14 months, with age, gender, and interest data having a limit of 2 months. This is unlike Universal Analytics (UA) where event data can be retained indefinitely.

Reduced in data retention from an indefinite period to a maximum of 14 months from Universal Analytics to Google Analytics 4. However, it’s worth noting that the data retention policy only applies if you want to create in-depth reporting from the exploration feature in GA4. Other than that, you are still able to view the report beyond the 14-month periods on standard reporting.

Standard reporting and in-depth reporting on Google Analytics 4.Thus, it’s important to be aware of this change, especially for marketers who usually create in-depth reports or long-term analysis reports.

Additionally, by default, GA4 set the data retention period to 2 months. If you want to keep data for a longer period, you probably need to change it yourself by going to ‘Admin’-> Under Property column select ‘Data settings’ -> select ‘Data Retention’ -> select ‘14 months’-> ‘Save’.

Steps to change data retention in GA4.However, please keep in mind that once you change the period, the change will not be retroactive and you’ll have to wait for new data to get stored. Then it’s recommended to start early if you want to store data for a more extended period.

4. Bounce rate to Engagement rate

Normally to measure site engagement, in Universal Analytics (UA) you probably focus on Bounce rate which is the percentage of all sessions on your website in which users viewed only a single-page web. Nevertheless, this can be ineffective in some cases because if users view one page, for example, read the article, and leave the website, it’s still considered a bounce session – even if the user engages with your website by reading.

New bounce session and engaged session model in Google Analytics 4.To address this issue Google Analytics 4 (GA4) introduced the Engagement rate by aiming to measure user interaction with your website more accurately – no matter if users only visit one page on the site. The engagement rate is derived from engaged sessions divided by total sessions. To be counted as engaged sessions, the user needs to meet one of these criteria following:

  • Last active for 10 seconds or longer
  • Has one or more conversion events fired (To measure with this criteria, you first need to set your conversion in GA4 property)
  • Involve two or more pageviews

Any session that doesn’t meet these criteria will be considered a bounce session.

Google Analytics definition of engaged session.By the new definition of the engagement session, I also agree that it helps measure how users engage with the website page more accurately and on point in keeping with its name.

5. Integration with BigQuery

One of the benefits you will get from Google Analytics 4 (GA4) is the free integration of BigQuery. Previously in Universal Analytics (UA), this feature is only available to customers who subscribe paid plan, Google Analytics 360. It used to be huge gaps between the free version and paid version but right now it’s free to use. You’re able to export data to BigQuery and utilize data to further analyze and gain insight.

Free integration with BigQuery with Google Analytics 4 while a paid version of Universal Analytics is needed to integrate with it.From my point of view, the free integration with BigQuery could be a replacement for the data retention policy, which has been shortened in GA4 compared to UA as discussed in point number 3.

6. Custom report

One notable contrast between the two generations of Google Analytics is a custom report. Google Analytics 4 (GA4) offers a wider range of customizable report options, each has been designed to serve specific analytics purposes, for example, funnel analysis, user journey analysis, and individual behavior analysis. In contrast, Universal Analytics (UA) provides only two primary options for custom reporting – a general custom report and a dashboard

Wider range of custom reporting from Universal Analytics to Google Analytics 4.I feel that the interface of the report in GA4 is more modern and user-friendly. Especially the drag-and-drop feature as it allows you to view the report immediately after dropping the metric/dimension, compared to UA where you need to select metrics and dimensions first, save them, and then view the report.

However, due to the wide range of report options in GA4, you might need time to get familiar with them and know which type of report can address your specific needs.

Then what should be the next step for you if you’re still using Universal Analytics and have not migrated to Google Analytics 4?

As there’s still time before Universal Analytics (UA) stops processing data, I suggest you use both Universal Analytics (UA) and Google Analytics 4 (GA4) in parallel. This way, you can familiarize yourself with the new feature and user interface of GA4 before the cut-off date on July 1st, 2023.

According to a Google update, since the beginning of March 2023, if you haven’t already created the GA4 property, Google will create one for you based on your setting in UA, unless you choose to opt out.

It’s essential to keep in mind that once the cut-off date arrives, data will stop reporting in UA. However, access to reports will still be available for at least the next six months after the cut-off date. You can further find information on how long UA will remain available after the first of July, 2023 by checking here

Future timeline for the transition from Universal Analytics to Google Analytics 4.Now it’s your turn! 😀, I’d love to hear from you how this article is useful and easy to understand for you. Also If you have any related questions or are interested in our BI services, feel free to contact us via email at analytics@maketyze.io. We’ll be more than happy to help.

Key differences summary between Universal Analytics and Google Analytics 4.

Most Effective Data Visualization Practices for a Great Dashboard

By AnalyticsNo Comments

Hello! In this article, we will take you on a journey to build your own high-performing and user-friendly dashboard, with a step-by-step process of improving our own. Sounds interesting? I certainly hope so 🙂

After digging through various articles and blogs online, we felt that there was no one “go-to” resource on the topic, and we decided to create our own, both for usage within our team, as well as for our dear readers, like yourself.

In this article, we will explore key principles of creating a good and effective dashboard including best practices and common pitfalls with a focus on user experience. From understanding the psychology of color, and data visualization techniques to creating a clear navigation structure, interactive elements and user-centred design principles, we will cover (almost) everything you need to know to create a dashboard that is clear, relevant, and last but not least, actionable.

This article is especially useful if you’re a data scientist, business intelligence analyst, company owner, marketer or general business user.

The building blocks of a high-performing dashboard.Introducing: our base dashboard. Let’s see what it takes to improve this 👀

Marketyze's baseline dashboard.

Before you start: Two Essential Considerations!

Know your audience

One of the most important factors to think about when building an effective dashboard is your audience. It’s essential to understand your audience’s needs, expectations, and technical abilities. If the dashboard is too complicated, the time people spend trying to figure it out is not worth it. So, everything they need should be on the charts, with minimal calculations needed. Put yourself in your audience’s shoes when designing your dashboard.

Understand the nature of different chart types

Choosing the right type of chart to present your data is important as the wrong data chart type can make your audiences’ life tougher, so choose wisely. Each chart has a different purpose, so you need to know what you want to convey to choose the best-suited chart type. For example:

  • Bar charts are ideal for comparing data.
  • Line charts are useful for showing trends over time.
  • Scatterplots are effective in illustrating relationships between two variables.
  • Pie charts are best for displaying proportions and percentages.

It’s important to remember to pick the right chart type to present your data clearly and simply for an effective dashboard. You can further categorise the purposes into four groups: comparison, composition, distribution, and relationship. When you consider these two things (type and purpose of chart) intentionally, you’re well on your way to designing an effective dashboard. Now, some Ground Rules ⏭️

4 categories of the purpose of your dashboard.

1. Ground Rules

1.1 ➖ Make sure your positive and negative values are plotted in the right direction ➕

When creating charts or dashboards, it’s essential to use the correct plotting directions based on positive and negative values. This ensures that what is seen on the chart reflects the actual values of the data. Otherwise, it might result in confusion and misinterpretation for your audience as you deviate too far from the norm.

So. what is the norm? For the horizontal axis, plot the negative values on the left side and positive values on the right side of the axis. For the vertical axis, plot the negative values at the bottom while the positive values on the top of the axis. This placement aligns with our eyes’ natural reading direction from left to right. If negative and positive values are plotted on the same side, it can be difficult for viewers to interpret the data accurately.

1.2 📏 Should you always start the chart at 0 baseline 📏

For the bar chart, yes!
A zero baseline will provide a consistent and precise scale. This ensures that the data is accurately represented, preventing misinterpretation and exaggeration of differences in the data. For example, shown below, you can see that starting the chart at 50 instead of zero can make a huge difference in sales and looks bigger than they are.

A dashboard bar chart should always start from 0.For line charts, not necessarily.
Limiting the y-axis scale to start at zero can flatten the chart and inaccurately represent the data. I
t’s important to adapt the scale based on the data set and keep the line occupying two-thirds of the y-axis range. Also, if your chart starts at a number that’s non-zero, don’t forget to label the chart clearly so that people can accurately read your axis.

Scale dashboard's line-chart and does not have to start from 0.

1.3 📜 Legibility > Aesthetics 📜

It is important to keep in mind that an effective dashboard communicates data and insights to its users as simply as possible. If the information is not presented in a clear and easily readable format, it means that the dashboard is not effective.

While visual aesthetics is important, it should not take priority over legibility in dashboard design. A well-designed and effective dashboard should strike a balance between being visually pleasing and easy to read, ensuring that the user can easily understand and digest the information presented.

1.4 🧬 Make sure your labels and data formatting are consistent throughout your chart 🧬

Make sure that all your labels have the same font, size, and style to create a visually pleasing and cohesive look. If you don’t use consistent formatting, your audience might get distracted by the differences and miss out on the important information you’re trying to convey. So, keep your dashboard consistently formatted so that your audience can focus on the data presented and make more informed decisions. This can save their time and effort, leading to a more positive user experience.

2. Color

Color plays a crucial role in effective dashboard design, as it has the power to impact the user’s experience, understanding, and engagement. A well-designed color palette on your dashboard can enhance the aesthetics of the dashboard, drawing attention to important information, and even conveying meaning through colors.

However, using too much color or contrast will cause the audience to miss the point, so if you’re ready, let’s see how color works in the dashboard and how we can strike a balance.

2.1 🎨 Choose a color palette that matches your data type 🎨

To design effectively, it’s helpful to categorise the color palette used in map visualizations into three types :

  • Qualitative color palette: good for showing categorical variables (not a number) that are not related to each other such as a Country in Europe, the biggest export category in each country, Land use data etc, often used with colors that stand out from each other.
  • Sequential color palette: good for showing numerical variables that have an order, and is created using variations in hue, lightness, or both. A good example is the World population or the number of product sales in each country.
  • Divergent color palette : (or a performance color palette) a combination of 2 sequential palettes centered around a value (often 0) to show positive/negative values. For instance, Global temperature or Change in the U.S. population change.

Example of using colour on a dashboard's map to represent different impacts.

2.2 🧑‍🦽Design with Accessibility in mind 🧑‍🦽

Just relying on different colors alone isn’t enough, especially when designing those who may have color deficiency. Our suggestion is to add some variation in saturation and luminance, like in the picture below. To cater to a wider range of audience, a small adjustment of saturation can make a big difference.

Another suggestion is changing your data visualization to black and white to check the contrast and readability. You can click here to view a color palette guide and see how each hue would appear to someone who’s color deficient.

Use different saturation of black and white as well instead of always relying on colours.

2.3 🦜 Don’t get too crazy with the colors, choose a few and stick to them 🦜

Consistency is key, so it’s best to stick with your company’s brand colors or choose a few universally recognised colors like green or red. It’s also important to differentiate each color using gradients to avoid confusion. Avoid using too many different colors or high-saturation hues as this can overwhelm and confuse your audience.

It’s important to find a balance between visual appeal and clarity to ensure that your audience can understand and interpret the data effectively. So, while it’s essential to keep it simple, it’s also important to tailor your color choices to the data and visualization type for optimal results.

Avoid too many colours and high saturations on dashboards.If we added adjustments to our dashboard using the ground rules and color principles, here is our Dashboard v2.0! 👀

Marketyze's dashboard v2.

3. Text & Label

In an effective dashboard, text and labels are important to help viewers understand and interpret the data presented. These can take on many forms such as titles, subtitles, headings, descriptions, captions, and annotations. Their primary role is to provide information about data like date range, units of measurement, definitions of terms, and any assumptions or limitations of the data. Without this information, viewers may not fully understand the data and how it was collected or analysed.

In addition, text and labels can enhance the visual design of a dashboard. Using appropriate font sizes, colors, and styles can help draw attention to important information and create a visually appealing dashboard. Keep these design elements sparingly and consistently to avoid overwhelming or confusing viewers. So, let’s start exploring more about text and labels!

3.1 😵‍💫 Use a horizontal bar chart instead of rotating the labels 😵‍💫

Rotating labels may seem like a good idea when you have limited space, but it may be difficult to read. For example, if the labels are too long, they may become too small or unreadable when rotated. Using a horizontal bar chart allows you to present more text while ensuring that the labels remain easy to read, especially when the data labels are longer.

Orientate your bar chart on the dashboard to make it easily readable.

3.2 🥧 Label directly on the chart 🥧

Putting labels directly on the chart can avoid confusion by making it clear which data point the label is describing. This removes the need for a separate legend and color, hence users don’t have to constantly refer to the legend to extract information. This helps to improve the overall appearance and clarity, making a more effective dashboard.

However, each data visualization tool has various capabilities; some of the tools we use, such as Looker Studio (Google Data Studio), cannot do this. Click on this link to view an article comparing several visualization tools for your decision.

Label directly on the pie chart of your dashboards.

3.3 🖇️ Avoid confusing dual axis 🖇️

Using dual-axis charts may seem like a good way to save space on your dashboard, but instead can be confusing and difficult to interpret when varying scales and units are used. It’s better to completely avoid using them so that your audience can understand the data you are presenting. If you must use a dual-axis chart, label both axes clearly and provide clear explanations to help your audience make sense of the data.

Avoid using dual axes graphs on your dashboards.

4. Navigation

4.1 🕸️ Content grouping 🕸️

Grouping related content together makes it easier for the user to find the information they need. Consider grouping related charts, tables, and other data elements, and using clear headings to label each section.

In addition, you can also use visual cues such as adding background colors or borders to separate the groups of content. This makes it easier for the user to quickly identify the different sections and users can find information easily.

Add background and borders on your dashboard to group information.

4.2 🌌 Don’t overlook spacing 🌌

Proper spacing is essential for making a dashboard easy to navigate and understand. Make sure there is enough space between each chart, table, or other data element, and use clear headings and labels to help guide the user. An effective dashboard is not overcluttered with data as it might be difficult for people to find what they need with an overload of information.

4.3 👀 Applying the Z-Pattern and Fitts’ Law 👀

Fitt’s law states that the time it takes to reach a target depends on how far away the target is and how big it is. It means that targets that are closer and larger are easier to reach and more eye-catching. To make it easier for users to find important information on a dashboard or webpage, it’s recommended to organize objects in a Z-pattern, which follows the natural eye movement of users from left to right and top to bottom.

Organise the information on your dashboard in a Z method as it is the natural eye movement.

5. Interactivity

5.1 ⚙️ Add dashboard filtering and sorting capabilities for a more user-friendly experience ⚙️

Dashboard filtering and sorting capabilities allow users to easily navigate and explore the data presented in an effective dashboard. This feature allows users to focus on specific data points or segments of the dashboard, making it more user-friendly and intuitive. For example, if you have a dashboard showing sales data by region, you could add a filter that allows users to view the data for a specific region, such as the West Coast.

By including filtering and sorting capabilities, you can enhance the interactivity of your dashboard and enable users to easily find the insights they need. This feature also allows users to interact with the data in a way that suits their needs, making your dashboard more flexible and customisable.

Integrate interactive element into your dashboard.

5.2 🕟 Use a time interval widget 🕟

A time interval widget is a tool in a dashboard that lets users change the time frame of the data they see. By using a time interval widget, users can see how the data changes over different periods, helping them make better decisions. It also lets users see the data in more detail, which can help identify areas for improvement or opportunities.

Time interval widget on Marketyze's dashboard.

5.3 ⛏️ Include the option to drill down for more information ⛏️

Drilling down allows the user to access more detailed information about specific data points, providing a deeper understanding of the data. Consider including options for drilling down into charts or tables to access additional layers of data.

5.4 💨 Spreading out across 1 page for each topic 💨

Miller’s Law states that the average person can only hold around 7 +- 2 pieces of information in their working memory at any given time. This means that an effective dashboard should never be overloaded with too much information, users will have difficulty processing it all and may become overwhelmed or confused.

To avoid overwhelming your users, consider spreading your dashboard across multiple pages or tabs, with each page focusing on a specific topic or area of data. This allows users to focus their attention on one topic at a time and reduces the cognitive load by breaking up the information into smaller and more manageable chunks.

Spread your dashboard out into multiple pages to make it less overwhelming.

Putting it all together

A good and effective dashboard should present complex information in a clear, concise, and visually appealing manner, while also being user-friendly. This means keeping it simple, organizing data logically, and choosing appropriate visualization techniques. Remember to always prioritize the user’s needs and perspectives.

It’s important to continuously improve your dashboard by gathering feedback from users and incorporating interactive features and content grouping. This will help create a more personalized and intuitive user experience, leading to valuable insights and better decision-making.

As we wrap up, we hope you feel inspired to create your awesome dashboard! Take a look at our example dashboards for some ideas on how to implement these principles. And if you’re interested in diving even deeper into the world of data visualization, head over to our LinkedIn page here for more examples of data visualizations and articles! 🚀

Marketyze's Marketing Website Summary dashboard.

How to use AppsFlyer’s Smart Script for seamless web-to-app tracking

By AnalyticsNo Comments

AppsFlyer’s Smart Script helps to track the user journey from your website to download your app. 

It is quite common to run Google Search Ads campaigns (also called, Search Engine Marketing, or SEM for short) for your apps, but using deep links as the final URL can often result in a violation of SEM advertising policies. A common solution for this is to use a website as a gateway for users, guiding them towards downloading the app through clear call-to-action (CTA) buttons when accessing the website via a mobile device. AppsFlyers makes tracking easier for you to track and guide your user, increasing the number of downloads for your app.

In this article, we will provide our use case and implementation of this powerful tool. We’ll also share tips on how to properly check your implementation to ensure accuracy of implementation.

Stay tuned! We will also use ChatGPT as a tool during the implementation of this guide 🙂

Who is this guide for?

A decent amount of experience is needed! If you already have background knowledge of OneLink and app tracking, that will help. Coding experience is not required but you will have to be comfortable with copy-pasting and adjusting code.

In what circumstances does this guide apply?

  1. You are using AppsFlyer.
  2. You are having a website that guides users to your app.
  3. You are using UTM or custom parameter tracking for your campaigns.

What exactly is AppsFlyer’s Smart Script?

AppsFlyer’s Smart Script is a script that you place on your website which will allow you to capture various parameter types from different media sources. When your users land on the website from different sources and via different URLs, the script will dynamically create links including deep links that optimize and personalize web-to-app experiences.

In other words, it helps reduce the blind spot of your organic installs from your web campaign by implementing AppsFlyer’s Smart Script which prompts users to download your app when they visit your website.

What’s the point of having AppsFlyer’s Smart Script tracking when we already have Deep Link/OneLink with proper in-app event tracking?

Let’s say you’re setting the OneLink template to direct users to the specific content within your app, or to the App Store or Play Store if they haven’t installed the app yet. You then add this OneLink URL to the CTA buttons on your website so that when users click the buttons, they behave according to the settings in the OneLink template.

There is a high chance that the traffic source information will be lost when doing this because those parameters will not pass through, and users who install the app will be attributed to AppsFlyer as direct (or “organic”) traffics. Therefore, you will need a bridge to close the gap of users moving between the web and the app. That’s where AppsFlyer’s Smart Script comes into play 🙂

The AppsFlyer’s guide! (with example)

Say we run SEM campaigns to promote an app, but first, we lead users to our company website (marketyze.io) which contains CTA buttons with a prompt to download. In the same campaign, we would also like to track performance, so we use UTM tracking parameters Example of the URL with UTM tracking:

URL with UTM tracking example from Marketyze.This kind of URL will be called an “Incoming URL.”

Again, let’s say we would like to see how many people installed this app and took other in-app actions in AppsFlyer’s report after clicking on my SEM campaigns. We need to complete the tracking journey by following these 2 steps:

1. Generate Smart Script from AppsFlyer’s interface

a. Select OneLink Template for your AppsFlyer’s Smart Script

OneLink Template from AppsFlyer.

b. Map your URL’s parameters

From the example URL, I have utm_source, utm_medium, utm_campaign, utm_content, and utm_term. I will need to map these with fields that Appsflyer provides. You can see the example of how we map in the screenshot below:

URL parameter mapping on AppsFlyer.For the default value, which is the value you want to be shown on your dashboard, you can define whatever you’d like to see when the parameters can’t be mapped. For example, the URL is missing utm_source, under Media Source in the report, this will show as Website.

For the override values, the value from the incoming URL can be replaced with the value you specify in this field. For example, if the value in the incoming URL is Google, the value in the outgoing URL can be changed to paid ads.

c. Generate and embed the AppsFlyer’s Smart script on your website

Once you add all the necessary parameters, there are two options to implement. First directly embed this AppsFlyer’s Smart Script in your website with a web developer or you can use Google Tag Manager (GTM). In this case, our recommendation is to use GTM.

When you click generate, you will be able to copy the AppsFlyer’s smart script:

Generate and copy the script on AppsFlyer.2. Create a tag in Google Tag Manager (GTM)

a. Create a new tag, name the tag, click Tag Configuration, and select Custom HTML.

Create a new tag, name the tag, click Tag Configuration, and select Custom HTML on Google Tag Manager.b. In the HTML box, paste the generated AppsFlyer’s Smart Script code.

In the HTML box of Google Tag Manager, paste the script from AppsFlyer.c. Click ‘Triggering’, create a new trigger, name it, and choose “All Pages” Trigger Configuration.

Click ‘Triggering’, create a new trigger, name it, and choose “All Pages” Trigger Configuration on Google Tag Manager.d. Click Save.

Lastly, you will need to check the outgoing URL for your button clicks as well

To ensure that AppsFlyer’s Smart Script is working as intended and that the value in AF_SMART_SCRIPT_RESULT returns accurately, check the outgoing URL. When you generated the Smart Script on the AppsFlyer’s interface, you should have specified the right outgoing URL, which should be the same.

I will again take the example from the earlier URL with UTM, the outgoing URL should be like this:

Check the incoming URL against the outgoing URL generated by AppsFlyer.

To check what the outgoing URL looks like, you’ll need to inspect the clicks and see their href attribute. See the picture below:

Inspect the clicks and see their href attributes.If the AppsFlyer’s Smart Script doesn’t produce a OneLink URL when the button is clicked just as in the example, I’d recommend the other option which is to consult with your web developer. In case this is not an option, you could still use Google Tag Manager by assigning the URL to your button clicks directly.

Here, I will use a bit of help from ChatGPT! See my prompt below 👇🏻

Using ChatGPT to generate a OneLink URL.

However, we still need some modifications a bit as per what ChatGPT has explained at the end.

Therefore, I have made the following changes:

1. I changed from https://www.example.com to be {{Button URL}}

    • Then create a variable from custom Javascript that will return value from AF_SMART_SCRIPT_RESULT.

Created a variable from custom javascript that will return value from AF_SMART_SCRIPT_RESULT.

    • Or you can copy directly from this:
  •  
				
					function() {
return window.AF_SMART_SCRIPT_RESULT.clickURL;
}
				
			

2. Add the condition that the script must only work for mobile devices to make sure that it’s not working on desktop

    • So here is the outcome which you can copy and paste into your Google Tag Manager.
				
					<script>
if ( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
var links = document.querySelectorAll('[href*="sem.onelink"]');
for (var i = 0; i < links.length; i++) {
      links[i].addEventListener("click", function(){
    this.href = {{Button URL}};
      });
    }
  }
</script>
				
			

After that, I can just create a Custom HTML Tag using Dom Ready or Page View as a trigger and paste the code down as in the screenshot.

Then you are good to go!

Now, we’d love to hear from you if you find this article interesting. In case you are interested in our services and would like us to provide help in related topics, please feel free to contact us via email at analytics@maketyze.

A Complete Guide to Data Visualization Tool

By Analytics2 Comments

It is undeniable we live in a world that is full of data. Our field, digital marketing, is one of the sectors that heavily utilizes data to gain insights and drive business growth. However, sorting through large amounts of data is difficult!

Data visualization tools, like Looker Studio, Power BI, and Tableau, help simplify data by creating clear visuals.

In this article, we will compare these tools based on 7 features using a 5-point rating system and a weighted decision matrix. A summary table will determine the best tool for a digital marketing agency environment.

Get to know each tool:

Before we look at the features, below is a short introduction to each of the three tools and their histories 🙂

Power BI

Power BI is a business intelligence and data visualization tool for converting data from various sources into reports or dashboards. At first, it was named Project Crescent, which was designed by a team at Microsoft and available for public download in 2011. Later it was renamed to Power BI for Office 365 and unveiled by Microsoft in 2013.

Power BI logo history

Tableau

Tableau is a business intelligence and data visualization tool for data analysis that helps simplify large volumes of raw data into understandable worksheets and dashboards. It was first launched in 2003 by Tableau Software; a software company in the US and has since been acquired by Salesforce in 2019.

Tableau logo transition

Looker Studio

Looker Studio is a cloud-based and open-source data visualization tool that helps turn data into informative, easy-to-read, easy-to-share, and customized reports and dashboards. It was launched by Google in March 2016 as a part of the Google Analytics 360 suite under the name “Google Data Studio”. In October 2022, it was rebranded to Looker Studio and became a part of the Google Marketing Platform.

Looker studio logo transition

Comparison of 7 key features

1. Device & OS Compatibility (Weight 20%)

(Power BI – 4 | Tableau – 5 | Looker Studio – 5)

When considering which data visualization tool to use, it’s important to make sure that the tool is compatible with your device’s operating system, with the most popular operating systems being Mac OS and Windows OS.

All three tools, Looker Studio, Power BI, and Tableau, are compatible with Windows OS. Looker Studio and Tableau also support Mac OS, while Power BI is the only tool that does not currently support Mac OS. So, if you are using a Mac OS device and looking to use any of these tools, Looker Studio or Tableau might be the best choice for you.

OS compatibility comparison between Power BI, Tableau and Looker Studio.

Looker Studio is a cloud-based service and can easily be accessed through a web browser, whereas it’s recommended to use the desktop version for Power BI and Tableau.

Cloud-based services comparison between Power BI, Tableau and Looker Studio.

Even though Power BI does not support Mac OS, in other ways, if you or your company is using other Microsoft products, you could benefit from using Power BI due to it being in the Microsoft ecosystem; for example, familiarity with the user interface or the ease of integrating with other Microsoft products. Like Power BI, the same applies to Looker Studio; users staying in the Google ecosystem may find this visualization tool simpler and more convenient to use.

Comparison of Google and Microsoft tools on Mac and Windows.

 

2. Pricing (Weight 20%)

(Power BI – 3 | Tableau – 2 | Looker Studio – 5)

When comparing BI tools, one important factor to consider is pricing. Each tool may have multiple pricing options.

Looker Studio stands out when it comes to cost, as it is completely free to use. This makes it a great option for small businesses or startup companies that are just starting to incorporate data visualization into their operations. It could be an ideal choice, as the end-to-end process of creating visualization is free of any cost.

Pricing comparison between Power BI, Tableau and Looker Studio.

Power BI and Tableau also have a free version for users but they come with limitations in sharing and collaborating capabilities. For example, with the Power BI free license type, you are able to create content but cannot share them with other users, unless you decide to publish them to the public web. Not super convenient if any of the data shown is confidential.

Power BI desktop demonstration.

Power BI’s above concept also applies to Tableau as it offers a free version called Tableau Public which can only be accessed through a website. (https://public.tableau.com). The good: features are the same as the desktop version. The bad: there are limitations in terms of data confidentiality when publishing to the public web.

Tableau public demonstration.

In conclusion, the free versions of Power BI and Tableau are not suitable for use within a business or for commercial purposes.

If you choose to go with a paid version, Power BI has two options: an individual user license starting at $9.99 per month per user, and an organization license at $4,995 per month per capacity. Tableau’s pricing, on the other hand, is based on the specific needs of the user.

Power BI pricing plan.

The cheapest one is Tableau Viewer license costing $15 per month per user for only the ability to view, comment, and interact with dashboards. To create content, it’s required to subscribe to Tableau explorer license at $42 per month per user, with the cost potentially adding up to $70 per month per user if you would like to prepare data within Tableau Prep Builder by subscribing to Tableau creator license.

Tableau pricing plans.

And so, for dashboard creation, Power BI is cheaper than Tableau. But again, Looker Studio is (for now) free.

It’s important to keep in mind that comparing the pricing, or cost, of these tools is crucial for any organization that wants to select the best fit for them. Depending on the scale, functionality and usage of the organization can make one tool more or less appealing in terms of cost.

3. User Access (Weight 20%)

(Power BI – 2 | Tableau – 3 | Looker Studio – 4)

Say, like us, you serve multiple clients. The share feature should definitely be a factor taken into consideration as dashboards may contain sensitive information

Sharing and collaborating on Looker Studio is easy to do as you can share your reports or dashboards to external users by entering their email address. Actually, this is easy for both internal and external sharing. One constraint is that it requires a person to have a Google account, such as a Gmail account, to get shared.

Looker Studio ease of sharing.

When it comes to sharing Power BI reports, there is an extra step that needs to be taken. Reports must be published to the Power BI service (app.powerbi.com) first. Additionally, users must have a Pro license to share content, and those who will be viewing the report must also have the same license type. For example, if the person creating the report in your company has a Power BI Pro license, your clients must also have Pro licenses in order to interact with the dashboards. The downside of this is that it can be an added complexity for clients, as they are required to pay for a license to access the information.

Power BI sharing services.

Additionally, for Power BI, another way to share content with external users is to purchase a Premium capacity license type for the company. However, this approach comes with a large cost at almost $5,000 per month – not worth it if your organization is relatively small.

Power BI sharing criteria and chart.

For Tableau, sharing is similar to Power BI but more straightforward: first, you need to publish worksheets to Tableau Server, then you can share the visualizations with other people by sending a link or an email. Just remember: clients – or external users – need at least a Tableau Viewer license.

Tableau sharing steps.

4. Load Speed and Tool Stability (Weight 12.5%)

(Power BI – 4 | Tableau – 5 | Looker Studio – 2)

When it comes to the three BI tools, load speed is a crucial factor, as no one wants to wait around for a dashboard to load.

Looker Studio falls behind the other two options. The more functions or components you add to your report, like visualizations, icons, or large amounts of data (like 100,000 or more rows), the slower the report will become. When using Looker Studio, you may need to refresh the screen more frequently to keep the tool stable.

On the other hand, Power BI and Tableau are better options for load speed and smooth interactions among visualizations. These tools are also more stable and can handle large amounts of data without any errors. So, if you’re looking for a fast and stable tool, Power BI or Tableau might be the better choice for you.

Load speed comparison between Power BI, Tableau and Looker Studio.

If comparing between tools looking purely at the maximum volumes of data they could support, Tableau outperforms Power BI, as Power BI can handle a limited volume of data at only 10 GB unless it’s required to use a cloud service like Azure; Tableau does not have a data size limit and can handle as much data as your local storage can handle without any requirement for cloud service.

Volume of data comparison between Power BI and Tableau.

 

5. Visualization & Customization (Weight 12.5%)

(Power BI – 4 | Tableau – 5 | Looker Studio – 3)

Different specific options of visualization are core criteria for evaluating data visualization tools, as in the name! From a marketing perspective, all three tools, Looker Studio, Power BI, and Tableau, provide in-built basic visualizations that are essential for data analysis. These include charts like bar charts, column charts, combo charts, line charts, pie charts, area charts, heatmap tables, maps, and treemaps.

Data visualisation and customisation comparison between Power BI, Tableau and Looker Studio.

Apart from types of visualizations, report customization also plays an important role to make visuals look nice and more appealing. Below is a small breakdown of specific customization options per tool:

  • Color: When it comes to adding color to your reports or dashboards, all three tools offer similar options. Power BI and Looker Studio allow you to set a consistent theme color across the entire report, while Tableau puts more emphasis on conditional formatting. This allows for increased visibility and customization, allowing you to focus on the important aspects of your data. Tableau also provides more granular options, giving you a wide range of color palette options and the ability to adjust the number of stepped colors. It’s worth noting that Looker Studio does not have the option of conditional formatting for certain visualizations like bar charts, and the users can only select a single color representing that data field.

Colour comparison between Power BI, Tableau and Looker Studio.

  • Size: Within all three tools, you are able to adjust the size of your dashboard and report pages. The size of visualizations is also adjustable, by selecting and dragging frames to freely resize. Additionally, Tableau is more detailed in resizing bars or columns in charts.

Size comparison between Power BI, Tableau and Looker Studio.

  • Text and font: You can add texts and also have several options for font styles and sizes. Additionally, you can make granular adjustments, such as editing titles, labels, or legends separately.

Text and font comparison between Power BI, Tableau and Looker Studio.

  • Filter: The filter feature comprises filtering data on specific visuals, selected pages/reports, and all pages/reports. Tableau has the greatest filter functions as you are able to do everything by selecting. Filtering on specific visuals, or selected pages is also available in Power BI and Looker Studio, but you need to manually add filters to each visualization or each page yourself.

Filter comparison between Power BI, Tableau and Looker Studio.

  • Images or icons: All three tools allow you to add images and make them clickable to external websites or pages within the reports. Power BI offers additional action types of clickable images, such as asking Q&A. Tableau provides separate features of page navigation and Q&A, in addition to clickable images to external websites.

Images and icons comparison between Power BI, Tableau and Looker Studio.

Overall, all three tools provide enough visualization options for data analysis in digital marketing, however, the granularity of customization varies among the tools; in descending order from Tableau to Power BI to Looker Studio.

 

6. Use Interface & Navigation (Weight 7.5%)

(Power BI – 4 | Tableau – 3 | Looker Studio – 5)

Overall, Looker Studio, Power BI, and Tableau have straightforward interfaces and easy-to-understand navigation in terms of tool panels and report tabs. Most guides and descriptions of each function are provided when you hover over the icons.

User interface and navigation comparison between Power BI, Tableau and Looker Studio.

Toolbars are at the top of the screen for all tools. Looker Studio and Power BI are similar in that their data and customization panel is on the right side of the screen whereas Tableau’s is on the left.

By default, both Power BI and Tableau have a page or report tab at the bottom of the screen whereas Looker Studio’s is on the left.

Power BI user interface.

Looker studio user interface.

Tableau user interface.

Three of them have drag-and-drop functionality. Tableau has a bit of a plus here: it can automatically generate a visualization that suits the type of data once you drag it into the worksheet, making further adjustments after.

Tableau automatic visualisation generator.

For Power BI and Looker Studio, you’ll think first what type of visuals you need and then drag data into the dimensions and metrics sections.

Data input and visualisation generation comparison between Power BI and Looker Studio.

However, due to the complexity level of features in Power BI and, especially, Tableau, it could make their interface complicated for beginner users who need time to become familiar. On the other hand, Looker Studio has a clean and intuitive interface but it trades off with fewer functions.

 

7. Creating Custom Fields (Weight 7.5%)

(Power BI – 5 | Tableau – 5 | Looker Studio – 4)

Custom fields, such as calculated fields, can be extremely useful for marketing analysis. All three tools, Looker Studio, Tableau, and Power BI, allow you to create calculated ratios or metrics using basic formulas and operators commonly used in spreadsheets.

However, when it comes to more advanced formulas for transforming data, each tool has its own unique capabilities. Power BI, for example, offers deeper DAX (Data Analysis Expression) functions. Tableau has the LOD (Level of detail) expression, giving you more control over the level of granularity you want to compute.

Creating custom field comparison between Power BI, Tableau and Looker Studio.

List of functions of each tool

Power BI documentation

Tableau documentation

Looker Studio documentation

More advanced features and higher levels of granularity, in turn, come with a higher learning curve and more technical knowledge.

Which tool is the best?

After reading about the comparisons between these three tools, you may be wondering which one is the best fit for you, your digital marketing agency, or in other scenarios. Each tool has its own strengths and weaknesses, so it’s important to consider which features are most important to you. In this article, we’ve provided a summarized table to help you make your decision.

Based on the features we gave the highest priority to – device & OS compatibility, pricing, and user access – Looker Studio comes out as the winner. However, it does have some weaknesses in areas like load speed and customization options.

Keep in mind that the weight given to each feature can be adjusted depending on what’s most important to your company. We would definitely encourage you to use the summarized table provided to evaluate your decision and see how the results compare!

Comprehensive summary infographics of the comparison between Power BI vs Tableau vs Looker Studio created by Marketyze, a digital marketing agency.

Q&A

1. Are coding skills a must to create stunning reports and dashboards?

No, Looker Studio, Power BI, and Tableau do not require coding skills. They allow you to easily create and customize your reports with a drag-and-drop interface. And don’t worry if you are not a coding expert, these tools cover simple formulas and syntax for data transformation that are easy to learn!

2. How many data sources can Looker Studio, Power BI, and Tableau connect with?

All of them have got you covered with hundreds of connectors from Google Sheets to various SQL servers and even CRM platforms. Both Tableau and Power BI provide a wide range of file and database connectors, with Power BI you can additionally integrate with various Microsoft products. Looker Studio offers free connectors from Google and over 500 partner connectors of which some may require an additional fee.

3. Are dashboards by Looker Studio, Power BI, and Tableau able to stay fresh and up-to-date?

Yes! All three have automatic data refresh options which will make it easy for you to update your data sources, so you always have the most current and up-to-date information

4. What kinds of companies are Tableau and Power BI fit for?

If you have an affordable budget and want advanced analysis, such as machine learning or forecasting, both tools are great options for you. However, you can narrow down your options:

  • If your company is medium to large in size and already in the Microsoft ecosystem, Power BI would be a greater fit.
  • However, if you need high-detailed customizations and deal with a large volume of data, Tableau might be a better choice.

5. Comparing Power BI and Tableau, which one has a steeper learning curve for beginner users?

If you are new to data analysis, Tableau will be a bit more challenging for you as the tool is geared towards experienced data or business intelligence analysts and requires advanced analytics skills to fully utilize its capabilities. On the other hand, Power BI has a plus that its interface is similar to other Microsoft products.

We’d love to hear from you if, and how you apply our summarized table to evaluate your decision! If you need any help or are interested in Business Intelligence service, please feel free to contact us via email: 

Ultimate Guide to automate your TikTok Ads report

By Analytics2 Comments

There are many tools out there that allow you to pull data easily from your TikTok Ads accounts into a Google Spreadsheet for further processing. However, they usually come at a monthly cost. Therefore, we would like to share a solution to automate the data pulling from TikTok Ads for free by using our template!

In this article, we will also share what you need to use our template, things to look out for, and what the report will look like.

Prerequisites before starting pulling TikTok Ads data

To use TikTok API to pull data for your TikTok Ads, you will first need to register as a developer here and create an app.

For the expected outcome, please refer here to see support dimensions and metrics.

(Keep in mind that there can only be one ID dimension and one-time dimension in each request. For example, you can only have campaign_id with stat_time_day but not with the adgroup_id or ad_id ID dimensions)

Wait until your TikTok app is approved

After the app is approved, you will see your app id and secret.

TikTok App ID and secret key page The next thing you should get from the app is an authorization code (auth code).
Here is how you can get the auth code:

  1. First, go to https://ads.tiktok.com/marketing_api/apps/
  2. Choose your TikTok app.

    TikTok for business developers API page
  3. Now you will see app information including app id and secret.
  4. Then you will need to copy the URL from Advertiser authorization URL.

    TikTok for Business Development Marketyze Business Manager

  5. You will need to open the copied URL in a new browser’s tab. It will redirect you to the permissions page and you will need to go through a verification process.
  6. Once you’ve verified, you will again be redirected to whatever you had entered as the app’s Advertiser Redirect URL

    Here you will be able to see your auth code in the URL. See our Marketyze example below!

    Marketyze Auth code from URL bar

Please keep in mind that the auth code is for one-time use only. If you need to generate a new auth code, you will need to generate a new token as well.

Now you’re ready to get your TikTok Ads data!

STAGE 1: Generate your TikTok Ads access token!

  1. Make a copy of this Google Sheet

    Make a copy of the Google Sheets to extract the TikTok Ads data template created by Marketyze.
  2. In the tab name “(1) Generate Token”, fill in your TikTok app id, auth code, and app secret.

    Insert the necessary information into the Google Sheets to extract TikTok Ads data created by Marketyze.
  3. Then click on the “Generate Token” button

    Click on generate token on the Google Sheets to extract TikTok Ads data created by Marketyze.

  4. Once it’s done, you will see the TikTok access token with run status and time

Access token and run time updated on the Google Sheets to extract TikTok Ads data created by Marketyze.

STAGE 2: Get your TikTok Ads report!

  1. In the tab name “(2) Configure”, fill in your TikTok Ads report name, ad account id, data level, dimensions, metrics, and date range.

    Configure the Google Sheets to extract TikTok Ads data created by Marketyze.
  2. Click on the “Run Report” button. This might take a long while, perhaps around 3-5 minutes

    Click on Run Report on the Google Sheets to extract TikTok Ads data created by Marketyze.

  3. Once done, you will see the run status and the new tab created with a Tiktok_ ‘Your report Name’.

    Your report is ready! Below is an example of a TikTok Ads report generated.

Sample report generated by the Google Sheets to extract TikTok Ads data created by Marketyze.

If you want to run the report again, go back to the sheet and click the “Run report” button in the sheet “(2) Configure.” There is no need to recreate the token. Please keep in mind, however, that re-running the report will override — and not merge — the previous data pulled from your TikTok Ads.

We’d love to hear from you if, and how you are using this template. If you need any help, please feel free to contact us via email: analytics@marketyze.io

Google Tag Manager for link tracking

How to track link clicks on your website using Google Tag Manager

By Analytics6 Comments

Sometimes there might be a lot of similar links on your websites that you’d like to track as a “Click” event and see reported in Google Analytics. These can be clicks on your Social Media buttons (e.g. Facebook, Instagram, TikTok, etc), on your contact forms or any group of similar links. However, if you have a lot of buttons under one category, it will get tedious to create tags individually for each event. We’d like to show you how to save time by using Google Tag Manager’s (GTM) Lookup Table and RegEx Table variables.

Pre-requisite before starting

All you need to do is ensure that Google Tag Manager is properly installed on your websites! Then we’ll begin by creating variables, triggers, and tags. You can follow the steps outlined below.

Create variables – Google Tag Manager Lookup Table

A Google Tag Manager Lookup Table is a variable that will allow you to pair values from one variable with your desired value. So we can decide which link clicks to track and which value to return here.

1. Click on Variables

Click on Variables

2. Click on New

Click on New

3. Click on Variable Configuration

Click on Variable Configuration…

4. Click on Lookup Table

Click on Lookup Table

5. Select Choose Built-In Variable from Input Variable

6. Click on Click URL

This built-in variable, Click URL, will display the URL of the page where the button was clicked. This is where we indicate which link click to create as an event.

Click on Click URL

7. Click on + Add Row

Click on + Add Row

8. Type the URL of any link clicks you’d like to track into Input

Type your URL of any link clicks you'd like to track into input

9. Type “Social Click – Facebook” into Output

Here, I like to set my naming convention by categorizing and destination, and the separator will be a dash symbol (-). For example, I name click to my Facebook page as “Social Click – Facebook.” The category is “Social Click” and the destination is “Facebook”

Type

10. Click on + Add Row

If you have several link clicks to other websites, you can fill in more by clicking Add Row

Click on + Add Row

11. Name your variables and click “Save” – Here I name it “GA – Lookup Table”

Name your variables and click “Save” - Here I name it as “GA - Lookup Table”

Create variables – RegEx Table

In Google Tag Manager, a RegEx Table is used to determine whether or not an input pattern matches and, if so, to return the corresponding output value.

1. Click on New

Click on New

2. Click on Variable Configuration

Click on Variable Configuration…

3. Click on RegEx Table

Click on RegEx Table

4. Click on {{Click URL}} from Input Variable

Click on {{Click URL}} from Input Variable

5. Click on + Add Row

Click on + Add Row

6. Paste “(.*?) – (.*)” into input

This is a regular expression that contains 2 capturing groups which are (1) 1st capturing group (.*?) means to match any character until the next delimiter and (2) 2nd capturing group (.*) means to match any character until the end of string, this will ignore the next delimiter. For a dash (-) matches the character (-) literally.

Paste

7. Type “$1”

If you remember from creating Lookup Table, we have defined the naming convention with a dash (-) separator. $1 here is equivalent to the text before the separator so this variable will return any value before the dash

Type

8. Name the variable – Here I name it “GA – Category”

Name the variable

9. Click on Save

Click on Save

10. Again, click on New to create RegEx Table for the label

Click on New

11. Click on Variable Configuration

Click on Variable Configuration…

12. Click on RegEx Table

Click on RegEx Table

13. Click on {{Click URL}} from Input Variable

Click on {{Click URL}} from Input Variable

14. Click on + Add Row

Click on + Add Row

15. Paste “(.*?) – (.*)” into input

Paste

16. Type “$2”

$2 here is equivalent to the text after the separator so this variable will return any value after the dash

Type

17. Name the variable – Here I name it “GA – Label”

Name the variable

18. Click on Save

Click on Save

Create Triggers

1. Click on Triggers

Click on Triggers

2. Click on New

Click on New

3. Click on Trigger Configuration

Click on Trigger Configuration…

4. Click on Just Links

Click on Just Links

5. Click on This trigger fires on Some Link Clicks

Click on This trigger fires on Some Link Clicks

6. Select GA – Lookup Table

Select GA - Lookup Table

7. Type “undefined” – The operator here should be “does not equal”

This means that any link clicks happen, their {{Click URL}} are in the Lookup Table will be fired

Type

8. Name the Trigger – Here I name it as Trigger – Link Click

Name the Trigger

9. Click on Save

Click on Save

Create Tags

1. You need to create a tag to send a link click event to Google Analytics by selecting as following:

    1. Tag Type: Google Analytics: Universal Analytics
    2. Track Type: Event
    3. Category: Select from variable {{GA – Category}}
    4. Action: Click (you can define whatever you’d like here)
    5. Label: Select from variable {{GA – Label}}

2. This tag needs to be fired on “Trigger – Link Click” so choose this as a trigger of this tag

3. Name your tag and click “Save” – Here I name it “GA – Link Click

Once you have done your set-up, you will be able to see your event on Google Analytics under the event report!

Bonus – Another shortcut

Free templates that you can use with just a few changes required from you!

thThai

Our website uses cookies and other tracking technologies to improve your browsing experience as set in our Privacy policy.

ตั้งค่าความเป็นส่วนตัว

You can turn your cookie settings on and off. Cookies of each type are available on request, except for necessary cookies.

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • Necessary cookies
    เปิดใช้งานตลอด

    These cookies are strictly necessary for the operation of our website. You cannot disable these cookies.

บันทึกการตั้งค่า