Header Ads

Header ADS

Referrals

 

১. Referral কী? (Definition)

সহজ বাংলায়: Referral মানে হলো — একজন মানুষ আরেকজনকে কোনো product বা service ব্যবহার করার জন্য recommend করা বা পাঠানো।

যে পাঠায় → Referrer যাকে পাঠানো হয় → Referee


২. Real Life Examples

🛒 Example 1 — Shohoz / Pathao (Ride Sharing)

তুমি Pathao use করো। তোমার বন্ধুকে বললে "আমার referral code দিয়ে sign up কর, তুমি ৫০ টাকা পাবি, আমিও পাবো।" বন্ধু সেই code দিয়ে sign up করলো।

এখানে:

  • Referrer = তুমি
  • Referee = তোমার বন্ধু
  • Referral = এই পুরো ঘটনাটা

🛍️ Example 2 — Chaldal / Shajgoj (E-commerce)

Chaldal এর app এ একটা "Invite Friends" button আছে। তুমি link share করলে → বন্ধু সেই link দিয়ে app open করলো। এটাই একটা Referral Event।


💼 Example 3 — B2B SaaS (Office Context)

তোমার company একটা analytics tool use করে। তোমার manager অন্য একটা company তে recommend করলেন। সেই company sign up করলো। এটা B2B Referral।


৩. Referral কীভাবে কাজ করে? (Flow)

[Referrer] ──share──▶ [Unique Link/Code] ──click──▶ [Referee]
                                                          │
                                                     Sign Up / Install
                                                          │
                                              ┌───────────▼────────────┐
                                              │   Referral Recorded    │
                                              │   in Database          │
                                              └───────────┬────────────┘
                                                          │
                                              ┌───────────▼────────────┐
                                              │  Reward Triggered?     │
                                              │  (Yes / No)            │
                                              └────────────────────────┘

৪. Referral এর প্রকারভেদ (Types)

Type 1 — Direct Referral

একজন directly আরেকজনকে বলে। Example: WhatsApp এ link পাঠানো।


Type 2 — Code-Based Referral

একটা unique code দেওয়া হয়। Example: REF-RAHIM-2024 এই code দিয়ে sign up।


Type 3 — Link-Based Referral

একটা unique URL দেওয়া হয়। Example: app.com/signup?ref=rahim123


Type 4 — Organic Referral (Word of Mouth)

কোনো code বা link ছাড়া — শুধু মুখে মুখে। Example: "Bkash use কর, অনেক ভালো।" ⚠️ এটা track করা কঠিন।


৫. Database এ Referral কীভাবে Store হয়?

Production এ একটা typical referrals table এরকম হয়:

CREATE TABLE referrals (
    id              SERIAL PRIMARY KEY,
    referrer_id     INT NOT NULL,         -- যে পাঠিয়েছে তার ID
    referee_id      INT NOT NULL,         -- যাকে পাঠানো হয়েছে তার ID
    referral_code   VARCHAR(50),          -- ব্যবহৃত code
    referral_source VARCHAR(50),          -- 'whatsapp', 'facebook', 'email'
    status          VARCHAR(20)           -- 'pending', 'completed', 'expired'
                    DEFAULT 'pending',
    referred_at     TIMESTAMP             -- কখন refer করা হয়েছে
                    DEFAULT NOW(),
    converted_at    TIMESTAMP,            -- কখন convert হয়েছে (NULL হতে পারে)
    reward_given    BOOLEAN DEFAULT FALSE -- reward দেওয়া হয়েছে কিনা
);

৬. Python দিয়ে Referral Data Analyze করা

Step 1 — Data Load করো (Postgres থেকে)

import psycopg2
import pandas as pd

# Postgres connection
conn = psycopg2.connect(
    host="your-host",
    database="your_db",
    user="your_user",
    password="your_password"
)

query = """
    SELECT
        referrer_id,
        referee_id,
        referral_code,
        referral_source,
        status,
        referred_at,
        converted_at
    FROM referrals
    WHERE referred_at >= NOW() - INTERVAL '30 days'
"""

df = pd.read_sql(query, conn)
conn.close()

print(df.head())
print(f"Total Referrals (Last 30 days): {len(df)}")

Step 2 — Basic Referral Summary

# মোট referral count
total_referrals = len(df)

# Status অনুযায়ী breakdown
status_breakdown = df['status'].value_counts()

# Source অনুযায়ী breakdown
source_breakdown = df['referral_source'].value_counts()

