Розробка реферальної програми крипто-казино

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка реферальної програми крипто-казино
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

Розробка реферальної програми крипто-казино

Реферальна програма перетворює існуючих гравців на канал привернення нових. У крипто-казино це особливо ефективно: крипто-спільнота активна в соціальних мережах та месенджерах, а довіра рекомендаціям від реальних користувачів вищої реклами.

Моделі реферальних програм

CPA (Cost per Acquisition) — фіксована виплата за кожного приведеного гравця, який зробив депозит. Просто для користувача, зрозумілий результат.

Revenue Share — % від втрат (GGR) приведених гравців. Пасивний дохід, стимулює приводити якісних активних гравців.

Hybrid — комбінація CPA + Rev Share. CPA виплачується негайно, rev share — постійно.

Tier-based — якщо приведений гравець сам когось приводить, верхній рівень теж отримує %.

Технічна реалізація

class ReferralService:
    async def generate_referral_code(self, user_id: str) -> str:
        """Генеруємо унікальний реферальний код"""
        # Короткий код на основі user_id + випадкового суфікса
        code = base62_encode(int(user_id.replace('-', ''), 16) % 1_000_000_000)
        code = code[:8].upper()

        # Перевіряємо унікальність
        while await self.ref_repo.code_exists(code):
            code = generate_random_code(8)

        await self.ref_repo.save_code(user_id, code)
        return code

    async def register_referral(self, new_user_id: str, referral_code: str):
        """Прив'язуємо нового користувача до рефереру"""
        referrer = await self.ref_repo.get_by_code(referral_code)
        if not referrer:
            return  # Невалідний код, мовчки ігноруємо

        if referrer.user_id == new_user_id:
            return  # Не можна рефернцювати самого себе

        # Перевіряємо self-referral через device fingerprint / IP
        if await self.is_same_user_likely(referrer.user_id, new_user_id):
            await self.flag_suspicious(referrer.user_id, new_user_id, "POSSIBLE_SELF_REFERRAL")
            return

        await self.ref_repo.save_referral(
            referrer_id=referrer.user_id,
            referred_id=new_user_id,
            code_used=referral_code,
        )

    async def on_qualifying_deposit(self, user_id: str, deposit_amount: Decimal):
        """Викликається коли реферал робить перший депозит"""
        referral = await self.ref_repo.get_referral(referred_id=user_id)
        if not referral or referral.cpa_paid:
            return

        program = await self.get_active_program()

        # Перевіряємо мінімальний депозит для CPA
        if deposit_amount < program.min_deposit_for_cpa:
            return

        # Нараховуємо CPA
        await self.pay_cpa(
            referrer_id=referral.referrer_id,
            referred_id=user_id,
            amount=program.cpa_amount,
            deposit_amount=deposit_amount,
        )

        await self.ref_repo.mark_cpa_paid(referral.id)

    async def calculate_monthly_rev_share(self):
        """Щомісячний розрахунок revenue share"""
        program = await self.get_active_program()
        month_start = get_last_month_start()
        month_end = get_last_month_end()

        referrers = await self.ref_repo.get_active_referrers()

        for referrer_id in referrers:
            referred_users = await self.ref_repo.get_referred_users(referrer_id)

            total_ggr = Decimal(0)
            for referred_id in referred_users:
                user_ggr = await self.bet_repo.get_ggr(
                    user_id=referred_id,
                    from_time=month_start,
                    to_time=month_end,
                )
                total_ggr += user_ggr

            if total_ggr <= 0:
                continue  # Нема прибутку казино від цих гравців

            rev_share = total_ggr * Decimal(str(program.rev_share_pct / 100))

            # Застосовуємо negative carryover (спірна точка в індустрії)
            if program.negative_carryover:
                # Якщо в попередньому місяці був негативний GGR — переносимо збиток
                prev_balance = await self.revshare_repo.get_balance(referrer_id)
                if prev_balance < 0:
                    rev_share = rev_share + prev_balance
                    if rev_share < 0:
                        await self.revshare_repo.update_balance(referrer_id, rev_share)
                        continue

            if rev_share > 0:
                await self.pay_rev_share(referrer_id, rev_share, month_start)

Афіліет-панель

Рефереру потрібен дашборд:

Мої рефералі: 47 гравців
Конверсія: 23% (з 204 кліків → 47 депозитів)
Заробив всього: 0.85 BTC

Цей місяць:
  Нові гравці: 8
  CPA: 0.04 BTC
  Revenue Share: 0.023 BTC
  Всього: 0.063 BTC

Топ гравці (анонімно):
  Гравець #A1: 0.008 BTC GGR
  Гравець #B3: 0.006 BTC GGR
  ...

Деталі активності конкретних гравців приховані (конфіденційність), але афіліет бачить агреговані дані.

Fraud Prevention

Referral fraud — поширена проблема: створення фіктивних аккаунтів для CPA виплат.

  • Device fingerprint — один пристрій, кілька аккаунтів
  • IP restrictions — ліміт нових аккаунтів з однієї IP
  • Wagering threshold — CPA виплачується не за депозит, а за досягнення WR
  • Delayed payouts — виплата через 30 днів після депозиту
  • Manual review — аномально висока конверсія (> 50%) потребує перевірки