PPC — Pay Per Click
PPC — Pay Per Click সম্পূর্ণ ব্যাখ্যা 📖
১. আগে একটা Real Story দিয়ে শুরু করি
🏪 ধরো FoodBD App এর কথা
FoodBD এর Marketing Manager দুইটা option দেখছে Ad দেওয়ার জন্য —
Option A — Billboard (রাস্তার পাশে বড় বোর্ড):
ঢাকার মিরপুরে একটা বড় billboard লাগালো।
প্রতি মাসে ৳৫০,০০০ দিতে হবে।
১০ লাখ মানুষ দেখলো।
কিন্তু কতজন actually app download করলো?
জানার কোনো উপায় নেই। 😕
টাকা যাচ্ছেই — click হোক বা না হোক।
Option B — Google/Facebook Ad (PPC):
Google এ Ad দিলো।
কেউ Ad দেখলো কিন্তু click করলো না → কোনো টাকা লাগলো না ✅
কেউ Ad এ click করলো → তখনই টাকা কাটলো ✅
মানে — শুধু কাজের মানুষের জন্যই টাকা দিচ্ছো।
এই Option B এর পুরো system টাই হলো PPC।
২. PPC কী? (Definition)
PPC = Pay Per Click
PPC হলো একটা Advertising Model যেখানে Advertiser শুধুমাত্র তখনই টাকা দেয় যখন কেউ তার Ad এ Click করে।
Ad দেখলো → টাকা নেই
Ad এ Click করলো → তখনই টাকা কাটলো
৩. PPC vs CPC — এই দুইটা কি একই জিনিস?
এখানে অনেকেই confuse হয়। পরিষ্কার করি।
┌─────────────────────────────────────────────────────┐
│ │
│ PPC = একটা ADVERTISING MODEL/SYSTEM │
│ (কীভাবে টাকা দেবো তার পদ্ধতি) │
│ │
│ CPC = একটা METRIC/NUMBER │
│ (প্রতিটা click এ কত টাকা গেছে) │
│ │
└─────────────────────────────────────────────────────┘
Real Life Example:
তুমি Pathao তে ride নিলে — এটা একটা SYSTEM (Ride Sharing)
সেই ride এ কত টাকা লাগলো — এটা একটা NUMBER (Fare)
ঠিক তেমনি:
PPC = Ride Sharing System এর মতো (Ad দেওয়ার পদ্ধতি)
CPC = Fare এর মতো (প্রতি click এ কত টাকা)
সহজ সম্পর্ক:
তুমি PPC Model এ Ad দিলে
সেই Ad এর প্রতিটা Click এর Cost হলো CPC
PPC Campaign চালালে → CPC দিয়ে measure করো
৪. PPC কীভাবে কাজ করে? (Step by Step)
Google Search এ PPC এর উদাহরণ:
STEP 1 — User কিছু Search করে
একজন user Google এ লিখলো:
"ঢাকায় food delivery app"
STEP 2 — Auction হয়
Google এর পেছনে automatically একটা
Auction (নিলাম) শুরু হয়।
FoodBD → "আমি এই keyword এ ৳৫ দেবো per click"
HungryBD → "আমি ৳৩ দেবো per click"
Shohoz → "আমি ৳৪ দেবো per click"
এই পুরো process টা মিলিসেকেন্ডে হয়।
User কিছুই বোঝে না।
STEP 3 — Ad দেখায়
Google সবচেয়ে বেশি bid করা
এবং সবচেয়ে relevant Ad দেখায়।
Search Result:
┌────────────────────────────────────┐
│ [Ad] FoodBD - Fast Food Delivery │ ← FoodBD জিতেছে
│ Order now and get 20% off! │
│ foodbd.com │
├────────────────────────────────────┤
│ [Ad] Shohoz Food │ ← Shohoz 2nd
│ shohoz.com/food │
└────────────────────────────────────┘
STEP 4 — Click হলে টাকা কাটে
User FoodBD এর Ad এ click করলো
→ FoodBD এর account থেকে ৳৫ কাটলো
User Ad দেখলো কিন্তু click করলো না
→ কোনো টাকা কাটলো না ✅
৫. PPC এর প্রকারভেদ (Types)
Type 1 — Search Ads (সবচেয়ে Common)
কোথায়: Google Search, Bing Search
কখন দেখায়: User কিছু search করলে
Example:
User লিখলো "food delivery dhaka"
→ FoodBD এর Ad উপরে দেখায়
কখন use করবে:
মানুষ already কিছু খুঁজছে,
তাদের কাছে পৌঁছাতে চাও।
Type 2 — Display Ads (ছবি/Banner Ad)
কোথায়: বিভিন্ন website এর মধ্যে
কখন দেখায়: User অন্য website browse করার সময়
Example:
তুমি Prothom Alo পড়ছো
→ পাশে FoodBD এর colorful banner দেখাচ্ছে
কখন use করবে:
Brand awareness বাড়াতে চাও।
Type 3 — Social Media Ads
কোথায়: Facebook, Instagram, TikTok
কখন দেখায়: Feed scroll করার সময়
Example:
Facebook scroll করতে করতে
→ FoodBD এর "৫০% off first order" Ad দেখালো
কখন use করবে:
Specific age/location/interest
এর মানুষদের target করতে চাও।
Type 4 — Shopping Ads
কোথায়: Google Shopping
কখন দেখায়: Product search করলে
Example:
"running shoes buy online" লিখলে
→ ছবিসহ product এবং দাম দেখায়
কখন use করবে:
E-commerce product বিক্রি করতে চাও।
৬. PPC Campaign এর গুরুত্বপূর্ণ Terms
🔑 Keyword
যে শব্দ বা phrase user search করলে
তোমার Ad দেখাবে।
Example:
FoodBD এর Keywords:
→ "food delivery dhaka"
→ "online food order"
→ "burger delivery near me"
💰 Bid
তুমি প্রতিটা click এর জন্য
সর্বোচ্চ কত টাকা দিতে রাজি আছো।
Example:
FoodBD এর Bid = ৳৫ per click
মানে — প্রতি click এ সর্বোচ্চ ৳৫ দেবে।
কিন্তু সবসময় ৳৫ কাটে না,
কম ও কাটতে পারে।
📊 Quality Score
Google তোমার Ad কে ১-১০ এ score দেয়।
Score বেশি হলে:
→ Ad উপরে দেখায়
→ প্রতি click এ কম টাকা লাগে
Score কম হলে:
→ Ad নিচে দেখায়
→ প্রতি click এ বেশি টাকা লাগে
Quality Score নির্ভর করে:
→ Ad কতটা relevant
→ Landing page কতটা ভালো
→ CTR কত
📄 Landing Page
Ad এ click করলে user যে page এ যায়।
Example:
FoodBD এর Ad এ click করলে
→ FoodBD এর App download page এ যায়
ভালো Landing Page = বেশি Conversion
খারাপ Landing Page = টাকা waste
🎯 Ad Rank
তোমার Ad কত নম্বরে দেখাবে সেটা।
Ad Rank নির্ভর করে:
Bid × Quality Score
Example:
FoodBD: Bid ৳৫ × Quality Score ৮ = Ad Rank ৪০
HungryBD: Bid ৳৮ × Quality Score ৪ = Ad Rank ৩২
Shohoz: Bid ৳৩ × Quality Score ৯ = Ad Rank ২৭
Winner → FoodBD (Ad Rank সবচেয়ে বেশি)
মানে বেশি Bid দিলেই জেতা যায় না,
Ad quality ও গুরুত্বপূর্ণ।
৭. PPC এর সাথে যে Metrics গুলো দেখতে হয়
┌─────────────────────────────────────────────────────────┐
│ PPC Campaign │
├──────────────┬──────────────┬───────────────────────────┤
│ CPC │ CTR │ Conversion Rate │
│ প্রতি click │ কতজন click │ click করে কতজন │
│ এ কত টাকা │ করলো │ actually কিনলো/install │
├──────────────┼──────────────┼───────────────────────────┤
│ ৳২০ │ 2% │ 5% │
└──────────────┴──────────────┴───────────────────────────┘
│ │ │
▼ ▼ ▼
কম হলে ভালো বেশি হলে ভালো বেশি হলে ভালো
৮. Database Structure
-- PPC Campaign track করার জন্য
CREATE TABLE ppc_campaigns (
id SERIAL PRIMARY KEY,
campaign_name VARCHAR(100) NOT NULL,
platform VARCHAR(50), -- 'google','facebook'
campaign_type VARCHAR(50), -- 'search','display','social'
keyword VARCHAR(200), -- target keyword
bid_amount DECIMAL(10,2), -- max bid per click
daily_budget DECIMAL(10,2), -- দিনে সর্বোচ্চ কত খরচ
total_spend DECIMAL(10,2) DEFAULT 0,
total_impressions BIGINT DEFAULT 0,
total_clicks BIGINT DEFAULT 0,
total_conversions INT DEFAULT 0, -- কতজন actually কিনলো
start_date DATE,
end_date DATE,
status VARCHAR(20) DEFAULT 'active'
);
৯. SQL দিয়ে PPC Performance দেখা
Query 1 — Full PPC Report
SELECT
campaign_name,
platform,
campaign_type,
keyword,
bid_amount,
total_spend,
total_impressions,
total_clicks,
total_conversions,
-- CPC
ROUND(
total_spend /
NULLIF(total_clicks, 0)
, 2) AS cpc,
-- CTR
ROUND(
total_clicks * 100.0 /
NULLIF(total_impressions, 0)
, 2) AS ctr,
-- Conversion Rate
ROUND(
total_conversions * 100.0 /
NULLIF(total_clicks, 0)
, 2) AS conversion_rate,
-- Cost Per Conversion
-- প্রতিটা conversion এ কত টাকা গেছে
ROUND(
total_spend /
NULLIF(total_conversions, 0)
, 2) AS cost_per_conversion
FROM ppc_campaigns
WHERE status = 'active'
ORDER BY cost_per_conversion ASC;
Output:
campaign_name | platform | keyword | spend | clicks | conv | cpc | ctr | conv_rate | cost_per_conv
--------------------|----------|----------------------|--------|--------|------|------|------|-----------|---------------
FoodBD App Install | google | food delivery dhaka | 20000 | 10000 | 500 | 2.00 | 4.0 | 5.00% | 40.00
FoodBD Brand Aware | facebook | - | 15000 | 5000 | 150 | 3.00 | 2.5 | 3.00% | 100.00
FoodBD Ramadan | google | online food order | 10000 | 3000 | 60 | 3.33 | 1.5 | 2.00% | 166.67
Query 2 — Keyword wise Performance
-- কোন keyword সবচেয়ে ভালো perform করছে?
SELECT
keyword,
SUM(total_spend) AS total_spend,
SUM(total_clicks) AS total_clicks,
SUM(total_conversions) AS total_conversions,
ROUND(
SUM(total_spend) /
NULLIF(SUM(total_clicks), 0)
, 2) AS cpc,
ROUND(
SUM(total_conversions) * 100.0 /
NULLIF(SUM(total_clicks), 0)
, 2) AS conversion_rate
FROM ppc_campaigns
WHERE status = 'active'
AND keyword IS NOT NULL
GROUP BY keyword
ORDER BY conversion_rate DESC;
Output:
keyword | total_spend | total_clicks | conversions | cpc | conversion_rate
-----------------------|-------------|--------------|-------------|------|----------------
food delivery dhaka | 20000 | 10000 | 500 | 2.00 | 5.00%
burger delivery dhaka | 8000 | 3200 | 128 | 2.50 | 4.00%
online food order | 10000 | 3000 | 60 | 3.33 | 2.00%
"food delivery dhaka" keyword সবচেয়ে বেশি conversion দিচ্ছে। এই keyword এ আরো বেশি invest করা উচিত।
১০. Python দিয়ে PPC Analyze করা
import pandas as pd
import psycopg2
conn = psycopg2.connect(
host="your-host",
database="your_db",
user="your_user",
password="your_password"
)
query = """
SELECT
campaign_name,
platform,
campaign_type,
keyword,
bid_amount,
total_spend,
total_impressions,
total_clicks,
total_conversions
FROM ppc_campaigns
WHERE status = 'active'
"""
df = pd.read_sql(query, conn)
conn.close()
# =============================================
# CALCULATE ALL METRICS
# =============================================
df['cpc'] = (
df['total_spend'] / df['total_clicks']
).round(2)
df['ctr'] = (
df['total_clicks'] * 100 / df['total_impressions']
).round(2)
df['conversion_rate'] = (
df['total_conversions'] * 100 / df['total_clicks']
).round(2)
df['cost_per_conversion'] = (
df['total_spend'] / df['total_conversions']
).round(2)
print("============================================")
print(" PPC CAMPAIGN REPORT ")
print("============================================")
print(df[[
'campaign_name',
'platform',
'total_spend',
'cpc',
'ctr',
'conversion_rate',
'cost_per_conversion'
]].to_string(index=False))
# =============================================
# BEST AND WORST CAMPAIGNS
# =============================================
best_campaign = df.loc[
df['conversion_rate'].idxmax(), 'campaign_name'
]
worst_campaign = df.loc[
df['cost_per_conversion'].idxmax(), 'campaign_name'
]
print(f"\n🌟 Best Campaign : {best_campaign}")
print(f"⚠️ Worst Campaign : {worst_campaign}")
# =============================================
# BUDGET EFFICIENCY CHECK
# =============================================
print("\n===== Budget Efficiency =====")
for _, row in df.iterrows():
efficiency = "✅ Good" if row['conversion_rate'] > 3 else "⚠️ Needs Work"
print(
f"{row['campaign_name']:<25} | "
f"Conv Rate: {row['conversion_rate']}% | "
f"{efficiency}"
)
Output:
============================================
PPC CAMPAIGN REPORT
============================================
campaign_name platform total_spend cpc ctr conv_rate cost_per_conv
FoodBD App Install google 20000.00 2.00 4.00 5.00% 40.00
FoodBD Brand Aware facebook 15000.00 3.00 2.50 3.00% 100.00
FoodBD Ramadan google 10000.00 3.33 1.50 2.00% 166.67
🌟 Best Campaign : FoodBD App Install
⚠️ Worst Campaign : FoodBD Ramadan
===== Budget Efficiency =====
FoodBD App Install | Conv Rate: 5.0% | ✅ Good
FoodBD Brand Aware | Conv Rate: 3.0% | ✅ Good
FoodBD Ramadan | Conv Rate: 2.0% | ⚠️ Needs Work
১১. সব Metrics একসাথে — Big Picture
PPC Campaign চালালাম
│
▼
১,০০,০০০ Impression ← CPM দিয়ে measure করি
│
▼
২,০০০ Clicks ← CTR = 2%, CPC দিয়ে measure করি
│
▼
১০০ Conversions ← Conversion Rate = 5%
│
▼
৳৫০,০০০ Revenue ← ROAS/ROI দিয়ে measure করি
১২. Common Mistakes ⚠️
| Mistake | সমস্যা | সমাধান |
|---|---|---|
| শুধু Click দেখা | Click বেশি হলেই Revenue নাও হতে পারে | Conversion Rate ও দেখো |
| Budget limit না রাখা | অনেক বেশি টাকা খরচ হয়ে যায় | Daily budget set করো |
| Wrong keyword | ভুল মানুষের কাছে Ad যায় | Specific keyword use করো |
| Landing page ignore করা | Click এর পরে মানুষ চলে যায় | Landing page optimize করো |
| সব platform এ একসাথে | কোনোটাই ভালোভাবে হয় না | একটা দিয়ে শুরু করো |
সারসংক্ষেপ 🎯
| বিষয় | মূল কথা |
|---|---|
| PPC কী | Advertising model — শুধু click এ টাকা দাও |
| CPC এর সাথে পার্থক্য | PPC = System, CPC = সেই system এর metric |
| কীভাবে কাজ করে | Auction → Ad দেখায় → Click → টাকা কাটে |
| Types | Search, Display, Social, Shopping |
| Key Terms | Keyword, Bid, Quality Score, Landing Page, Ad Rank |
| Measure করো | CPC, CTR, Conversion Rate, Cost per Conversion |
তিনটা Ad Model মনে রাখো এভাবে 🧠
PPC → Click করলে টাকা দাও (Pay Per Click)
CPM → ১০০০ জন দেখলে টাকা দাও (Cost Per Mille)
CPC → প্রতি click এ কত টাকা গেছে (Metric)