print("===== Referral Summary =====")
print(f"Total Referrals     : {total_referrals}")
print(f"\nBy Status:\n{status_breakdown}")
print(f"\nBy Source:\n{source_breakdown}")

Output দেখতে এরকম হবে:

===== Referral Summary =====
Total Referrals     : 1500

By Status:
completed    850
pending      500
expired      150

By Source:
whatsapp    700
facebook    400
email       250
direct      150

Step 3 — Top Referrers খুঁজে বের করো

# কোন user সবচেয়ে বেশি refer করেছে
top_referrers = (
    df[df['status'] == 'completed']
    .groupby('referrer_id')
    .size()
    .reset_index(name='successful_referrals')
    .sort_values('successful_referrals', ascending=False)
    .head(10)
)

print("===== Top 10 Referrers =====")
print(top_referrers)

৭. Referral Funnel — পুরো Journey

১০০০ জন Referral Link পেলো
        │
        ▼
 ৬০০ জন Link Click করলো       ← Click Rate: 60%
        │
        ▼
 ৪০০ জন Sign Up করলো          ← Sign Up Rate: 40%
        │
        ▼
 ২৫০ জন App Use করলো          ← Activation Rate: 25%
        │
        ▼
 ১৫০ জন Purchase করলো         ← Conversion Rate: 15%

প্রতিটা step এর data তোমার referrals table এ থাকবে।


৮. Referral Lifecycle — Status Changes

referred_at এ তৈরি হয়
        │
   status = 'pending'
        │
        ├──── referee sign up করলো না, ৭ দিন গেলো ──▶ status = 'expired'
        │
        └──── referee sign up করলো ──▶ status = 'completed'
                                              │
                                        converted_at set হয়
                                              │
                                        reward_given = TRUE

৯. Superset Dashboard এ Referral দেখানো

তোমার Superset এ এই SQL queries use করতে পারো:

Chart 1 — Daily Referral Trend

SELECT
    DATE(referred_at)   AS referral_date,
    COUNT(*)            AS total_referrals,
    SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) AS completed
FROM referrals
GROUP BY DATE(referred_at)
ORDER BY referral_date;

Chart 2 — Source wise Referral Breakdown

SELECT
    referral_source,
    COUNT(*)    AS total,
    ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER (), 2) AS percentage
FROM referrals
GROUP BY referral_source
ORDER BY total DESC;

১০. Production এ Common Mistakes ⚠️

Mistake সমস্যা সমাধান
Duplicate referral count একই user দুইবার count হওয়া referee_id তে UNIQUE constraint দাও
Self-referral নিজেই নিজেকে refer করা referrer_id != referee_id check করো
Expired tracking না করা Pending গুলো কখনো close হয় না CRON job দিয়ে ৭ দিন পর expire করো
Source tracking মিস কোথা থেকে এলো জানা যায় না UTM parameter বা referral_source সবসময় save করো
Reward double count একই referral এ দুইবার reward reward_given flag check করে তারপর update করো

১১. CRON Job — Auto Expire Referrals

# cron_expire_referrals.py
# প্রতিদিন রাত ১২টায় run হবে

import psycopg2
from datetime import datetime

def expire_old_referrals():
    conn = psycopg2.connect(
        host="your-host",
        database="your_db",
        user="your_user",
        password="your_password"
    )
    cursor = conn.cursor()

    expire_query = """
        UPDATE referrals
        SET status = 'expired'
        WHERE status = 'pending'
          AND referred_at < NOW() - INTERVAL '7 days'
    """

    cursor.execute(expire_query)
    affected_rows = cursor.rowcount
    conn.commit()

    print(f"[{datetime.now()}] Expired {affected_rows} referrals.")

    cursor.close()
    conn.close()

if __name__ == "__main__":
    expire_old_referrals()

Crontab setup:

# প্রতিদিন রাত ১২টায় চলবে
0 0 * * * /usr/bin/python3 /home/etl/cron_expire_referrals.py

সারসংক্ষেপ 🎯

বিষয় মূল কথা
Referral কী একজন user আরেকজনকে পাঠানো
Track হয় কীভাবে Unique code বা link দিয়ে
Database এ কী থাকে referrer, referee, status, source, timestamp
Production এ সতর্কতা Duplicate, self-referral, expiry handle করো
Dashboard এ দেখাও Daily trend, source breakdown, top referrers



Referral Funnel এবং Conversion 

১. Funnel কী জিনিস?

Funnel মানে হলো চোঙা বা ফানেল — উপরে চওড়া, নিচে সরু।

Business এ Funnel মানে:

