Open Graph görselleri, çoğu geliştiricinin göz ardı ettiği sessiz dönüşüm katilleridir. Etkileyici bir OG görseli, sosyal platformlardan gelen tıklama oranlarını iki katına çıkarabilirken, eksik veya genel bir görsel, ikinci bir bakış olmadan geçilir. Laravel AI SDK ile Dinamik Open Graph Görselleri Üretmek, modern bir Laravel geliştiricisinin araç setinde en güçlü tekniklerden biri haline gelmiştir. Bu teknik, AI destekli içerik üretimini gerçek zamanlı görsel render ile birleştirerek, sayfadaki gerçek içeriği yansıtan görseller üretir.
Laravel AI SDK ile Dinamik Open Graph Görselleri Üretmenin Önemi
Laravel AI SDK ile Dinamik Open Graph Görselleri Üretmenin Önemi
Statik OG görselleri, bakım açısından bir kabus olabilir. 200 blog gönderisi yayınlıyorsunuz ve ya her gönderi aynı genel banner’ı paylaşıyor (tıklama oranları için kötü) ya da kimse 200 görseli manuel olarak tasarlamak zorunda kalıyor (sağduyu için kötü). Daha akıllı bir yaklaşım, bunları programatik olarak üretmektir. AI’yi ekleyerek, yalnızca bir kanvas üzerine metin şablonlama yapmakla kalmaz, aynı zamanda gerçek içeriği yansıtan bağlamsal olarak alakalı görseller üretebilirsiniz.
Laravel AI SDK (Vercel’in AI SDK kalıpları üzerine inşa edilmiştir ve PHP ortamlarına uyarlanmıştır) Laravel uygulamanız içinde doğrudan yapılandırılmış, akışkan ve araç kullanan AI çağrıları sunar. Intervention Image gibi görsel üretim kütüphaneleri veya Browsershot gibi headless tarayıcı çözümleri ile birleştirildiğinde, “makale yayınlandı” aşamasından “etkileyici sosyal kart üretildi” aşamasına kadar bir tam hat elde edersiniz; bu işlemde insan yoktur.
Manuel OG Görsellerle İlgili Temel Sorunlar
Manuel OG Görsellerle İlgili Temel Sorunlar
Manuel iş akışları skalada üç nedenle kırılır:
- Tutarlılık — Tasarımcılar ayrılabilir, marka yönergeleri değişebilir, eski görseller güncellenmeyebilir.
- Zamansallık — Bir insan görsel oluşturduğunda, gönderi zaten dizinlenmiş ve paylaşılmış olur.
- Alaka — Bir insan 2.000 kelimeyi okuyup en etkileyici görsel ipucunu birkaç saniyede ayıklayamaz; bir AI modeli bunu yapabilir.
Otomatize edilmiş hat bu üç sorunu da çözer. Bir gönderi yayınlandığında veya güncellendiğinde, kuyruğa alınmış bir iş devreye girer, AI çağrılır ve başlık varyasyonu, vurgulama rengi önerisi veya arka plan konsepti üretilir, ardından nihai görsel render edilir ve S3 veya Cloudflare R2‘ye kaydedilir.
Laravel AI SDK’yı Görsel Oluşturma İçin Ayarlamak
Laravel AI SDK’yı Görsel Oluşturma İçin Ayarlamak
Görsel renderlamaya geçmeden önce, AI hattının sağlam olduğundan emin olun. 2026 yılı itibariyle, Laravel’deki AI modelleriyle çalışmanın önerilen yolu Prism PHP paketi üzerinden gerçekleştirilmesidir. Bu, OpenAI, Anthropic, Gemini ve diğer sağlayıcıları düzenli, zincirlenebilir bir API arkasında saran birinci sınıf Laravel AI SDK’sıdır.
composer require echolabs/prism
php artisan vendor:publish --provider="EchoLabs\Prism\PrismServiceProvider"Sağlayıcınızı config/prism.php dosyasında yapılandırın:
'default' => env('PRISM_PROVIDER', 'openai'),
'providers' => [
'openai' => [
'api_key' => env('OPENAI_API_KEY'),
'model' => 'gpt-4o',
],
],
AI ile OG Görsel Metnini Üretmek
AI ile OG Görsel Metnini Üretmek
İlk AI çağrısı, bir başlık, kısa bir alt başlık ve isteğe bağlı olarak makalenin kategorisine veya ruh haline dayalı bir renk paleti önerisi üretir.
use EchoLabs\Prism\Facades\Prism;
use EchoLabs\Prism\Enums\Provider;
class GenerateOgImageData
{
public function handle(Post $post): array
{
$response = Prism::text()
->using(Provider::OpenAI, 'gpt-4o')
->withSystemPrompt('You are a social media copywriter. Return JSON only.')
->withPrompt("
Article title: {$post->title}
Article excerpt: {$post->excerpt}
Generate a JSON object with:
- headline: A punchy 6-8 word headline for an Open Graph image
- subheadline: A 10-12 word supporting line
- accent_color: A hex color that fits the article's tone
")
->generate();
return json_decode($response->text, true);
}
}Böylece, görsel renderlayıcıya doğrudan aktarılan yapılandırılmış veriler elde edersiniz. 2026’daki gpt-4o ile yapılandırılmış çıktılar güvenilir, ancak sistem isteminde net olmak edge case’leri azaltır. Modelin her şeyi kendiliğinden çözmesini beklemeyin.
Görsel Renderlayıcıyı Oluşturmak
Görsel Renderlayıcıyı Oluşturmak
Aİ ile üretilen içerikle, renderlama katmanı devreye girer. İhtiyaçlarınıza göre iki sağlam yaklaşım vardır:
Seçenek A: Intervention Image (Hızlı, Sunucu Tarafında)
Seçenek A: Intervention Image (Hızlı, Sunucu Tarafında)
Intervention Image v3, PHP görsel manipülasyonu için standarttır. Hızlıdır, dış bağımlılıkları yoktur ve şablon tabanlı OG görselleri için harika çalışır.
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
class OgImageRenderer
{
public function render(array $ogData, string $templatePath): string
{
$manager = new ImageManager(new Driver());
$image = $manager->read($templatePath); // 1200x630 temel şablon
// Vurgu çubuğunu çiz
$image->drawRectangle(0, 0, 8, 630, function ($draw) use ($ogData) {
$draw->background($ogData['accent_color']);
});
// Başlık metnini ekle
$image->text($ogData['headline'], 80, 220, function ($font) {
$font->file(storage_path('fonts/Inter-Bold.ttf'));
$font->size(52);
$font->color('#FFFFFF');
$font->wrap(1040);
});
// Alt başlığı ekle
$image->text($ogData['subheadline'], 80, 360, function ($font) {
$font->file(storage_path('fonts/Inter-Regular.ttf'));
$font->size(28);
$font->color('#CBD5E1');
$font->wrap(1040);
});
$filename = 'og/' . Str::uuid() . '.png';
$image->save(storage_path('app/public/' . $filename));
return $filename;
}
}
Seçenek B: Browsershot (Piksellerin Mükemmeliyeti, HTML Tabanlı)
Seçenek B: Browsershot (Piksellerin Mükemmeliyeti, HTML Tabanlı)
Daha fazla tasarım esnekliği için, Browsershot (Spatie tarafından) Blade şablonunu bir ekran görüntüsü olarak renderlar. Bu, tasarımcılarınızın HTML/CSS ile çalışmakta daha iyi olduğu durumlarda tercih edilmelidir.
use Spatie\Browsershot\Browsershot;
$html = view('og-templates.article', ['data' => $ogData])->render();
Browsershot::html($html)
->windowSize(1200, 630)
->deviceScaleFactor(2) // Retina çıktısı
->noSandbox()
->save(storage_path('app/public/' . $filename));Blade şablonunu kullanma yaklaşımı, ekipler için daha sürdürülebilir bir tutumdur — frontend geliştiriciler, OG şablon tasarımını PHP görsel kodunu değiştirmeden yönetebilirler. Bu, tasarım değişiklikleriyle ilgili çok sayıda ileri geri iletişimi önleyerek önemli ölçüde zaman kazandırır.
Hepsini Bir Laravel Görevinde Bağlamak
Hepsini Bir Laravel Görevinde Bağlamak
Tam hat, PostPublished olayında tetiklenen bir sıralı görevde yer alır.
class GeneratePostOgImage implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct(public Post $post) {}
public function handle(
GenerateOgImageData $aiGenerator,
OgImageRenderer $renderer,
StorageService $storage
): void {
// 1. AI tarafından üretilen içeriği al
$ogData = $aiGenerator->handle($this->post);
// 2. Görseli renderla
$localPath = $renderer->render($ogData, resource_path('og-templates/base.png'));
// 3. R2/S3'e yükle
$cdnUrl = $storage->uploadToCdn($localPath, "og/{$this->post->slug}.png");
// 4. Gönderi kaydını güncelle
$this->post->update(['og_image_url' => $cdnUrl]);
// 5. Yerel dosyayı temizle
unlink(storage_path('app/public/' . $localPath));
}
}Olay dinleyicisinden bunu iletin:
PostPublished::listen(function (PostPublished $event) {
GeneratePostOgImage::dispatch($event->post)->onQueue('media');
});
Önbellekleme ve Yeniden Üretme Stratejisi
Önbellekleme ve Yeniden Üretme Stratejisi
Her sayfa yüklemesinde OG görsellerini yeniden üretmeyin — bu pahalı ve gereksizdir. Yayınlandığında bir kez üretin, önemli içerik düzenlemeleriyle yeniden üretin. og_image_url değerini doğrudan gönderi modelinde saklayın ve CDN’nizden sunun.
Blade düzeninizdeki meta etiketler:
Laravel AI SDK ile Dinamik Open Graph Görsellerini Üretme
Laravel AI SDK ile Dinamik Open Graph Görsellerini Üretme
Bunu üretimde çalıştırmak için, öğreticilerde görülmeyen birkaç yapısal kural gereklidir:
Rate limiting — AI çağrılarınızı Laravel’in RateLimiter fasadına sarın. Eğer seri bir şekilde 50 gönderi yayınlarsanız, OpenAI kotanızı zorlayabilirsiniz. Bu durum, içerik hattınızı başlatma gününde büyük sorunlar yaratabilir.
Yedekleme yönetimi — AI çağrıları başarısız olabilir. AI yanıtı hatalı veya zaman aşımına uğrarsa, ham gönderi başlığını kullanan deterministik bir yedek renderlayıcıya sahip olun. Bu, opsiyonel değil; bunu her üçüncü taraf bağımlılığı gibi değerlendirin.
Kuyruk izolasyonu — OG görsel üretimini sınırlı eş zamanlılık ile özel bir kuyruk işçisi üzerinde çalıştırın. Görsel renderlaması CPU ve bellek yoğun bir işlemdir; kritik uygulama işlerle rekabet etmesini istemezsiniz.
Maliyet takibi — Üretim başına token kullanımını kaydedin. Ölçeklendiğinde, AI maliyetleri hızla artabilir. Tipik OG metin üretimi gpt-4o ile görüntü başına yaklaşık 200-400 token alır — bireysel olarak ucuzdur fakat büyük hacimlerde izlenmeye değer. Sürpriz faturaların iyi bir projeyi mahveden şeyler olmasına izin vermeyin.
AI destekli dinamik OG görselleri ile statik şablonlar arasındaki kalite farkı sosyal analitiklerinize hemen yansır. Bağlamsal olarak doğru, AI tarafından üretilen OG görseller, genel markalı banner’lara göre tıklama oranında sürekli olarak daha iyi performans gösterir ve bu hat, önemli bir içerik hacminde hızla kendini amorti eder.
Laravel AI SDK ile Dinamik Open Graph Görselleri Üretmek beklemeniz gereken bir şey değil – araçlar olgun, entegrasyon basit ve iş etkisi şimdiden ölçülebilir. Tek bir içerik türü ile başlayın, analitiklerinizi kontrol edin ve ardından bunu tüm içerik kataloğunuza yaygınlaştırın.
Bu makale, qcode.in adresinde ilk olarak yayınlanmıştır.
Kaynak: Orijinal Makale
- Laravel AI SDK ile Dinamik Open Graph Görselleri Üretmenin Önemi
- Laravel AI SDK’yı Görsel Oluşturma İçin Ayarlamak
- Görsel Renderlayıcıyı Oluşturmak
- Seçenek A: Intervention Image (Hızlı, Sunucu Tarafında)
- Seçenek B: Browsershot (Piksellerin Mükemmeliyeti, HTML Tabanlı)
- Hepsini Bir Laravel Görevinde Bağlamak
- Laravel AI SDK ile Dinamik Open Graph Görsellerini Üretme


