הטמעת קהלים דומים על סמך נתוני אתר

תנועה קרה מביאה לעיתים קרובות מבקרים יקרים ואקראיים, שאינם קהל היעד שלכם. אנחנו בונים קהלים דומים (look-alike audiences) על בסיס נתוני האתר שלכם כדי למצוא לקוחות חדשים הדומים לרוכשים הטובים ביותר שלכם. הצוות שלנו מספק את הפרויקט במפתח מלא—מניתוח נתונים ועד הגדרת טargeting—ומבטיח ביצועים אמינים ותמיכה מתמשכת.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הטמעת קהלים דומים על סמך נתוני אתר
בינוני
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

נניח שכבר אספת בסיס דוא"ל CRM של לקוחות שביצעו רכישה. תנועה קרה נותנת CPA מעל $14–20, ואתה צריך להתרחב בעלות נמוכה יותר. הפתרון הוא קהלים דומים (lookalike) שנבנים על פלח של הקונים הטובים ביותר. אבל רבים מעלים רשימות "גולמיות"—כל ההרשמות האקראיות. האלגוריתם בונה קהל דומה, אבל הוא מניב CPA לא נמוך מהמקורי. הסוד טמון בפלח זרע איכותי: רק אלה שהביאו הכנסה אמיתית. להלן תהליך מוכח עם מספרים אמיתיים וקוד מוכן.

פלחים לקהלי זרע: אילו עובדים הכי טוב

איכות הקהל המתקבל תלויה ישירות בנתוני הזרע. ככל שנתאר בצורה מדויקת יותר את "הפרופיל" של משתמש שהמיר, כך הדיוק יהיה גבוה יותר. הנה פלחים אופייניים:

פלח גודל מינימלי איכות
קונים ב-90 הימים האחרונים 500–1000 גבוהה מאוד
משתמשים עם LTV > $45–65 500 גבוהה
השלימו ניסיון → תוכנית בתשלום 300 גבוהה
צפו בדפים מרכזיים 1000+ בינונית
כל המשתמשים הרשומים 5000+ נמוכה

פלח של 500 קונים נותן דיוק גבוה פי 3 מרשימה של 5000 הרשמות אקראיות. לכן, אנחנו תמיד מתחילים בניתוח CRM ובחירת הליבה—משתמשים עם ה-LTV הגבוה ביותר. בנוסף, אנחנו מעשירים נתונים דרך CRM ואנליטיקת אירועים כדי להחריג אנשי קשר לא פעילים.

בפרויקט מסחר אלקטרוני אחד עם מחזור של $450k–650k, בודדנו פלח של קונים עם LTV > $45–65 (800 רשומות בסך הכל). לאחר יצירת קהל דומה, ה-CPA ירד מ-$11–16 ל-$7–10, וההמרה עלתה ב-40%. המפתח היה פלח זרע איכותי.

כדי לבחור את הפלטפורמה, השווה את הפרמטרים העיקריים של Meta ו-VK:

פרמטר Meta (פייסבוק/אינסטגרם) VK Ads
גודל זרע מינימלי 200 רשומות 500 רשומות
פורמט נתונים SHA-256 בלבד פתוח או SHA-256 עם קידומת
גודל קהל דומה 1%–10% מהמדינה עד 1,000,000
עדכון אוטומטי דרך API דרך ייבוא

למה חשוב לבצע hash לאנשי קשר לקהל דומה?

לפני שליחה למערכות פרסום, יש לנרמל דוא"ל וטלפונים ולבצע להם hash עם SHA-256. אחרת, המערכת תדחה את הנתונים או תפחית את איכות ההתאמה. ב-Laravel, זה נעשה עם מחלקה אחת—ראה דוגמה למטה.

