Google's weekly SEO briefing maps what AI crawlers may and may not do with your pages: robots.txt governs crawling only, so the Google-Extended token remains the sole lever for Gemini grounding and AI training use. Also covered: serving 503s during PHP patching, raw versus encoded brackets, and JPEG XL being ignored by Google Images. https://www.searchenginejournal.com/seo-pulse-google-explains-503s-robots-txt-limits-bracket-urls/594085/ #Marketing #Strategy #SEO
Search
131 results for “ls”
-
Pillow 13.0.0 Patches Critical Remote Code Execution Flaws in Python Image Processing
Pillow version 13.0.0 addresses over 30 security vulnerabilities, including critical remote code execution flaws in EPS, JPEG, and TIFF processing that allow attackers to take over servers via crafted image uploads.
**If your Python applications or servers process images (most do, through the Pillow library), update Pillow to version 13.0.0 ASAP and rebuild all your containers and virtual environments. Note that this version needs Python 3.11 or newer. Until everything is patched, remove Ghostscript from any server that handles uploaded images, and treat all image uploads from outsiders as potentially dangerous.**
#cybersecurity #infosec #advisory #vulnerability
https://beyondmachines.net/event_details/pillow-13-0-0-patches-critical-remote-code-execution-flaws-in-python-image-processing-5-m-i-2-0/gD2P6Ple2L -
SIGUE ⬇️
El Grupo Bilderberg celebra reuniones privadas en las que participan personalidades de la política, la economía, las finanzas, la empresa y otros ámbitos.
El carácter reservado de sus debates ha alimentado sospechas sobre su influencia.
La privacidad de una reunión puede ser objeto de crítica, pero no demuestra por sí sola que sus asistentes pertenezcan a los Illuminati.El Bohemian Grove es un recinto privado de California donde se reúne el Bohemian Club, una asociación fundada en San Francisco en 1872.
Entre sus asistentes ha habido empresarios, políticos y otras figuras destacadas.
Durante sus encuentros se celebran actuaciones y ceremonias simbólicas.Una de las más conocidas es la *Cremation of Care*, en la que se quema una efigie que representa las preocupaciones cotidianas.
La ceremonia está documentada desde finales del siglo XIX y tiene una puesta en escena teatral.
No hay pruebas fiables de que sea un sacrificio humano, pese a las acusaciones que circulan por internet.Sun Valley, en Idaho, es conocido por encuentros de empresarios, inversores y responsables de grandes compañías tecnológicas y de comunicación.
Allí pueden producirse conversaciones y contactos relevantes para los negocios, pero tampoco hay pruebas de que estas reuniones sean actividades de los Illuminati.Conviene no confundir el poder económico, las relaciones entre élites y la falta de transparencia con una conspiración única que controle todos los acontecimientos mundiales. Son cuestiones diferentes y requieren pruebas diferentes.
Aquí hay un caso que merece atención porque parte de hechos documentados.
Durante la Guerra Fría, la CIA desarrolló el programa MK-Ultra, iniciado en 1953, para investigar drogas y técnicas que pudieran alterar el comportamiento humano.
Se realizaron experimentos con sustancias como el LSD, además de investigaciones sobre hipnosis y otros métodos de modificación de la conducta.Algunas personas fueron sometidas a pruebas sin conocer su finalidad o sin haber dado un consentimiento válido.
Los experimentos suscitaron graves problemas éticos.
Parte de la documentación fue destruida, aunque las investigaciones oficiales posteriores permitieron reconstruir una parte del programa.El hecho de que MK-Ultra existiera demuestra que organismos estatales llevaron a cabo investigaciones secretas y abusivas.
No demuestra, sin embargo, que los Illuminati dirigieran el programa ni que exista un sistema probado de creación de artistas mediante control mental, como afirman algunas teorías sobre los llamados «Monarcas».La historia real ya ofrece suficientes motivos para investigar sin necesidad de añadir conexiones que no están demostradas.
Otra teoría muy difundida afirma que personas poderosas secuestran niños para extraerles adrenocromo y utilizarlo como una sustancia rejuvenecedora.
El adrenocromo es un compuesto químico real que se forma por la oxidación de la adrenalina.
Eso no significa que posea las propiedades mágicas que le atribuyen algunas teorías conspirativas.
No hay pruebas fiables de que las élites lo extraigan de niños ni de que sea necesario cometer crímenes para obtenerlo.Las historias sobre artistas que supuestamente deben sacrificar a familiares o seres queridos para alcanzar el éxito pertenecen también al terreno de las acusaciones sin pruebas verificables.
Suelen apoyarse en letras de canciones, imágenes de videoclips, gestos o interpretaciones de acontecimientos personales.Una acusación grave necesita pruebas graves.
Una imagen ambigua no basta para demostrar un delito ni una afiliación secreta.El Aeropuerto Internacional de Denver, inaugurado en 1995, se ha convertido en uno de los lugares favoritos de las teorías conspirativas.
Sus murales, la escultura de un caballo azul de ojos rojos llamada *Blue Mustang* y ciertas inscripciones han servido para construir relatos sobre túneles secretos, sociedades ocultas y planes de dominación mundial.La escultura del caballo es una obra artística real y sus ojos rojos forman parte de su diseño.
Los murales también existen, pero su interpretación como mensajes de una conspiración mundial no está respaldada por pruebas concluyentes.El aeropuerto ha tenido problemas y ampliaciones propias de una infraestructura de gran tamaño, además de elementos artísticos que provocan reacciones muy distintas.
Las teorías han convertido esos detalles en una narración mucho más espectacular que los hechos documentados.No hay pruebas fiables de que la orden fundada por Adam Weishaupt continúe funcionando hoy como una organización mundial que controle gobiernos, bancos, medios de comunicación y artistas.
Sí han existido y siguen existiendo sociedades secretas, clubes privados, redes de influencia y grupos capaces de ejercer un poder considerable.
Algunos de sus miembros mantienen relaciones políticas o económicas que merecen ser examinadas con rigor.
Pero eso no permite atribuirles automáticamente una conexión con los Illuminati del siglo XVIII.La historia de aquella orden terminó convirtiéndose en algo mucho mayor que la propia organización.
La persecución, la publicación de documentos internos, las acusaciones de sus adversarios y el temor a las revoluciones ayudaron a crear un relato que sobrevivió a sus protagonistas.Los Illuminati históricos fueron una sociedad de la Ilustración con ambiciones políticas e intelectuales, una estructura jerárquica y una vida relativamente breve.
El mito moderno, en cambio, se ha adaptado a cada época: primero sirvió para explicar revoluciones, después para alimentar relatos sobre gobiernos secretos y hoy aparece en vídeos, canciones y redes sociales.Lo curioso es que no hace falta convertirlos en dueños del mundo para que su historia tenga interés.
La verdadera pregunta es cómo una organización que dejó de existir hace siglos consiguió seguir presente en nuestra imaginación.▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣
🎬𝐴́𝑛𝑔𝑒𝑙𝑒𝑠 𝑦 𝑑𝑒𝑚𝑜𝑛𝑖𝑜𝑠 (𝟸𝟶𝟶𝟿)
🔸𝐷𝑖𝑟𝑒𝑐𝑡𝑜𝑟: 𝑅𝑜𝑛 𝐻𝑜𝑤𝑎𝑟𝑑.
🔸𝐴𝑐𝑡𝑜𝑟𝑒𝑠: 𝑇𝑜𝑚 𝐻𝑎𝑛𝑘𝑠, 𝐸𝑤𝑎𝑛 𝑀𝑐𝐺𝑟𝑒𝑔𝑜𝑟, 𝐴𝑦𝑒𝑙𝑒𝑡 𝑍𝑢𝑟𝑒𝑟, 𝑆𝑡𝑒𝑙𝑙𝑎𝑛 𝑆𝑘𝑎𝑟𝑠𝑔å𝑟𝑑 𝑦 𝐴𝑟𝑚𝑖𝑛 𝑀𝑢𝑒𝑙𝑙𝑒𝑟-𝑆𝑡𝑎𝘩𝑙. 🔸𝐴𝑟𝑔𝑢𝑚𝑒𝑛𝑡𝑜: 𝑅𝑜𝑏𝑒𝑟𝑡 𝐿𝑎𝑛𝑔𝑑𝑜𝑛, 𝑢𝑛 𝑝𝑟𝑜𝑓𝑒𝑠𝑜𝑟 𝑑𝑒 𝑠𝑖𝑚𝑏𝑜𝑙𝑜𝑔𝑖́𝑎, 𝑣𝑖𝑎𝑗𝑎 𝑎𝑙 𝑉𝑎𝑡𝑖𝑐𝑎𝑛𝑜 𝑐𝑢𝑎𝑛𝑑𝑜 𝑣𝑎𝑟𝑖𝑜𝑠 𝑐𝑎𝑟𝑑𝑒𝑛𝑎𝑙𝑒𝑠 𝑠𝑜𝑛 𝑠𝑒𝑐𝑢𝑒𝑠𝑡𝑟𝑎𝑑𝑜𝑠 𝑦 𝑎𝑝𝑎𝑟𝑒𝑐𝑒 𝑢𝑛𝑎 𝑎𝑚𝑒𝑛𝑎𝑧𝑎 𝑐𝑜𝑛𝑡𝑟𝑎 𝑙𝑎 𝐼𝑔𝑙𝑒𝑠𝑖𝑎 𝑑𝑢𝑟𝑎𝑛𝑡𝑒 𝑙𝑎 𝑒𝑙𝑒𝑐𝑐𝑖𝑜́𝑛 𝑑𝑒 𝑢𝑛 𝑛𝑢𝑒𝑣𝑜 𝑝𝑎𝑝𝑎.
𝐿𝑎 𝑖𝑛𝑣𝑒𝑠𝑡𝑖𝑔𝑎𝑐𝑖𝑜́𝑛 𝑙𝑒 𝑙𝑙𝑒𝑣𝑎 𝑎 𝑠𝑒𝑔𝑢𝑖𝑟 𝑝𝑖𝑠𝑡𝑎𝑠 𝑟𝑒𝑙𝑎𝑐𝑖𝑜𝑛𝑎𝑑𝑎𝑠 𝑐𝑜𝑛 𝑙𝑜𝑠 𝐼𝑙𝑙𝑢𝑚𝑖𝑛𝑎𝑡𝑖, 𝑢𝑛𝑎 𝑠𝑢𝑝𝑢𝑒𝑠𝑡𝑎 𝑠𝑜𝑐𝑖𝑒𝑑𝑎𝑑 𝑠𝑒𝑐𝑟𝑒𝑡𝑎 𝑒𝑛𝑓𝑟𝑒𝑛𝑡𝑎𝑑𝑎 𝘩𝑖𝑠𝑡𝑜́𝑟𝑖𝑐𝑎𝑚𝑒𝑛𝑡𝑒 𝑎𝑙 𝑝𝑜𝑑𝑒𝑟 𝑒𝑐𝑙𝑒𝑠𝑖𝑎́𝑠𝑡𝑖𝑐𝑜.
𝐶𝑜𝑛 𝑙𝑎 𝑎𝑦𝑢𝑑𝑎 𝑑𝑒 𝑢𝑛𝑎 𝑐𝑖𝑒𝑛𝑡𝑖́𝑓𝑖𝑐𝑎, 𝑖𝑛𝑡𝑒𝑛𝑡𝑎𝑟𝑎́ 𝑑𝑒𝑠𝑐𝑢𝑏𝑟𝑖𝑟 𝑞𝑢𝑖𝑒́𝑛 𝑒𝑠𝑡𝑎́ 𝑑𝑒𝑡𝑟𝑎́𝑠 𝑑𝑒 𝑙𝑎 𝑐𝑜𝑛𝑠𝑝𝑖𝑟𝑎𝑐𝑖𝑜́𝑛 𝑎𝑛𝑡𝑒𝑠 𝑑𝑒 𝑞𝑢𝑒 𝑠𝑒𝑎 𝑑𝑒𝑚𝑎𝑠𝑖𝑎𝑑𝑜 𝑡𝑎𝑟𝑑𝑒.
𝐸𝑠 𝑢𝑛𝑎 𝑝𝑒𝑙𝑖́𝑐𝑢𝑙𝑎 𝑑𝑒 𝑓𝑖𝑐𝑐𝑖𝑜́𝑛 𝑏𝑎𝑠𝑎𝑑𝑎 𝑒𝑛 𝑙𝑎 𝑛𝑜𝑣𝑒𝑙𝑎 𝑑𝑒 𝐷𝑎𝑛 𝐵𝑟𝑜𝑤𝑛.https://www.youtube.com/watch?v=967TBNZQWnU ➡️𝑡𝑟𝑎𝑖𝑙𝑒𝑟
#illuminati #historia #sociedadessecretas #adamweishaupt #ilustración #masonería #conspiraciones #misterios #guerrafría #mkultra #bohemiangrove #grupobilderberg #curiosidadeshistóricas #historiareal #ecosdelpasado
-
PHP2Shell: What Is Easy and What Is Hard to Exploit
PHP2Shell (CVE-2026-109618 and CVE-2026-109619, CVSS 9.2) is a pair of pre-authentication RCE flaws in PHP's request parser, reachable through any PHP endpoint on default configs (session upload progress and file uploads). Crashing a worker is trivial but reliable code execution needs per-build memory offsets. The problem is that one calibrated exploit works on every identical stock image like default docker images.
**If your website or application runs on PHP, update right now to PHP 8.2.35, 8.3.36, 8.4.27 or 8.5.12 and restart all PHP and web server workers, because a patched server with old workers still running is still vulnerable. If you can't patch immediately, set `session.upload_progress.enabled = Off` as a temporary stopgap (it blocks only one of the two attack paths), restart all workers, and watch your logs for memory errors, crashes and web processes starting shells, since a successful attack can look like a perfectly normal request.**
#cybersecurity #infosec #knowledge #awareness
https://beyondmachines.net/event_details/obstacles-to-weaponizing-php2shell-likely-constrain-immediate-widespread-exploitation-0-3-u-e-l/gD2P6Ple2L -
Reklam panelinde "lead" sayısı artarken satış ekibinin "bu lead'lerin hiçbiri alıcı değil" demesi, dijital pazarlamada en sık duyduğum cümlelerden biri. Ben Koray Yalçın; lead yönetimi, CRM mimarisi, dijital pazarlama ve yapay zekâ destekli otomasyonların kesiştiği projelerde çalışıyorum, özellikle gayrimenkul ve B2B tarafında. Bu cümlenin arkasında çoğu zaman teknik bir kopukluk yatar: Reklam platformu formun doldurulduğunu bilir, ama o kişinin üç hafta sonra showroom'a gelip sözleşme imzaladığını bilmez. Algoritma da doğal olarak form doldurmaya en yatkın kitleyi bulmaya devam eder, satın almaya en yatkın kitleyi değil.
Bu boşluğu kapatmanın yolu, CRM'de oluşan "nitelikli lead", "randevu gerçekleşti" ve "satış kapandı" gibi olayları sunucu tarafından Meta Conversions API'ye (CAPI) geri göndermek. Bu yazı bir pazarlama rehberi değil; bu köprüyü kodla kurarken karşılaştığım tasarım kararlarını anlatıyor: kullanıcı verisinin normalizasyonu ve hash'lenmesi, olay kimliği ile tekilleştirme, zaman penceresi, yeniden deneme stratejisi ve izin kontrolü. Örnekler Python ama mantık her dile taşınabilir.
Önce olay sözlüğü: Hangi CRM durumu hangi olay?
CRM olayıGönderilen olay adıNotForm / lead oluştu
Kod yazmadan önce yapılması gereken en önemli iş, CRM'deki aşamaları sınırlı ve anlamlı bir olay listesine eşlemek. Her aşama değişikliğini Meta'ya göndermek gürültü üretir. Benim kullandığım tipik eşleme şöyle:LeadGenellikle tarayıcı pikseli zaten gönderirTemsilci "nitelikli" işaretlediQualifiedLead(özel olay)Ölçüm kurgusuna göre seçilirRandevu gerçekleştiScheduleveya özel olay"Randevu alındı" değil, "gerçekleşti"Sözleşme imzalandıPurchasevaluevecurrencyzorunlu düşünülmeli
Burada kritik nokta şu: Olay, CRM'de geri alınabilir bir alan değişikliğinden değil, kalıcı bir olaydan tetiklenmeli. Temsilci bir fırsatı yanlışlıkla "kazanıldı" yapıp beş dakika sonra geri alırsa, gönderilmiş birPurchaseolayını geri çekmenin pratik bir yolu yoktur. Bu yüzden ben aşama değişikliklerini doğrudan API'ye bağlamak yerine birconversion_eventstablosuna yazıyorum ve gönderimi kısa bir bekleme süresinden sonra yapan ayrı bir işçiye bırakıyorum.CREATE TABLE conversion_events (
id BIGSERIAL PRIMARY KEY,
event_id TEXT NOT NULL UNIQUE, -- tekilleştirme anahtarı
event_name TEXT NOT NULL,
lead_id BIGINT NOT NULL REFERENCES leads(id),
occurred_at TIMESTAMPTZ NOT NULL, -- olayın gerçek zamanı
value_minor BIGINT, -- kuruş/cent cinsinden
currency CHAR(3),
status TEXT NOT NULL DEFAULT 'pending', -- pending, sent, failed, skipped
attempts INT NOT NULL DEFAULT 0,
last_error TEXT,
send_after TIMESTAMPTZ NOT NULL DEFAULT now() + interval '15 minutes'
);send_afteralanı, "yanlışlıkla kazanıldı" senaryosuna karşı küçük bir tampon. İşçi göndermeden önce fırsatın hâlâ aynı aşamada olup olmadığını kontrol eder; değilse kaydıskippedyapar.Kullanıcı verisini normalize etmek: Hash'ten önce gelen asıl iş
CAPI, e-posta ve telefon gibi kişisel verilerin SHA-256 ile hash'lenmiş olarak gönderilmesini bekler. Çoğu ekiphashlib.sha256(email)yazıp işi bitmiş sayar. Sorun şu ki hash, girdideki tek bir boşluğu ya da büyük harfi tamamen farklı bir değere dönüştürür. Meta tarafındaki eşleşme de birebir karşılaştırmayla çalıştığı için normalizasyon hatası, sessizce düşük eşleşme oranı olarak geri döner.Benim sahada gördüğüm en yaygın hatalar:
- E-postada baştaki/sondaki boşluklar ve büyük harfler.
- Telefonun
0533 ...,+90 533 ...,90533...gibi farklı biçimlerde saklanması. - İsimlerde Türkçe karakterlerin farklı yazımları ve "Dr." gibi önekler.
- Boş alanların boş string olarak hash'lenmesi (boş string'in de bir SHA-256 değeri vardır ve anlamsız bir eşleşme anahtarı üretir).
import hashlib
import re
import phonenumbersdef _sha256(value: str) -> str:
return hashlib.sha256(value.encode("utf-8")).hexdigest()def norm_email(raw: str | None) -> str | None:
if not raw:
return None
v = raw.strip().lower()
return v if "@" in v else Nonedef norm_phone(raw: str | None, default_region: str = "TR") -> str | None:
if not raw:
return None
try:
num = phonenumbers.parse(raw, default_region)
except phonenumbers.NumberParseException:
return None
if not phonenumbers.is_valid_number(num):
return None
# Ülke kodu dahil, yalnızca rakamlar, başta + yok
return phonenumbers.format_number(num, phonenumbers.PhoneNumberFormat.E164).lstrip("+")def build_user_data(lead) -> dict:
ud = {}
if (e := norm_email(lead.email)):
ud["em"] = [_sha256(e)]
if (p := norm_phone(lead.phone, lead.country_code or "TR")):
ud["ph"] = [_sha256(p)]
if lead.external_id:
ud["external_id"] = [_sha256(str(lead.external_id))]
# Tarayıcıdan yakalandıysa hash'lenmeden gönderilen alanlar
if lead.fbc:
ud["fbc"] = lead.fbc
if lead.fbp:
ud["fbp"] = lead.fbp
return udBir detay daha: Kıbrıs gibi çok uluslu alıcı kitlesi olan pazarlarda
default_regionsabit "TR" olamaz. İngiltere'den gelen bir lead'in07...ile başlayan numarası Türkiye varsayımıyla ayrıştırılırsa geçersiz sayılır ya da daha kötüsü yanlış bir numara üretir. Bu yüzden formda ülke seçimini ayrı bir alan olarak tutmak, normalizasyonun doğruluğunu doğrudan etkiliyor.fbc, fbp ve external_id: Eşleşmeyi güçlendiren köprüler
E-posta ve telefon tek başına çoğu zaman yeterli olur, ama iki alan eşleşme kalitesini belirgin biçimde artırır:fbc: Reklam tıklamasıyla gelenfbclidparametresinden türetilen tıklama kimliği. Kullanıcı sitenize reklamla geldiyse_fbcçerezinde bulunur.fbp: Pikselin tarayıcıya yazdığı_fbpçerezi.
Bu değerler satış anında değil, lead oluştuğu anda yakalanmalı. Üç hafta sonra sözleşme imzalanırken kullanıcı tarayıcısında değil, satış ofisinde oturuyor. Bu nedenle form gönderiminde bu iki çerezi gizli alanlarla alıp lead kaydına yazmak, sonraki tüm offline olayların kalitesini belirliyor. Meta Lead Ads formlarından gelen lead'lerde ise platformun verdiği lead kimliğini saklamak aynı işi görür; CRM entegrasyonu senaryolarında bu kimliğin olayla birlikte gönderilmesi eşleşmeyi doğrudan kurar.
external_idise sizin CRM'deki kişi kimliğiniz. Hem piksel hem sunucu tarafında aynı değer (hash'lenmiş olarak) gönderilirse, aynı kişinin farklı olaylarını birbirine bağlamak kolaylaşır.event_id ile tekilleştirme: Aynı satışı iki kez saymamak
CAPI'de iki ayrı tekrar riski vardır:- Piksel ile sunucu çakışması:
Leadolayını hem tarayıcı pikseli hem sunucu gönderiyorsa, iki olay aynıevent_nameve aynıevent_idile gelmelidir. Meta bu ikiliyi tek olay olarak sayar. - Yeniden deneme çakışması: Ağ zaman aşımı yüzünden isteğin ulaşıp ulaşmadığını bilmiyorsanız ve tekrar gönderirseniz, aynı
event_idkorunmalıdır.
event_idrastgele üretilmemeli; olaydan deterministik olarak türetilmeli. Benim tercihim şu:def make_event_id(event_name: str, lead_id: int, stage_version: int) -> str:
return f"{event_name.lower()}:{lead_id}:{stage_version}"stage_version, fırsatın o aşamaya kaçıncı kez girdiğini tutan bir sayaç. Böylece bir müşteri gerçekten ikinci bir daire satın alırsa yeni birPurchaseüretilir, ama aynı satış için yapılan iki gönderim aynı kimliği taşır. VeritabanındakiUNIQUEkısıtı da aynı olayın kuyruğa iki kez girmesini engeller.Zaman penceresi: event_time "şimdi" değil, olayın gerçek zamanıdır
Offline satış entegrasyonunda en sık yapılan hata,event_timealanına gönderim anını yazmak. Olayın değeri, ne zaman gerçekleştiğiyle anlam kazanır; sözleşme salı günü imzalandıysa ve işçi çarşamba gönderdiyse,event_timesalı olmalıdır.İkinci önemli nokta, Meta'nın kabul ettiği geriye dönük pencere. Bu yazıyı yazarken belgeler, olayların gerçekleştikten sonra sınırlı bir süre içinde gönderilmesini istiyor ve bu süre
action_sourcedeğerine göre farklılaşabiliyor. Sınır zamanla değişebildiği için kodda sabit bir sayı gömmek yerine yapılandırmadan okuyorum ve pencereyi aşmış olayları göndermeyi denemek yerineskippedolarak işaretleyip raporluyorum:from datetime import datetime, timezone, timedelta
MAX_AGE = { # yapılandırmadan gelir; güncel değeri resmi belgeden doğrulayın
"system_generated": timedelta(days=7),
"physical_store": timedelta(days=7),
}def is_sendable(evt, action_source: str) -> bool:
age = datetime.now(timezone.utc) - evt.occurred_at
return age <= MAX_AGE.get(action_source, timedelta(days=7))Bu kontrolün pratik sonucu, satış ekibinin CRM'i zamanında güncellemesinin bir veri kalitesi konusu haline gelmesi. Sözleşmeyi on gün sonra sisteme giren bir ekip, reklam optimizasyonuna o satışı hiç kazandıramaz. Bu yüzden ben bu entegrasyonu kurarken satış ekibi için "sözleşme imzalandığı gün CRM'de kapanır" kuralını da süreç tarafında yazılı hale getiriyorum.
action_source ve olay gövdesi
Sunucudan giden olay gövdesinin iskeleti şöyle:def build_payload(evt, lead, action_source="system_generated") -> dict:
data = {
"event_name": evt.event_name,
"event_time": int(evt.occurred_at.timestamp()),
"event_id": evt.event_id,
"action_source": action_source,
"user_data": build_user_data(lead),
}
if evt.value_minor is not None:
data["custom_data"] = {
"value": evt.value_minor / 100,
"currency": evt.currency,
}
return {"data": [data]}action_sourcealanı, olayın nerede gerçekleştiğini anlatır. Web formu içinwebsite, CRM'in kendi ürettiği aşama değişiklikleri içinsystem_generated, satış ofisinde imzalanan sözleşme içinphysical_storegibi değerler kullanılabilir. Doğru değeri seçmek hem raporlamayı hem de uygulanan kuralları etkiler; bu yüzden olay sözlüğünde her olayınaction_sourcedeğerini de sabitliyorum.valuetarafında bir uyarı: Konut gibi yüksek tutarlı satışlarda gerçek sözleşme bedelini göndermek bazı ekiplerin istemediği bir şey olabilir. Bu durumda tutarlı bir "değer skalası" (örneğin ürün tipine göre sabit bir puan) kullanmak, optimizasyon sinyalini korurken hassas ticari bilgiyi dışarı çıkarmamanın bir yolu. Hangisi seçilirse seçilsin, tutarlılık önemlidir; ay ortasında yöntemi değiştirmek raporları kırar.Gönderim işçisi: Toplu istek, yeniden deneme ve hata sınıflandırma
İşçinin görevi basit görünür ama hata sınıflandırması önemli:import requests, time
def send_batch(events, leads, pixel_id, token):
payload = {"data": []}
for evt in events:
payload["data"].extend(build_payload(evt, leads[evt.lead_id])["data"])
url = f"https://graph.facebook.com/{API_VERSION}/{pixel_id}/events"
resp = requests.post(url, params={"access_token": token}, json=payload, timeout=15)
if resp.status_code >= 500 or resp.status_code == 429:
raise RetryableError(resp.text) # üstel bekleme ile tekrar
if resp.status_code >= 400:
raise PermanentError(resp.text) # kaydı failed yap, alarm üret
return resp.json()Kurallarım:
- 5xx ve hız sınırı hataları yeniden denenir; bekleme süresi her denemede artar ve
event_idaynı kalır. - 4xx hatalar (geçersiz parametre, süresi dolmuş token) yeniden denenmez. Tekrar göndermek sonucu değiştirmez, yalnızca log kirletir. Bunlar bir alarm kanalına düşer.
- Token kod içinde değil, gizli değişken yönetiminde tutulur ve süresi izlenir. Sistem kullanıcısı token'ı kullanmak, bir çalışanın hesabı kapandığında entegrasyonun sessizce durmasını engeller.
- Test olay kodu ile canlıya geçmeden önce olayların Events Manager'daki test ekranında doğru göründüğü doğrulanır.
İzin ve veri minimizasyonu
Kişisel veriyi üçüncü bir platforma, hash'lenmiş olsa bile, göndermek bir hukuki dayanak gerektirir. Türkiye'de KVKK, Avrupa'dan gelen alıcılar için GDPR bu çerçeveyi çizer. Benim teknik tarafta uyguladığım kurallar:- Lead kaydında reklam ölçümüne ilişkin izin durumu ayrı bir alan olarak tutulur ve işçi, izni olmayan kişi için olay göndermez.
- Yalnızca eşleşme için gerekli alanlar gönderilir; adres, doğum tarihi gibi alanlar "olsa iyi olur" diye eklenmez.
- İzin geri çekildiğinde, kuyruktaki bekleyen olaylar da iptal edilir.
Bu bir hukuki görüş değil; ama izin kontrolünü kodun içine bir
ifolarak gömmek, sonradan "kimin verisi nereye gitti" sorusuna cevap verebilmeyi sağlıyor.Ölçüm: Entegrasyon gerçekten çalışıyor mu?
Kurulumdan sonra baktığım üç gösterge var:- Eşleşme kalitesi: Events Manager'daki olay eşleşme göstergesi. Düşükse ilk şüpheli normalizasyondur.
- Gecikme dağılımı:
occurred_atile gönderim zamanı arasındaki fark. Satış ekibinin CRM'i geç güncellemesi burada hemen görünür. - CRM ile panel karşılaştırması: Aylık kapanan satış sayısı ile Meta'nın aldığı
Purchasesayısı arasındaki fark. Birebir tutması beklenmez, ama fark aniden açılırsa token, izin veya şema tarafında bir şey bozulmuştur.
Sıkça Sorulan Sorular
Piksel zaten kurulu, neden ayrıca CAPI gerekiyor?
Piksel yalnızca tarayıcıda olan olayları görür. Telefonla kapanan, satış ofisinde imzalanan ya da haftalar sonra gerçekleşen satışlar tarayıcıda olmaz. CAPI, bu olayları CRM'den doğrudan göndermeyi sağlar.E-postayı hash'lemeden göndersem Meta kendisi hash'lemez mi?
Bazı resmi kütüphaneler hash işlemini kendisi yapar, ama kendi kodunuzla gönderiyorsanız normalizasyon ve hash sizin sorumluluğunuzdadır. Kontrolü elde tutmak, hatayı ayıklamayı da kolaylaştırır.Aynı satışı yanlışlıkla iki kez gönderirsem ne olur?
Aynıevent_nameveevent_idile gönderildiyse tekilleştirilir. Farklı kimlikle gönderildiyse iki satış sayılır; bu yüzden kimliği deterministik üretmek önemlidir.Satış on gün sonra CRM'e girildi, yine de gönderebilir miyim?
Meta'nın kabul ettiği geriye dönük pencereyi aşmışsa olay reddedilir. Güncel sınırı resmi belgeden kontrol edin ve asıl çözümü süreçte arayın: satış, gerçekleştiği gün CRM'e girilmeli.Gerçek sözleşme bedelini göndermek zorunda mıyım?
Hayır. Tutarlı bir değer skalası da optimizasyon için yeterli sinyal üretebilir. Önemli olan, seçilen yöntemin zaman içinde değişmemesi.Bu entegrasyon küçük ekipler için fazla karmaşık değil mi?
Kuyruk tablosu, normalizasyon fonksiyonu ve bir gönderim işçisi birkaç yüz satır kod demek. Karşılığında reklam algoritması form dolduranları değil, satın alanları öğrenmeye başlar. Lead hacmi düşük ama satış değeri yüksek sektörlerde bu fark özellikle belirgin.Koray Yalçın — lead yönetimi, CRM mimarisi, dijital pazarlama ve gayrimenkul teknolojileri (PropTech) üzerine çalışıyorum. CRM'den reklam platformlarına geri bildirim kurarken sizi en çok hangi adım zorladı? Yorumlarda konuşalım.#backend #crm #api #marketing #software #coding #development #engineering #inclusive #community
CRM'de kapanan satışı Meta Conversions API'ye geri bildirmek: Hash, event_id ve zaman penceresi üzerine geliştirici notları -
-
-
Also, dann noch mal offiziell frohe #AceWeek an alle Mitlesenden! :heart_asexual: 🎉
Einige Online-Aktivitäten haben wir hier für euch gesammelt und verlinkt:
https://aktivista.net/2026/10/25/ace-week-2026-veranstaltungshinweise/
#asexuality #asexualität #asexual #asexuell #asexuellesSpektrum #lgbtiqaplus -
Die #Kammerspiele #München feierten heute 100 Jahre im Haus an der Maximilianstraße mit einer großartig gefeierten #DragShow im großen Haus:
Erstmalig für mich, im Theater zu fotografieren ...
-
CW: Sexually suggestive
Commission for @[email protected] ! Thank you!!
-
🍭 EVE.L’s sassy pop single “SUGAR EATER” holds its own next to G-Dragon, Doja Cat, ADÉLA, and BLACKPINK. Voice full of character, beats to crank up. Stream it now! 🎧🔥 #Pop #Music #News
🔗 https://www.electrowow.net/eve-l-has-you-hooked-on-sassy-pop-with-sugar-eater