অনেক মানুষ শুরু করে, কিন্তু প্রতিটা step এ কিছু মানুষ ঝরে যায়, শেষে অল্প কিছু মানুষ থাকে।

     ████████████████████      ← ১০০০ জন (শুরু)
          ████████████         ← ৬০০ জন
             ████████          ← ৪০০ জন
               █████           ← ২৫০ জন
                ███            ← ১৫০ জন (শেষ)

উপরে বেশি মানুষ → নিচে কম মানুষ। এই shape টাই Funnel।


২. Referral Funnel কী?

Referral Funnel হলো —

একটা referral link/code তৈরি হওয়া থেকে শুরু করে সেই referee একজন actual customer হওয়া পর্যন্ত পুরো journey কে steps এ ভাগ করা।

প্রতিটা step এ কতজন আছে সেটা track করাই হলো Referral Funnel Analysis।


৩. Referral Funnel এর প্রতিটা Step — Real Example দিয়ে

🏪 ধরো একটা Bangladeshi Food Delivery App "FoodBD"


STEP 1 — Referral Sent (Link পাঠানো হলো)

রহিম তার ৫ জন বন্ধুকে referral link পাঠালো।
এই ৫ জন এখন funnel এর TOP এ আছে।

Count = ৫

STEP 2 — Link Clicked (Link এ click করলো)

৫ জনের মধ্যে ৩ জন link এ click করলো।
২ জন ignore করলো।

Count = ৩
Drop = ২ জন ঝরে গেলো

STEP 3 — Signed Up (Account খুললো)

৩ জন click করলো, কিন্তু ২ জন sign up করলো।
১ জন sign up page দেখে চলে গেলো।

Count = ২
Drop = ১ জন ঝরে গেলো

STEP 4 — Activated (App actually use করলো)

২ জন sign up করলো, কিন্তু ১ জন app open করে
কিছু না করেই বন্ধ করলো।
শুধু ১ জন actually app browse করলো।

Count = ১
Drop = ১ জন ঝরে গেলো

STEP 5 — Converted (Order দিলো / Purchase করলো) ✅

সেই ১ জন finally একটা food order দিলো।
এখন সে একজন real customer।

Count = ১
এই মানুষটাই "Converted Referee"

পুরো Funnel একসাথে:

STEP 1 │ Referral Sent     │ ████████████████████ │ ৫ জন   │ 100%
STEP 2 │ Link Clicked      │ ████████████         │ ৩ জন   │  60%
STEP 3 │ Signed Up         │ ████████             │ ২ জন   │  40%
STEP 4 │ Activated         │ ████                 │ ১ জন   │  20%
STEP 5 │ Converted         │ ██                   │ ১ জন   │  20%

৪. "Converted" মানে কী? 💡

এটা অনেক গুরুত্বপূর্ণ প্রশ্ন।

"Converted" মানে — referee এমন একটা কাজ করলো যেটা business এর জন্য valuable।

কিন্তু "valuable কাজ" টা কী — সেটা company to company আলাদা।


বিভিন্ন Business এ Conversion মানে আলাদা:

Business Type Converted মানে
Food Delivery App প্রথম order দেওয়া
E-commerce (Chaldal) প্রথম purchase করা
Ride Sharing (Pathao) প্রথম ride নেওয়া
SaaS Tool Paid plan এ upgrade করা
Bank / FinTech (Bkash) Account activate করে প্রথম transaction করা
Gaming App Level 5 পার করা
News App ৭ দিন continuously পড়া

⚠️ Important — Sign Up মানেই Converted না!

এটা অনেকে confuse হয়।

❌ ভুল ধারণা:
"বন্ধু sign up করলেই referral successful"

✅ সঠিক ধারণা:
"বন্ধু sign up করে actually কিছু একটা করলে তবেই converted"

কেন? কারণ অনেকে sign up করে আর কখনো ফেরে না। Business এর কাছে এই মানুষটার কোনো value নেই।


সারসংক্ষেপ 🎯

বিষয় মূল কথা
Funnel কী অনেকে শুরু করে, কমতে কমতে কিছু মানুষ শেষ পর্যন্ত থাকে
Referral Funnel Sent → Clicked → Signed Up → Activated → Converted
Converted মানে Referee business এর কাছে valuable কিছু একটা করলো
Converted মানে কী তা নির্ভর করে Business এর goal এর উপর
Sign Up = Converted? না! Sign Up আর Conversion আলাদা জিনিস
কেন গুরুত্বপূর্ণ কোন step এ বেশি মানুষ ঝরছে সেটা বের করে fix করা যায়



Powered by Blogger.