למה דווקא SHA-256?זוהי פונקציית hash בלתי הפיכה המומלצת על ידי פלטפורמות פרסום. היא הופכת נתונים למחרוזת באורך קבוע שלא ניתן להפוך. ניתן לקרוא עוד על SHA-256 ב-ויקיפדיה.
class AudienceExporter {
    public function exportHighValueCustomers(): array {
        return User::query()
            ->join('orders', 'orders.user_id', '=', 'users.id')
            ->where('orders.status', 'completed')
            ->where('orders.created_at', '>=', now()->subDays(90))
            ->groupBy('users.id', 'users.email', 'users.phone')
            ->havingRaw('SUM(orders.total) >= ?', [5000])
            ->get(['users.email', 'users.phone'])
            ->map(fn($user) => [
                'email' => hash('sha256', strtolower(trim($user->email))),
                'phone' => $user->phone ? hash('sha256', $this->normalizePhone($user->phone)) : null,
            ])
            ->toArray();
    }

    private function normalizePhone(string $phone): string {
        $digits = preg_replace('/\D/', '', $phone);
        if (strlen($digits) === 10) $digits = '7' . $digits;
        return '+' . $digits;
    }

    public function exportToCsv(array $data, string $filename): string {
        $path = storage_path("app/audiences/{$filename}.csv");
        $fp = fopen($path, 'w');
        fputcsv($fp, ['email', 'phone']);
        foreach ($data as $row) {
            fputcsv($fp, [$row['email'], $row['phone'] ?? '']);
        }
        fclose($fp);
        return $path;
    }
}

איך להעלות קהל ל-Meta (פייסבוק/אינסטגרם)?

Meta מספקת את Custom Audiences API. כדי להעלות, בצע את השלבים הבאים:

  1. צור קהל מותאם אישית דרך API.
  2. העבר דוא"לים עם hash בקבוצות של עד 10,000 רשומות.
  3. בנה קהל דומה על בסיס הקהל הזה.

רצף: צור קהל מותאם אישית -> העלה hashes -> בנה קהל דומה. חשוב לציין את הסכמה class AudienceExporter { public function exportHighValueCustomers(): array { return User::query() ->join('orders', 'orders.user_id', '=', 'users.id') ->where('orders.status', 'completed') ->where('orders.created_at', '>=', now()->subDays(90)) ->groupBy('users.id', 'users.email', 'users.phone') ->havingRaw('SUM(orders.total) >= ?', [5000]) ->get(['users.email', 'users.phone']) ->map(fn($user) => [ 'email' => hash('sha256', strtolower(trim($user->email))), 'phone' => $user->phone ? hash('sha256', $this->normalizePhone($user->phone)) : null, ]) ->toArray(); } private function normalizePhone(string $phone): string { $digits = preg_replace('/\D/', '', $phone); if (strlen($digits) === 10) $digits = '7' . $digits; return '+' . $digits; } public function exportToCsv(array $data, string $filename): string { $path = storage_path("app/audiences/{$filename}.csv"); $fp = fopen($path, 'w'); fputcsv($fp, ['email', 'phone']); foreach ($data as $row) { fputcsv($fp, [$row['email'], $row['phone'] ?? '']); } fclose($fp); return $path; } } . הקוד למטה עושה זאת אוטומטית.

class MetaAudienceService {
    private const API_VERSION = 'v19.0';
    private string $accessToken;
    private string $adAccountId;

    public function createCustomAudience(string $name, string $description): string {
        $response = Http::post(
            "https://graph.facebook.com/{$this->API_VERSION}/act_{$this->adAccountId}/customaudiences",
            [
                'name' => $name,
                'subtype' => 'CUSTOM',
                'description' => $description,
                'customer_file_source' => 'USER_PROVIDED_ONLY',
                'access_token' => $this->accessToken,
            ]
        );

        return $response->json('id');
    }

    public function uploadUsers(string $audienceId, array $hashedEmails): void {
        foreach (array_chunk($hashedEmails, 10000) as $chunk) {
            $payload = [
                'schema' => ['EMAIL_SHA256'],
                'data' => array_map(fn($email) => [$email], $chunk),
            ];

            Http::post(
                "https://graph.facebook.com/{$this->API_VERSION}/{$audienceId}/users",
                [
                    'payload' => json_encode($payload),
                    'access_token' => $this->accessToken,
                ]
            );
        }
    }

