A marketing analyst measures how campaigns, channels and website changes affect traffic, leads and sales, and advises where to spend the budget. Daily work includes GA4 and ad platform data, UTM hygiene, funnel and attribution analysis, campaign dashboards and A/B tests. Interviews test marketing metrics such as CTR, CPA and ROAS, SQL for sessions and channels, experiment design and how you explain attribution limits and incrementality to marketing leaders.
GA4 and UTM tracking Attribution and ROAS analysis A/B test analysis SQL for marketing data Campaign reporting
Solved for this roleStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
✓ 3 questions free • Unlock the rest in seconds
01
What are primary metrics and guardrail metrics in an A/B test?
The primary metric is the one decision metric the test is designed to move, such as checkout conversion. Guardrail metrics are ones that must not get worse, such as page load time, refund rate, unsubscribe rate or revenue per user. A change that lifts conversion but increases cancellations should not ship. Define both before launch, so the decision rule is clear and nobody picks the favourable metric afterwards.
02
What is the difference between bounce rate and engagement rate in GA4?
In GA4, an engaged session lasts longer than 10 seconds, has a conversion (key event) or has at least two page or screen views. Engagement rate is engaged sessions divided by total sessions. Bounce rate is simply the opposite: the share of sessions that were not engaged. This is more useful than the old single-page bounce definition, because a user who reads a full blog post for three minutes is no longer counted as a bounce.
03
Write SQL to calculate sessions, orders and conversion rate by traffic source.
SELECT
s.traffic_source,
COUNT(*) AS sessions,
COUNT(o.order_id) AS orders,
ROUND(100.0 * COUNT(o.order_id) / COUNT(*), 2) AS conversion_pct
FROM sessions s
LEFT JOIN orders o
ON o.session_id = s.session_id
GROUP BY s.traffic_source
ORDER BY sessions DESC;
-- assumes at most one order per session; otherwise use COUNT(DISTINCT o.session_id)
Two variables can move together because of a third factor, reverse causation or pure chance. Example: stores with more staff have higher sales, but busy locations get more staff because they already sell more, so hiring alone may not raise sales. Ice-cream sales and AC sales both rise in summer because of temperature. To claim causation you need experiments, natural experiments or careful control of confounders.
06
What is a holdout group and why do teams keep one?
A holdout group is a small share of users, often 5-10%, kept out of a feature or of all marketing campaigns for a long time. Comparing them with everyone else shows the cumulative long-term impact, which individual short tests miss, and checks whether many small wins really add up. For example, a notification holdout shows whether push messages raise monthly retention or just shift activity earlier.
07
Write SQL to calculate open rate and click-through rate for each email campaign.
SELECT
s.campaign_id,
COUNT(DISTINCT s.user_id) AS delivered,
COUNT(DISTINCT o.user_id) AS opened,
COUNT(DISTINCT c.user_id) AS clicked,
ROUND(100.0 * COUNT(DISTINCT o.user_id) / COUNT(DISTINCT s.user_id), 1) AS open_rate,
ROUND(100.0 * COUNT(DISTINCT c.user_id) / COUNT(DISTINCT s.user_id), 1) AS ctr
FROM email_sends s
LEFT JOIN email_opens o ON o.campaign_id = s.campaign_id AND o.user_id = s.user_id
LEFT JOIN email_clicks c ON c.campaign_id = s.campaign_id AND c.user_id = s.user_id
WHERE s.status = 'delivered'
GROUP BY s.campaign_id;
08
When would you use a one-tailed test instead of a two-tailed test?
A two-tailed test checks for a difference in either direction and is the safer default for A/B tests. A one-tailed test checks only one direction, such as treatment being better, and needs fewer users. Use it only if you decided beforehand that you would act the same way whether the change has no effect or a negative effect. Otherwise you may miss harm, which is why most teams stay two-tailed.
// treat missing sales as zero
ZN(SUM([Sales]))
// replace a missing value with a default
IFNULL([Region], 'Unknown')
// test explicitly
IF ISNULL([Discount]) THEN 0 ELSE [Discount] END
// right-click a null indicator on an axis to filter or show nulls at default position
12
How can a chart mislead even when the numbers are correct?
Common tricks are a truncated y-axis on bar charts, which exaggerates small differences; inconsistent scales across side-by-side charts; dual axes chosen to imply a correlation; cherry-picked time windows; cumulative charts that always rise; and area or 3D effects that distort size. Bars should start at zero, while line charts may zoom in if clearly labelled. Always check that the visual impression matches the actual magnitude.
SELECT
a.variant,
COUNT(DISTINCT a.user_id) AS users,
COUNT(DISTINCT o.user_id) AS converters,
ROUND(100.0 * COUNT(DISTINCT o.user_id)
/ COUNT(DISTINCT a.user_id), 2) AS conversion_pct
FROM experiment_assignments a
LEFT JOIN orders o
ON o.user_id = a.user_id
AND o.order_ts >= a.assigned_ts
WHERE a.experiment_id = 'checkout_v2'
GROUP BY a.variant;
15
What is the difference between a fact table and a dimension table?
A fact table stores measurable events at a defined grain, such as one row per order line, with numeric measures like quantity and amount plus foreign keys. Dimension tables describe the context of those events: customer, product, store and date, with descriptive attributes used for filtering and grouping. Facts are long and grow quickly; dimensions are wider and smaller. Together they form star or snowflake schemas.
16
Tell me about a time you worked with messy data under a tight deadline.
Situation: for a college placement project, I received survey data from three forms with different column names two days before submission. Task: combine and analyse it. Action: I mapped columns to a standard list, cleaned obvious issues like duplicate responses and mixed date formats in Power Query, and noted assumptions. I focused analysis on the five questions that mattered most. Result: we submitted on time, and the faculty praised the documented cleaning steps.
A date table has one row per day with no gaps, covering the full range of your data, plus columns like year, month, quarter and week. Marking it as a date table tells Power BI to use it for time intelligence functions such as TOTALYTD and SAMEPERIODLASTYEAR. Without it, those functions can give wrong results and auto date tables bloat the model. Relate it to every fact table's date column.
19
What is the difference between an A/B test, an A/B/n test and a multivariate test?
An A/B test compares one change with control. An A/B/n test compares several versions of one element, such as three headlines, with control. A multivariate test changes several elements at once, such as headline and button colour, and tests every combination to see each element's effect and their interactions. Multivariate tests need much more traffic because users are spread across many combinations.
20
What is the difference between COUNT(*), COUNT(column) and COUNT(DISTINCT column)?
COUNT(*) counts all rows, including rows with NULLs. COUNT(column) counts only rows where that column is not NULL. COUNT(DISTINCT column) counts unique non-null values. For example, in an orders table, COUNT(*) gives number of orders, COUNT(coupon_code) gives orders that used a coupon, and COUNT(DISTINCT customer_id) gives number of unique buyers. Mixing these up is a common source of wrong KPIs.
21
During a review, an executive asks a question about your numbers that you cannot answer on the spot. What do you do?
Do not guess. Say clearly that you do not have that cut ready, restate the question to confirm it, and give a time by which you will reply, for example by end of day. If you know a partial answer or a reasonable expectation, share it with a caveat. Then follow up on time with a short, precise answer. Being honest and reliable builds more trust than a confident wrong number.
22
Write Python code to test whether conversion differs between control and treatment.
from statsmodels.stats.proportion import proportions_ztest, proportion_confint
conversions = [1180, 1295] # control, treatment
visitors = [30000, 30100]
z, p = proportions_ztest(conversions, visitors)
print(f'z = {z:.2f}, p = {p:.4f}')
for c, n in zip(conversions, visitors):
low, high = proportion_confint(c, n, method='wilson')
print(f'rate {c/n:.3%} 95% CI {low:.3%} to {high:.3%}')
23
Tell me about a time tracking broke and you had to fix the reporting.
Situation: after a checkout redesign, purchases in our analytics fell 35% overnight while orders were normal. Task: find the cause and protect the weekly report. Action: I compared analytics with the order table by page and device, found the purchase tag no longer fired on the new UPI payment success page, and worked with developers to fix it. Result: I backfilled the gap from order data, added a footnote and set up a daily mismatch alert.
A data mart is a subset of the warehouse built for one department or subject, such as sales, finance or HR. It contains the facts and dimensions that team needs, often pre-aggregated and with business-friendly names. Marts make reporting faster and simpler for that team. Ideally they are built from the central warehouse using conformed dimensions, so the finance mart and the sales mart still agree on revenue.
A simple structure is context, conflict, resolution. Context sets up what the audience already knows, such as our target was 10 percent growth. Conflict shows the surprising finding or problem, such as growth is only 3 percent because repeat buyers dropped. Resolution gives the recommendation and expected impact. Another option is situation, complication, question, answer. Either way, the audience should know the main message within the first minute.
26
What do CTR, CPC, CPA and ROAS mean in digital marketing?
CTR, click-through rate, is clicks divided by impressions. CPC, cost per click, is spend divided by clicks. CPA, cost per acquisition, is spend divided by conversions such as orders or leads. ROAS, return on ad spend, is revenue from ads divided by ad spend, so a ROAS of 4 means 4 rupees of revenue per rupee spent. ROAS ignores product margin, so a high ROAS can still lose money.
27
What is the difference between a primary key and a unique constraint?
Both prevent duplicate values. A table can have only one primary key, it cannot contain NULLs, and it is the main identifier other tables reference through foreign keys. A table can have several unique constraints, for example on email and on PAN number, and most databases allow NULLs in a unique column. Use the primary key for the row identity and unique constraints for other business rules.
28
How would you write a short email summarising an analysis for a manager?
Use a clear subject that states the finding, such as Q3 repeat purchase rate fell 4 points, mainly in Tier 2 cities. Open with one or two sentences of the key insight and the recommendation. Follow with three bullet-style lines of supporting evidence with numbers, then any caveats about data, and a clear next step or decision needed with a date. Attach or link the detailed workings instead of pasting large tables.
29
How do you create a dual-axis chart in Tableau, for example sales bars with a profit margin line?
Drag Order Date to Columns as a continuous or discrete month, put Sales on Rows, then drag Profit Ratio to Rows next to it. Right-click the second pill and choose Dual Axis. On the Marks card set Sales to Bar and Profit Ratio to Line. Decide whether to synchronise axes: do not synchronise when units differ, like rupees and percentage. Label the axes clearly so readers know which is which.
30
Write SQL to find the number of days between each customer's consecutive orders and their average gap.
WITH gaps AS (
SELECT customer_id,
order_date,
order_date - LAG(order_date) OVER (
PARTITION BY customer_id ORDER BY order_date) AS days_since_prev
FROM orders
)
SELECT customer_id,
COUNT(*) AS orders,
AVG(days_since_prev) AS avg_gap_days
FROM gaps
GROUP BY customer_id
HAVING COUNT(*) > 1;
-- order_date is DATE (PostgreSQL); use DATEDIFF in other databases
31
Your A/B test ends with no significant difference. How do you report it?
A flat result is still useful. Report the observed difference with its confidence interval, for example -0.3% to +0.8%, which shows the range of effects still possible. State whether the test had enough power for the planned MDE. If it did, conclude that any effect is probably small and the team can choose based on cost or simplicity. Share learnings so the same idea is not retested blindly.
32
What are pre-attentive attributes and how do you use them in charts?
Pre-attentive attributes are visual properties the brain notices in a fraction of a second before conscious thought, such as colour, size, position, length and bold weight. Use them to direct attention: make all bars grey and highlight only the declining region in a strong colour, or bold the one number that matters. Using too many highlights cancels the effect, so emphasise one or two things per chart.
33
A report filters WHERE order_date = '2026-03-31' and misses almost all orders from that day. Why?
order_date is probably a DATETIME or TIMESTAMP column, so the filter matches only rows at exactly midnight, 2026-03-31 00:00:00. Use a half-open range instead: WHERE order_date >= '2026-03-31' AND order_date < '2026-04-01'. This keeps the index usable, unlike wrapping the column in CAST or DATE(), and it correctly includes orders at 23:59:59.500. Also check the time zone of the stored timestamps.
A function that calculates over a set of rows related to the current row without collapsing them, such as ROW_NUMBER, RANK, LAG or SUM() OVER (PARTITION BY ...).
35
What is an A/B test and why is random assignment so important?
An A/B test is a controlled experiment where users are split into a control group that sees the current version and a treatment group that sees a change, and you compare a metric such as conversion. Random assignment makes the groups similar in every way except the change, including things you cannot measure. That is why a difference in results can be attributed to the change itself, not to user mix or seasonality.
36
Write SQL to count orders by week and by day of week.
-- orders per week (PostgreSQL style)
SELECT DATE_TRUNC('week', order_date) AS week_start,
COUNT(*) AS orders
FROM orders
GROUP BY 1
ORDER BY 1;
-- orders by day of week (0 = Sunday)
SELECT EXTRACT(DOW FROM order_date) AS dow,
COUNT(*) AS orders
FROM orders
GROUP BY 1
ORDER BY 1;
A good answer links genuine interest, evidence and the role. For example: I enjoy turning messy questions into clear answers. In my final-year project I analysed two years of canteen sales in Excel and Python and showed that changing the menu on exam weeks could cut waste. I liked that the analysis led to an actual change. I want a role where my SQL, Power BI and communication skills help teams make better decisions.
ROW_NUMBER gives a unique sequence. RANK gives ties the same rank and skips the next (1, 1, 3). DENSE_RANK gives ties the same rank without gaps (1, 1, 2).
39
A stakeholder asks for a pie chart of 12 product categories. When is a pie chart acceptable, and what would you suggest?
A pie chart works only for showing parts of a whole with very few categories, two to four, where one share clearly dominates, such as 70 percent of orders are prepaid. Avoid it when there are many slices, when values are close, or when comparing across periods, because people judge angles poorly. A sorted bar chart is almost always easier to read and compare. Never use 3D pies.
UNION removes duplicate rows and sorts internally; UNION ALL keeps every row and is faster.
Frequently asked questions
What does a Marketing Analyst do?
A marketing analyst measures how campaigns, channels and website changes affect traffic, leads and sales, and advises where to spend the budget. Daily work includes GA4 and ad platform data, UTM hygiene, funnel and attribution analysis, campaign dashboards and A/B tests. Interviews test marketing metrics such as CTR, CPA and ROAS, SQL for sessions and channels, experiment design and how you explain attribution limits and incrementality to marketing leaders.
Which skills are tested in a Marketing Analyst interview?
Expect questions on GA4 and UTM tracking, Attribution and ROAS analysis, A/B test analysis, SQL for marketing data, Campaign reporting. Most rounds also ask you to explain a project and solve one practical problem live.
How do I prepare for a Marketing Analyst interview?
Revise Web & Marketing Analytics, A/B Testing & Experiments, SQL, Data Storytelling first using the topic sheets, practise the questions on this page aloud, then do one full mock interview to practise timing.