    public function createLookalike(string $sourceAudienceId, string $country, float $ratio = 0.01): string {
        $response = Http::post(
            "https://graph.facebook.com/{$this->API_VERSION}/act_{$this->adAccountId}/customaudiences",
            [
                'name' => "Lookalike {$country} {$ratio}",
                'subtype' => 'LOOKALIKE',
                'origin_audience_id' => $sourceAudienceId,
                'lookalike_spec' => json_encode([
                    'type' => 'similarity',
                    'country' => $country,
                    'ratio' => $ratio,
                ]),
                'access_token' => $this->accessToken,
            ]
        );

        return $response->json('id');
    }
}

העלאת קהל ל-VK Ads

VK מקבל דוא"לים גם בצורה פתוחה וגם עם hash (עם קידומת). אלגוריתם: צור קבוצת retargeting -> ייבא אנשי קשר. שים לב: לחשבונות עסקיים יש מגבלות משלהם, אבל התהליך הבסיסי זהה.

class VkAudienceService {
    public function uploadToRetargeting(string $name, array $hashedEmails): int
    {
        $content = implode("\n", $hashedEmails);
        $response = Http::withToken($this->token)
            ->post('https://api.vk.com/method/ads.createTargetGroup', [
                'account_id' => $this->accountId,
                'name' => $name,
                'v' => '5.199',
            ]);
        $groupId = $response->json('response.id');
        Http::withToken($this->token)
            ->post('https://api.vk.com/method/ads.importTargetContacts', [
                'account_id' => $this->accountId,
                'target_group_id' => $groupId,
                'contacts' => $content,
                'v' => '5.199',
            ]);
        return $groupId;
    }
}

אוטומציה של עדכוני קהל דומה

קהלים דומים מתיישנים ככל שמופיעות המרות חדשות. ייצוא ידני כל שבוע אינו הכרחי. הגדרנו עדכונים אוטומטיים דרך EMAIL_SHA256—זה עובד כמו שעון.

class UpdateLookalikeAudiences implements ShouldQueue {
    public function handle(): void {
        $exporter = app(AudienceExporter::class);
        $data = $exporter->exportHighValueCustomers();
        $emails = array_column($data, 'email');

        app(MetaAudienceService::class)->uploadUsers(
            config('ads.meta.buyer_audience_id'),
            $emails
        );

        Log::info("Lookalike audience updated", ['count' => count($emails)]);
    }
}

אלגוריתם הגדרה שלב אחר שלב

  1. נתח נתוני אתר קיימים (CRM, טפסים, אירועים)—בודד את פלח הזרע.
  2. פתח מודול ייצוא עם hash ואימות.
  3. שלב עם פלטפורמות פרסום נבחרות (Meta, VK).
  4. הגדר עדכונים אוטומטיים דרך cron או מתזמן.
  5. ניטור—תעד שגיאות וטריות הקהל.

מה כלול בעבודה

  • ניתוח נתונים ובחירת פלח הזרע האופטימלי.
  • פיתוח מייצא עם hash SHA-256 ותמיכה בפורמטים של Meta ו-VK.
  • אינטגרציה עם APIs של פלטפורמות פרסום (אחת או כמה).
  • הגדרת עדכונים אוטומטיים שבועיים.
  • תיעוד וייעוץ לאחר השקה.

לוח זמנים ואיך להתחיל

מערכת ייצוא קהל עם hash ועדכונים אוטומטיים לפלטפורמה אחת אורכת 4–6 ימי עבודה. עבור מספר פלטפורמות, לוח הזמנים מתארך ל-8–10 ימים. אנחנו עובדים עם קהלים דומים למעלה מ-5 שנים והשלמנו 30+ פרויקטים מוצלחים—זה מבטיח אמינות ואיכות.

הזמן הגדרת מערכת ייצוא—נכין את פלח הזרע, נגדיר אינטגרציה ונגדיר עדכונים אוטומטיים. צור קשר לייעוץ.