Categories
Rehber Sosyal Medya Pazarlaması

İlgi Çekici Sosyal Medya İçerik Yönetimi Nasıl Yapılır?

“Muhteşem bir içerik,  faydalı, eğlenceli ve ilham verici olmalıdır.”

Ann Handley, Dijital Pazarlama ve İçerik Uzmanı.

Ann Handley’in muhteşem bir içerik için gerekli gördüğü bu özelliklere kesinlikle katılıyorum. Ve bu içeriği oluşturmak tahmin ettiğiniz gibi hiç de kolay olmayacak!

Hedef kitlenizin işletmeniz veya markanız hakkındaki algısı, büyük ölçüde sosyal içerik yönetimi ile oluşturulur. Bu nedenle, hedef kitlenize hitap edecek yaratıcı içeriği üretmek için özenli davranmanız çok önemlidir.

Bu bilinç çerçevesinde bir sosyal içerik stratejisi oluşturmak, markanızın bir adım daha ileri gitmesini ve potansiyel müşterilerinizin ilgisini çekmenize yardımcı olur. 

Peki… İlgi çekici sosyal medya içeriğini nasıl oluşturulur?

sosyal medyayla ilgilenen bir aile her yaş grubundan insan var illüstratör çizim

Hedef Kitlenizi Belirleyin

Markanızın hedeflediği kitleyi tanımak size sosyal medya içerik yönetimi konusunda önemli bir yol haritası çıkaracaktır. Ancak bu sayede pazarlama stratejilerinizi oluşturabilir, ürün ve hizmetlerinizi doğru kanallar aracılığı ile kullanıcılarınıza ulaştırabilirsiniz. 

Hedef kitle analizinizi doğru yapmak, zamandan tasarruf sağlarken aynı zamanda sosyal medya reklamlarınızın maliyetlerini de düşürecektir.  Bu sayede potansiyel müşteri dönüş oranınızı, çok daha uygun bütçelerle yükseltebilirsiniz. 

Hedef kitlenize ulaşmak için kullanabileceğiniz sosyal medya kanallarından bazıları  Facebook, Twitter, Instagram, Pinterest ve LinkedIn’dir. Diğerleri arasında Tumblr, Snapchat, Pinterest ve daha fazlası bulunmaktadır. Saydığımız tüm bu  sosyal medya platformları, size ve kullanıcılarınıza  sunacağı benzersiz özelliklere sahiptir. 

sosyal medya platformlarını gösteren bir tasarım

Hedef kitlenizin kim olduğunu, hangi sosyal medya platformunu kullandıklarını ve bu sosyal kanallarda ne görmeyi beklediklerini anlamak, içerik oluştururken göz önünde bulundurmanız gereken önemli unsurlardır. 

Not: Hedef kitlenizi asla genellemeyin!

Güncel sosyal medya istatistikleri ve analizleri, birlikte çalışmanız için size yararlı ve doğru bilgiler sağlar. Bu araştırma ve bilgileri takip ederek hedef kitlenizin kim olduğuna dair makul ölçüde doğru tahminler yapabilirsiniz.

Uzman İpucu: Facebook Audience Insights ve Google Trends gibi birkaç hedef pazar aracı, işletmenizin sosyal medya kimliğini oluşturmak için size yardımcı olabilir.

sosyal medya görsel tasarımı simgeleyen bir tasarım

Bir sosyal medya kimliği yaratmak, tam olarak kime ulaşmaya çalıştığınızı ve bunu nasıl yapmaya çalışacağınızı belirlemenin harika bir yoludur. 

İdeal müşterinizin kim olduğuna dair net bir fikre sahip olmak, daha iyi bir resim elde etmek, çevrimiçi ortamda onları kolayca tespit etmek ve sosyal medya yönetimi konusunda size avantaj sağlayacaktır.

Bir sonraki adımda, sosyal platformlarda ideal kitlenizin izini sürmek için neler yapabiliriz bir göz atalım.

Hedef Kitle Davranışını İnceleyin

Her ağdaki analiz araçlarını kullanarak paylaşılan içerik üzerindeki kullanıcı davranışını değerlendirin. Bu, sıfırdan başlamadığınız ve farklı platformlara halihazırda içeriğiniz olduğunda kullanışlıdır. 

Rakiplerinizle Kimlerin Doğrudan Etkileşime Girdiğini Araştırın

İşletmenizin sunduğu ürünleri veya hizmetleri sunan rakiplerinizin sosyal medya profillerini tanımlayın. Bu noktada kendinize sormanız gereken sorular şunlardır: Kimi takip ediyorlar ve ne pazarlamaya çalışıyorlar? Hangi ağlar en yüksek etkileşimi gösteriyor? 

Yararlı Bilgiler Edinin

Potansiyel müşterilerinizin nerede olduğunu keşfetmek için, hedef anahtar kelimelerinizle ilişkili tartışmaları, işinizle ilgili konuları ve hatta rakibinizin etkileşimlerini izleyin.

Twitter’ın gelişmiş arama özelliği, rakiplerinizi ve işletmeniz için önemli olan anahtar kelimeleri izlemeniz için yararlı bir kaynaktır.

İşletmenizi Öne Çıkaran Nedir?

Marka özgünlüğü, kendisini rakiplerinden farklı kılmayı amaçlayan bir işletmenin anahtarıdır. Marka sesi oluşturmak ve net temel değerler belirlemek; içerik yazma, tasarım, yayınlama ve yanıtlama dahil olmak üzere tüm aşamalarda sosyal medya stratejiniz için son derece önemlidir.

Her Sosyal Kanal İçin Akıllı İçerik Oluşturma

İçerik paylaşmak ve hedef kitlenizle etkileşimde bulunmak “sosyal” medyada eşit öneme sahiptir.  

Ürünlerinizi veya hizmetlerinizi çevrimiçi olarak satın alacak kişilere hangi platformdan ulaşacağınızı belirledikten sonra, SocialPilot’un içerik iyileştirme özelliği ile, çeşitli sosyal medya platformlarında içeriği kolayca bulabilir, düzenleyebilir, optimize edebilir ve paylaşabilirsiniz.

Bloglar, sosyal medya veya daha fazlasını temel alacak gönderiler ile alakalı konuları bulmak için, mutlaka bir çıkış noktanız olmalıdır. Başarılı bir içerik stratejisi oluşturmak için anahtar kelime araştırması bir zorunluluktur.

Sosyal medya pazarlama stratejiniz, belirli bir kanalda topluluğa değer katarken işletmenin mevcut hedeflerini de desteklemelidir.

Sosyal medya içerik yönetimi için belirlenen  gönderinin biçimi ve optimum içerik uzunluğu, her platform için değişebilir. Örneğin, özenle oluşturulmuş videolar Facebook sayfaları veya YouTube için harika bir içerik türü olsa da, büyük olasılıkla Pinterest’te aynı şekilde çalışmayacaktır. 

Uzman İpucu: CTA’lar veya harekete geçirici mesajlar, kullanıcıları etkileşime geçmeye ikna etmek için gereklidir. 

Her gönderi için bir tane eklemeye özen gösterin, dikkatlice düşünün ve takipçilerinize bundan sonra ne yapacaklarını açıkça söylediğinden emin olun. 

Öneriler, görüşler, tavsiyeler isteyebilir veya bir anket oluşturabilirsiniz.

“Yayınla”ya Tıklamadan Önce

En uygun zamanları belirleyerek gönderi paylaşmak, sosyal medya içerik yönetimi konusunda maksimum sonuç almak için çok önemlidir. 

Hedef kitlenizle doğru zamanda karşılaşmak için, her platformda hangi gönderi zamanlarının en iyi sonuç verdiğini gözlemlemeye başlayın.sosyal medya yönetimi yaparken dikkat edilmesi gerekilen tarihleri vurgulayan bir görsel

Verilerinizi test etmeye yardımcı olması için en iyi sosyal medya planlama araçlarından bazılarını kullanabilirsiniz.

Son olarak, tekrarlardan kaçınmak ve tutarlı bir gönderi trafiği oluşturmak için bir sosyal medya takvimi edinin. Bu işletmenizle ilgili tatilleri veya etkinlikleri takip etmenize son derece yardımcı olacaktır.

Ayrıca şirketinizin büyüklüğüne bağlı olarak diğer ekipleri de takvime davet edebilir,  bu şekilde sosyal medyada sırada ne olduğunu görmelerine imkan sağlayabilirsiniz.

Categories
Dijital Pazarlama Rehber

Milenyum Çağına Hitap Edin: Mobil Pazarlama

Mobil pazarlama, web siteleri, e-postalar, SMS ve MMS, sosyal medya ve uygulamalar aracılığıyla akıllı telefonlar, tabletler veya diğer mobil cihazlarda hedef kitlelere ulaşmayı amaçlayan çok kanallı bir dijital pazarlama stratejisidir.

mobil pazarlamayı anlatan bir illüstrator telefonun yanında mail like play butonları var

Mobil cihaz kullanıcılarını çekmek için işletmenizi pazarlama sanatıdır. Etkili mobil reklamcılık, mobil kitlenizi tanımak, mobil platformları değerlendirirken içerik tasarlamak, mobil uygulamaları stratejik olarak pazarlamak ve kullanmak anlamına gelir.

Masaüstü bilgisayarlarda yapılabilecek her şey artık mobil cihazlarda kullanılabilir. E-postaları açmaktan web sitenizi ziyaret etmeye kadar her şey küçük bir telefon ekranında yapılabilir.

Mobilin pazarlamanın geleceği olduğunu söyleyebilirim, ama aslında mobil çağ çoktan geldi. Hatta bir mobil pazarlama stratejisi uygulamazsanız,  geride kaldığınızı söyleyebilirim!

Mobil Pazarlamanın Öncüleri

Mobil pazarlamanın geçmişi, 2003 yıllarında ilk ticari mobil SMS ve kısa kodların başladığı zamana dayanmaktadır.

Pontiac ve Nike, 2005 yılında SMS kampanyası başlatan ilk iki marka oldu. Bu, her iki markanın da mobil pazarlamanın gelecek vaat ettiğini fark ettiği zamandı.

 

2007 yılı itibariyle, dünya geneline bakıldığında 2,4 milyar SMS kullanıcısı vardı. Apple, ilk iPhone’unu ABD’de piyasaya sürdü ve QR kodları, 2010 yılında mobil pazarlamaya katıldı. Bu pazarlamada yeni bir dönemin başlangıcını başlattı.

2011 yılı itibariyle mobil pazarlama yaklaşık 14 milyar dolarlık küresel bir sektör haline geldi.

mobil pazarlamayı anlatan bir görsel tasarım. telefondan ikonlar çık

2013 yılı itibariyle, Android ve iOS piyasaya hakim olmuştu. Uygulamaların popüler hale geldiği ve akıllı telefonların artık geleneksel cep telefonlarının yerini aldığı zaman haline dönüştü.

2014 yılları itibariyle, cep telefonu kullanıcılarının sayısı bilgisayar kullanıcılarının sayısını geçti ve insanlar interneti telefonlarından kullanmaya başladılar.

Bugün mobil zamanın %89’luk kısmı uygulamalara, kalan %11’lik kısmı ise web sitelerine harcanmakta. Pazarlamacıların %71’inin mobil pazarlamanın işlerinin temeli olduğunu söylemesinin nedenlerinden biri budur. Bu nedenle, insanların %68’i mobil pazarlamayı genel pazarlama stratejilerine dahil ediyor.

Neden Mobil Pazarlama?

  • Mobil cihaz süresinin %80’i uygulamalara harcanıyor; oyun uygulamaları ise uygulama zamanının en büyük yüzdesine hakim olmakta.
  • Tablet kullanan insanlar, akıllı telefon kullananlardan %70 daha fazla web sayfasına göz atmakta.
  • Perakende dönüşüm oranları tablet kullanıcılarında %2,2’lik orana sahip, akıllı telefonlarda ise %0,7’de, ancak geleneksel PC dönüşüm oranları %3,3 ile en yüksek oranla yer alıyor!
  • Mobil aramalar 2018’de yıllık baz alındığında %200 arttı.

telefonu tutan adam mobil pazarlamayı simgeliyor

Erişim

Erişim hakkında bir endişe söz konusu olduğunda, hedef kitlenize ulaşmak için cep telefonundan daha kolay bir araç yoktur. Akıllı telefon kullanıcılarının% 79’u, sabah kontrol ettikleri ilk şeyin cep telefonu olduğunu ve tüm gün yanlarında taşıdıklarını söylüyor.

Ama bu hepsi değil. Ortalama bir cep telefonu kullanıcısı her gün telefonda 90 dakika, Amerikalı tüketiciler ise her gün telefonda 220 dakika geçiriyor. Üstelik ortalama süre her geçen gün artıyor. Bu, tüketicilerinizi çekmenin daha kolay bir yolu olmadığı anlamına gelir. Güvenilir bir mobil pazarlama stratejisi geliştirdiğiniz sürece, onlarla istediğiniz zaman, istediğiniz yerde iletişim kurabilirsiniz.

Kişisel

Cep telefonları kişisel cihazlardır. Tüketicilerle mobil cihazlar aracılığıyla bağlantı kurarken markanız, kullanıcıların arkadaşları ve ailesiyle aynı kategoriye girer. İnsanlar bire bir iletişim kuran markalara daha yakın hissederler.  Bu tür bir kişisel teması cep telefonundan başka bir şeyin başarması oldukça zordur.

Anında

Müşterilere anlık mesaj göndermeniz gerekse hangi aracı seçerdiniz? Araştırmalar, metin mesajlarının %90’ının üç dakikadan daha kısa sürede okunduğunu gösterirken, başka bir araştırma kısa mesajların %98’inin okunduğunu gösteriyor. Mobil pazarlama sadece inanılmaz derecede etkili olmakla kalmıyor, aynı zamanda bilgileri anında iletebiliyor. E-posta pazarlamasından farklı olarak, e-posta pazarlamasının yanıt oranı yalnızca% 6 iken, metin mesajlarının yanıt oranı %45’tir. Kısa mesajlar anında iletilebilir, hemen okunabilir ve marka için şaşırtıcı sonuçlar sağlayabilir.

Mobil E-Ticaret

Tüketiciler birçok ürünü mobil cihazlarından almayı tercih ediyor. İnternette geçirilen sürenin %44’ünden fazlası cep telefonlarına harcadığından, cep telefonu görüşmelerinin %78’i satın alma ile sonuçlanıyor. 2017’de mobil e-ticaret, küresel e-ticaretin %43’ünü oluşturuyordu ve 2020’ye kadar %39 oranında büyümesi bekleniyordu.

Uygun Maliyetli

Diğer pazarlama teknikleriyle karşılaştırıldığında mobil pazarlamanın maliyeti çok düşüktür. Örneğin, TV’de reklam vermek, bir SMS kampanyası yürütmekten veya mobil cihazlar için optimize edilmiş bir web sitesi oluşturmaktan çok daha pahalıdır.

Müşteri Katılımı

Markanızın cep telefonları konusunda iyi bir deneyimi varsa müşterileriniz size daha çok güvenecektir. Araştırmalar, insanların %61’i web sitesine cep telefonlarından erişebildiklerinde iyi bir marka imajına sahip olacaklarını göstermiştir. Mobil uygulamalar için optimize edilmiş ise, müşterilerin %30’u web sitenizden ayrılacaktır.

Categories
Rehber Yazılım

Python Web Scraping Kullanarak İnternetten Veri Nasıl Çekilir?

İnternetten bilgi toplamanın pek çok farklı çeşidi vardır. World Wide Web üzerinden veri toplamak için en popüler iki yöntem API (Applicaiton Programming Interface/Uygulama Programlama Arayüzü) ve Web Scraping (Web Kazıma) dir. Bu iki yöntemin arasındaki temel fark, sunulan verinin muhatabıdır.

Web Scraping vs API Çağrıları

API çağrılarında size verileri rahatça çekip kendi uygulamanızda kullanabilmeniz için end-pointler (uç noktaları) vardır.

Bu end-pointlere çeşitli HTTP/S istekleri göndererek istediğiniz verilere standart bir formatta ( genellikle JSON) ulaşabilirsiniz.

Öte yandan Web Scrapingde veriler bir web sitesinin çalışabilmesi için, websitesi tarafından tarayıcınıza gönderilir, renderlanır ve bu veriler buradan bu web sitesinin üzerinden adeta “kazınarak” toplanır.

Hedef Belirleme

Bu projemiz için n11.com üzerindeki bütün masaüstü bilgisayarların bilgilerini çekeceğiz. Öncelikle yapmanız gereken ilk iş hedefimizi tanımak. İstediğimiz verilerin nerelerde olduğunu belirlemek.

web sitesinde elementin kodu inceleniyor

Burada görebileceğimiz üzere ürünlerimizin hepsi, “column” class’ına sahip birer div ile kaplı. Bu sayede siteden hangi elementleri seçerek başlayacağımızı bulmuş olduk.

Sıradaki işimiz, her bir ürüne ait istediğimiz verileri tutan elementleri bulmak.

yazılmış kodlar inceleniyor

Yine geliştirici konsolumuzun yardımıyla ihtiyacımız olan elementleri belirmiş durumdayız. Bu örneğiniz için ihtiyacımız olan elementler şunlardır.

<h3 class="productName"> // Ürünümüzün adı
<a class="oldPrice"> // Ürünümüzün indirimsiz fiyatı
<a class="newPrice"> // Ürünümüzün indirimli fiyatı
<a class="plink"> // Ürünümüzün sayfasının linki

Fakat ihtiyacımız olan bir element daha var. Bir sayfada sadece belirli bir miktarda ürün listelendiğinden diğer ürünleri görebilmemiz için bir diğer sayfaya geçmemiz gerekiyor.

Bunun için de ürünlerin hemen altında bulunan sayfa butonlarını kullanacağız.sayfa sayıları görünüyor birinci sayfada sayfa sayıları var ellinci sayfada

Resimde de görüldüğü gibi son sayfaya gelene kadar next butonunu kullanabiliriz.

Bu sayede bir sayfadaki ürünleri bitirdiğimizde next butonunu kullanarak bir sonraki sayfaya geçip oradaki ürünleri çekmeye devam edebiliriz.

Gerekli bütün ön taramayı yaptıktan sonra artık kodlama kısmına geçebiliriz.

import requests
from bs4 import BeautifulSoup
import csv

site = requests.get("https://www.n11.com/bilgisayar/masaustu-bilgisayar")

soup = BeautifulSoup(site.content)

with open('laptops.csv', mode='w',encoding='utf-8') as laptops:
    laptopWriter = csv.writer(laptops, delimiter=',')
    laptopWriter.writerow(["Laptop Adı","Eski Fiyatı","Yeni Fiyatı","Link"]

page = soup.find(class_="next")

while page:
    site = requests.get(page["href"])
    soup = BeautifulSoup(site.content)
    products = soup.find_all(class_="column")

    for product in products:
        name = product.find(class_="productName")
        if name:
            name = name.get_text().strip()
            
        else:
            break
        oldPrice = product.find(class_="oldPrice")
        newPrice = product.find(class_="newPrice").get_text().strip()
        if oldPrice:
            oldPrice = oldPrice.get_text().strip()
        else:
            oldPrice = newPrice

        link = product.find(class_="plink")["href"]

        with open('laptops.csv', mode='a',encoding='utf-8') as laptops:
                laptopWriter = csv.writer(laptops, delimiter=',')
                laptopWriter.writerow([name,oldPrice,newPrice,link])
    page = soup.find(class_="next")

Kodumuzun üzerinden gidip ne yaptığına sırayla bir bakalım:


import requests
from bs4 import BeautifulSoup
import csv

Requests modülü sayesinde bir websitesinin raw (ham) HTML halini çekebilriz. Daha sonra bu raw HTML’i BeautifulSoup gibi bir HTML parser’ı kullanarak içerisinden ihtiyacımız olan verileri çıkarabiliriz.

Son olarak da csv modülü sayesinde, topladığımız verileri bir CSV (Comma Seperated Values/Virgülle Ayrılmış Değerler) dosyasına yazıp kullanabiliriz.

site = requests.get("https://www.n11.com/bilgisayar/masaustu-bilgisayar")

soup = BeautifulSoup(site.content)

with open('laptops.csv', mode='w',encoding='utf-8') as laptops:
    laptopWriter = csv.writer(laptops, delimiter=',')
    laptopWriter.writerow(["Laptop Adı","Eski Fiyatı","Yeni Fiyatı","Link"])

page = soup.find(class_="next")

Burada ise masaüstü bilgisayarların olduğu ilk sayfayı requests ile çekip BeautifulSoup ile işlenmeye hazır hale getiriyoruz.

Daha sonra bir CSV dosyası açıp içine başlılarımızı yazıp kapatıyoruz.

Burada dikkat etmemiz gereken bir husus ise Türkçe karakter kullandığımız için dosyayı utf-8 modunda açmamız gerektiğidir.

Aksi takdirde hata alabiliriz. Son olarak, sayfalar arasında ileri gitmemizi sağlayacak olan next butonunu bulup bir değişkene atıyoruz.

while page:
    site = requests.get(page["href"])
    soup = BeautifulSoup(site.content)
    products = soup.find_all(class_="column")

    for product in products:
        name = product.find(class_="productName")
        if name:
            name = name.get_text().strip()
            
        else:
            break
        oldPrice = product.find(class_="oldPrice")
        newPrice = product.find(class_="newPrice").get_text().strip()
        if oldPrice:
            oldPrice = oldPrice.get_text().strip()
        else:
            oldPrice = newPrice

        link = product.find(class_="plink")["href"]

        with open('laptops.csv', mode='a',encoding='utf-8') as laptops:
                laptopWriter = csv.writer(laptops, delimiter=',')
                laptopWriter.writerow([name,oldPrice,newPrice,link])
    page = soup.find(class_="next")

Döngümüzün içinde ilk önce next butonumuzun işaret ettiği sayfayı request ile çekip BeautifulSoup ile işlemeye hazır hale getiriyoruz.

Daha sonra, daha önceden belirlemiş olduğumuz ürün class’ımızı kullanarak bütün ürünlerimizin olduğu elementleri çekiyoruz.

İkinci döngümüzde ise bu ürünlerimizin içerinde teker teker gezip ihtiyacımız olan bilgileri çekiyoruz.

Bir ürünün bütün bilgilerini çektikten sonra en başta açtığımız CSV dosyasını tekrar açıp ekliyoruz.

Burada dikkat etmemiz gereken kısım dosyayı “w” (write/yazma) moduyla değil “a” (append/ekleme) moduyla açmamız gerektiğidir zira daha önce yazdığımız bütün verilerimizin üzerine yazarız.

Son olarak, şu anda ürünlerini çektiğimiz sayfanın next butonunu alıp ilk döngümüze geri dönüyoruz. Bu süreç “page” değişkeni yani next butonumuz boş olana kadar devam edecek.

Bunun olmasının tek yolu sitede en son sayfaya gelmiş olmamızdır.

Sonuç: Örnek Çıktı

Laptop Adı,Eski Fiyatı,Yeni Fiyatı,Link

Dell G5DT-B70W165N i7-10700F 16GB 512GB SSD 6GB GTX 1660 W10H,"12.499,99 TL","11.879,99
                TL",https://urun.n11.com/masaustu-bilgisayar/dell-g5dt-b70w165n-i7-10700f-16gb-512gb-ssd-6gb-gtx-1660-w10h-P469658715

"Zeiron Sn107 İ5-650 3,46Ghz 8GB 120GB SSD 18.5 Masaüstü Bilgisaya","4.450,00 TL","2.249,00
                TL",https://urun.n11.com/masaustu-bilgisayar/zeiron-sn107-i5-650-346ghz-8gb-120gb-ssd-185-masaustu-bilgisaya-P456175492

"Zeiron Sn108 İ5-650 Turbo 3,46Ghz 8GB 500GB 18.5 Masaüstü Bilgisa","4.250,00 TL","2.199,00
                TL",https://urun.n11.com/masaustu-bilgisayar/zeiron-sn108-i5-650-turbo-346ghz-8gb-500gb-185-masaustu-bilgisa-P456176226

"i5 8GB Ram 128GB Ssd 18,5"" Monitör Masaüstü Bilgisayar - EBA TV","2.429,00 TL","2.022,58
                TL",https://urun.n11.com/masaustu-bilgisayar/i5-8gb-ram-128gb-ssd-185-monitor-masaustu-bilgisayar-eba-tv-P368648481

Dragos ATM9922509 i3 10100f 8GB Ram 240GB Ssd 4GB GTX1650 Oyun Bi,"4.650,64
                TL","4.650,64
                TL",https://urun.n11.com/masaustu-bilgisayar/dragos-atm9922509-i3-10100f-8gb-ram-240gb-ssd-4gb-gtx1650-oyun-bi-P463168484

Yukarıdaki küçük pyhon script’imiz sayesinde yaklaşık olarak 4.000 masaüstü bilgisayarın bilgilerini dakikalar içerisinde çekmiş olduk. Yazımızda öğrendiğimiz teknikleri kullanarak bu script’i benzer sitelere uyarlayabilir veya farklı bir web scraping ihtiyacınız için kendi scriptinizi kolaylıkla yazabilirsiniz.

Categories
Rehber Yazılım

Docker ile Sanal Ortam Oluşturun: Docker Nedir?

Docker, basit bir şekilde süper hızlı “sanal ortam” oluşturma teknolojisidir. Bu basitliğin ardında büyük olaylar bizi beklediği için sade bir giriş yapalım istedim. Hemen başlayalım.

dockeryazılım programının logosu

Sanallaştırma

Bir bilgisayar/sunucu içerisinde bulunan işletim sisteminin üzerinde sanal makine başlatılır.

Başlatılacak olan her sanal makine ana bilgisayarımızın fiziksel özelliklerinin bir kısmı ile beslenmeye başlar.

Her sanal makine içerisinde gerekli olan işletim sistemi bulunur. Bu sebeple makine dosyaları oldukça çok fazla yük içerir.

Makine sayısı arttıkça, fiziksel makinenin özellikleri hızla sanal makineler tarafından tüketilir.

Oluşturulan makinelerin fiziksel bilgisayardan alınacak kaynakların esnek yapıda seçilmemesi proje gereksinimlerinin değişiminde büyük sıkıntılar ortaya çıkarır.

Bu sebeplerle sanal makineler çeviklik açısından başa bela bir hale gelirler.

Konteynerleştirme

Bu terim yazılım dünyası için aslında yeni değildir. Docker sayesinde bu teknoloji son kullanıcının kullanımına çok kolay bir şekilde sunulmuştur.

Bu teknolojide amaç fiziksel makinemizin çekirdeğini direkt kullanmak.

Yeni işletim sistemlerinin tüm gereksinimleri yerine amaçlanan sistem belirlenir ve halihazırda asıl çekirdek üzerine bu sistem kurulumu gerçekleştirilir.

Bu sayede işlem ve yer maliyeti düşük, kolay taşınabilir makineler oluşturulur.

Docker

Docker‘ın sitesinden sisteminize uygun kurulumu ile ilgili detaylı bilgiyi alabilirsiniz.

Docker’ın sanallaştırmanın yanı sıra neler sunduğunu işleyişlerinden yola çıkarak anlatmaya çalıştık ancak yapabileceklerimizin çok daha fazlası bizleri bekliyor.

Şimdi Docker’ın “Image” kısmını ele alalım.

Konteynerlerin içerisinde çalışacak düşük kapasiteli yüksek erişebilirlik sağlayan sistem görüntüleri. Bu görüntüler nginx den mysql e her türlü paketi bulundurabilir.

Bu paketleri kendi işleriniz için özel olarak oluşturabilir, şirket içi ya da topluluk için özel geliştirmeler yapabilirsiniz.

Bu sayede oluşturduğunuz görüntüyü insanlar projelerinde kullanabilir.

Düşük dosya boyutları sayesinde dakikalar içerisinde uğraştırıcı bir çok ortamın kurulumu kolayca sağlanır.

Sistemimizde olan görüntüleri aşağıdaki şekilde görebiliriz. Şuan sistemimizde herhangi bir görüntü yok.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

Deneme amaçlı bir mysql görüntüsü çalıştıralım. Docker görüntünün olmadığını gördüğü zaman önce görüntüyü alacak, kurulumunu yapıp hizmetimize sunacaktır.

Unable to find image 'mysql:latest' locally
latest: Pulling from library/mysql
a076a628af6f: Pull complete                                                                                                                                                 f6c208f3f991: Pull complete                                                                                                                                                 88a9455a9165: Pull complete                                                                                                                                                 406c9b8427c6: Pull complete                                                                                                                                                 7c88599c0b25: Pull complete                                                                                                                                                 25b5c6debdaf: Pull complete                                                                                                                                                 43a5816f1617: Pull complete                                                                                                                                                 69dd1fbf9190: Pull complete                                                                                                                                                 5346a60dcee8: Pull complete                                                                                                                                                 ef28da371fc9: Pull complete                                                                                                                                                 fd04d935b852: Pull complete                                                                                                                                                 050c49742ea2: Pull complete                                                                                                                                                 Digest: sha256:--
Status: Downloaded newer image for mysql:latest
[Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.22-1debian10 started.
[Note] [Entrypoint]: Switching to dedicated user 'mysql'
[Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.22-1debian10 started.
[ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
        You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

Aynı komutu tekrar çalıştıralım.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               latest              d4c3cafb11d5        25 hours ago        545MB

Artık görüntü yerel makinemizde hazır. İstediğimiz zaman bu görüntü ile yeni bir konteyner oluşturup birden fazla mysql sunucusu elde edebiliriz.

Peki Docker bu görüntüyü nereden aldı? Tabiki de kendi “image” havuzu Docker Hub’dan (docker farklı kaynaklardan da görüntü alabilir).

Bu sistem içerisinden işinize yarayan herhangi bir görüntüyü yerelinize almak için aşağıdaki komutu kullanabilirsiniz.

docker pull blabla

Etiketler bir çok depo(repository) alanında olduğu gibi Docker görüntülerinde de versiyonlama için kullanılır. Yapısı bu şekildedir;

<görüntü-adı>:<etiket>

Yukarıdaki mysql örneğimizi ele aldığımızda depodan çekilecek olan görüntü mysql görüntünün versiyon adı ise latest dır. Eğer mysql in farklı bir sürümünü yüklemek istiyorsak aşağıdaki gibi bir komut kullanmalıyız.

docker pull mysql:5.7.32

Docker Hub içerisinde herhangi bir görüntü deposuna girdiğimizde “Description”, “Reviews” ve “Tags” şeklinde 3 farklı tab görürüz.

Tags” tab i içerisine girdiğimizde ilgili deponun oluşturulmuş tüm versiyonlarını görebilir nasıl erişebileceğimize dair bilgileri edinebiliriz.

Docker çalışma sistemi ve belkemiği konteyner sistemidir.

Konteynerler çok hızlı bir şekilde ayağa kaldırılıp kullanıma hazır hale getirilir.

Bir uygulama için birden fazla uygulama/veri tabanı konteynerleri oluşturulup aynı anda çalışması ve yükü eşit bir şekilde paylaşacak şekilde yapılandırılmaları mümkündür.

Hatta bu sistemleri ek uğraş gerektirmeden otomatik olarak yapan sistemlerde geliştirilmiştir.

Bir görüntü seçilip docker run komutu kullanıldığında otomatik olarak konteyner oluşturulmaya başlanır. Yine mysql örneği ile gösterelim;

$ docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=docker-test -d mysql:latest

Şimdi biraz inceleyelim ilk yaptığımız run komutundan farklı parametreler var.

— name mysqltest  konteyner adımız

-e MYSQL_ROOT_PASSWORD konteyner a gömmek istediğimiz ortam değişkeni

-d bağımsız(detached) modda konteyner başlar, komut girildikten sonra komut istemine geri döneriz, docker arkada oluşturma işlemine başlar, bizi engellemez.

mysql:latest kurmasını istediğimiz görüntünün adı

Docker konteynerlerini aşağıdaki komut ile listeyebiliriz;

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                 NAMES
2fa80a5b07c6        mysql:latest        "docker-entrypoint.s…"   26 minutes ago      Up 26 minutes       3306/tcp, 33060/tcp   mysqltest

Oluşturduğumuz konteyner ın özelliklerini ve durumunu görüntüleyebiliyoruz. Konteyner ı durdurmak için aşağıdaki komut kullanılabilir.

$ docker container stop 2fa80a5b07c6

stop ibaresinden sonraki alan konternerimizin id si. İstersek ismi ile de aynı işlemi gerçekleştirebiliriz.

Şimdi ise konteyner silmek için aşağıdaki komutu kullanalım

$ docker container rm mysqltest

Bu şekilde Docker da konteyner oluşturma durdurma ve silme işlemlerinin nasıl yapıldığını incelemiş olduk.

Bu dosyalar var olan görüntüleri özelleştirerek projemize özel yeni görüntüler elde etmemizi sağlıyor. İçerisine gireceğimiz komutlar ile Docker’ın konteyner oluşturma aşamasında ne tür adımlar izleyeceğini belirliyoruz. Docker vereceğimiz tüm işleri bizim yerimize istediğimiz kadar konteyner içerisinde yapıyor. Şimdi bir tane oluşturalım;

FROM node:14.15.4                                                                                                                                                           RUN mkdir /nodetest                                                                                                                                                         WORKDIR /nodetest                                                                                                                                                           ADD . /nodetest                                                                                                                                                             CMD node index.js

FROM oluşturulacak konteynerin kullanacağı görünütüyü belirtir.

RUN konteynerin çalıştıracağı komut burada bir klasör oluşturduk.

WORKDIR konteynerin komutlarımızı nerede çalıştıracağını belirttik.

ADD konteynerin içerisine aktarılacak fiziksel makinemizdeki dizini gösterdik Dockerfile ın bulunduğu dizindeki herşey konteyner içerisinde bulunan nodetest klasörüne kopyalanacak.

CMD konteynerin işlemlerden sonra çalıştırmasını istediğimiz ilk ve asıl işlem.

Dockerfile ımızın yanına bir index.js açıyor ve içerisini aşağıdaki şekilde dolduruyoruz;

const https = require('https')                                                                                                                                              let req = https.request({ hostname: 'webhook.site', path: '/1d7a8108-ecfe-413d-a210-156a0fe3ad96', port: 443, method: 'GET' }, () => {});
req.end();

Webhook.site üzerinden bir webhook oluşturuyoruz ve istek atıyoruz.

Şimdi oluşturduğumuz Dockerfile üzerinden bir görüntü oluşturmak için aşağıdaki komutu kullanalım:

$ docker build ./
Sending build context to Docker daemon  3.072kB
Step 1/5 : FROM node:14.15.4
 ---> 995ff80c793e
Step 2/5 : RUN mkdir /nodetest
 ---> Running in 37739a546f10
Removing intermediate container 37739a546f10
 ---> f5f56db2746d
Step 3/5 : WORKDIR /nodetest
 ---> Running in ae357849a077
Removing intermediate container ae357849a077
 ---> ae2f76d3ad04
Step 4/5 : ADD . /nodetest
 ---> 58b31c30cbcf
Step 5/5 : CMD node index.js
 ---> Running in 5bd9c578f13c
Removing intermediate container 5bd9c578f13c
 ---> e540f9d9eea3
Successfully built e540f9d9eea3

Bulunduğumuz dizini göstererek “e540f9d9eea3” idsine sahip bir görüntü oluşturduk hemen bunu inceleyelim:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              e540f9d9eea3        24 seconds ago      942MB
node                14.15.4             995ff80c793e        27 hours ago        942MB
mysql               latest              d4c3cafb11d5        28 hours ago        545MB

İlk sırada bizim oluşturduğumuz görüntü geldi. Artık konteynerimizi başlatabiliriz.

$ docker run e540f9d9eea3

Bu komut ile konteyner başladığı anda Webhook.site adresinde istek hemen karşımıza geliyor.

Node konternerimiz ayağa kalktı tüm ortam yüklendi, index.js dosyamız alındı ve sonrasında talimatlarımıza göre çalıştırıldı.

Image for post

Image for post

İşlem başarıyla tamamlandı. Artık bu görüntü ile istediğiniz her şeyi yapabilirsiniz.

Yazımızda “Docker Nedir?”, “Hangi Teknolojiyi Kullanır?”, “Konteynerleştime(Containerization) Nedir?”, “Docker Image Nedir Nasıl Çalışır?”, “Docker Konyetner Nasıl Çalışır?”, “Dockerfile Nedir ve Nasıl Çalışır?” ve “Docker Image Nasıl Oluşturulur?” gibi pek çok soruya değinmeye ve cevap vermeye çalıştık.

 

Sonuna kadar okuduğunuz için teşekkür ederim. Umarım sizler için faydalı bir yazı olmuştur ve aklınızda soru işaretlerini bir nebze olsun azaltmıştır.

Categories
Dijital Pazarlama Rehber SEO

SEO 101: Arama Motorları Nasıl Çalışır?

Aslında, arama motorları nasıl çalışır sorusu, altında daha detaylı bir soruyu barındırır:

Arama motorları web sitelerini kategorize etmek, web sayfalarını yapılan arama sorguları doğrultusunda kullanıcılarına geri sunmak için nasıl bir algoritma kullanır?

Markanızın, web sitenizin veya şirketinizin öne çıkmak istediği sorgularda arama yapanlar tarafından bulunmak istiyorsunuz. Yani, arama motorları sonuç sıralamasında yükselmek istiyorsunuz. Öyleyse, SEO teknikleri uygulamalısınız.

Bir kullanıcı olarak, internet üzerinden herhangi bir ürün veya bilgi araştırması yaparken arama motorlarını ne sıklıkla kullandığınızı düşünün. Peki, neden kullanıyorsunuz?

Başarılı SEO Sonuçları İçin Optimizasyon

seo uzmanı kadın ekibine arama motorları nasıl çalışır konusunu anlatıyor

Bir SEO uzmanı olarak söylemeliyim ki, Google’ın önerileri doğrultusunda geliştirilen SEO stratejileri her yıl değişiklik gösterirken, aslında temel ilkeler hep aynı kalmaktadır.

Google, 1990 sonlarında ortaya çıktığından beri, SEO çalışmaları üç temel bileşen altında yönetilmektedir:

1. Teknik SEO,

2. Sayfa içi SEO ve

3. Sayfa dışı SEO.

Teknik SEO, sitenizi geliştirmek için tasarlanmış, ancak doğrudan içerikle ilgisi olmayan etkinlikleri tamamlama sürecidir. Genellikle perde arkasından yönetilir ve web site kullanıcılarının bakarak fark edemeyeceği geliştirmelerdir.

Site içi SEO, içeriğinizde kullanacağınız anahtar kelimeyi doğru bir şekilde hedefleme, site içeriklerinizin hedef anahtar kelimelerle doğrudan alakalı olmasını sağlama ve kullanıcı deneyimini olabildiğince yükseltebilme sürecidir.

Site içi SEO yapılabilmesi için, bir içerik yönetim sistemi gerekmektedir. Böylece, SEO amaçları için optimize edilmiş sayfa başlıkları ve açıklamalar oluşturulabilir.

İçerik Yönetim Sistemi Nedir?

İçerik yönetim sistemi, veya CMS, bir web sitesini yönetmek için kullanılan yazılım parçasıdır. Metin, resim ve video gibi içeriklerin web sitesine eklenebildiği veya değiştirilebildiği paneldir.

Sayfa dışı SEO, web sayfaları dışında yönetilen etkinlikler aracılığıyla, web sitenizin arama motoru sonuç sıralamalarını geliştirme sürecidir. Büyük ölçüde sitenin otoritesini artırmaya yardımcı olan geri bağlantılar oluşturmak, sayfa dışı SEO’nun ana hedeflerindendir.

Off Page SEO ile Sıralamanızı Yükseltin

Arama motoru algoritmaları, arama yapan kişiye aradıkları kesin sonuçları sunabilmek için geliştirilen bilgisayar programlarıdır. Arama motorları, web sayfalarını bulmak, tanımlamak ve hangi anahtar kelimede görüneceğine karar vermek için algoritmalarına güvenir.

Arama motorları nasıl çalışır sorusuna üç adımda cevap verelim:

1. Tarama

Tarama, arama motoru botlarının web sitenizi ziyaret ederek, UI & UX tasarımdan yayınlanan içeriklere kadar tüm sayfaları keşfetmesi sürecidir.

Arama motorları, internette yayınlanan yeni web sayfalarını bulmak ve bu sayfalarla ilgili bilgileri kaydetmek için düzenli olarak arama motoru botlarını dünyada yer alan tüm web sitelerine gönderir. Bu botlara, “web tarayıcıları” veya “örümcekler” de denmektedir.

Arama motoru botlarının amaçları, oluşturulan yeni web sayfalarını keşfetmek ve var olan web sayfalarında yapılması gereken düzenli değişiklikleri kontrol etmektir. Bu işlemleri yaparken, daha önce keşfettikleri site içi bağlantıları izleyerek web sayfalarını tarar.

Bu nedenle, web sitenize eklediğiniz yeni bir sayfayı anasayfanızda göstermek akıllıca bir strateji olacaktır. Anasayfanızla bağlantılı sayfalar, arama motoru botları tarafından hızlıca keşfedilebilir.

2. İndeksleme

İndeksleme, web sayfalarının hangi konularla ilgili olduğunu tespit etme ve arama motoru veritabanına sayfanızı kaydetme işlemidir. Bir arama motorunun taradığı içeriği kullanıp kullanmayacağına karar vermesi de indeksleme sırasında belli olmaktadır.

Taranan bir web sayfası, arama motoru botları tarafından değerli görülüyorsa, dizine eklenecek ve sonuç sıralamalarında gösterilecektir.

Değerli içerik sunan web siteleri arama motorlarının sayfa dizinlerinde yer alırken, kalitesiz içerikler arama motoru sonuçlarında gösterilmez.

Kalitesiz içerik derken neyi mi kastediyorum?

  • Mobil uyumlu olmayan içerikleri,
  • Özgün olmayan içerikleri (spam olarak kabul edilir),
  • Herhangi bir geri bağlantısı olmayan sayfaları ve
  • Herhangi bir bağlantı çıkışı olmayan sayfaları.

3. Sıralama

Sıralama, arama motoru veritabanına kaydedilen ilişkili parametreler doğrultusunda, arama sonuçlarında web sayfanızın konumlandırılmasıdır.

Arama motorları, herhangi bir anahtar kelime için arama yapan kişilere, bulabilecekleri en faydalı ve en alakalı sonuçları vermek için web sayfalarını sıralar.

Sıralama, yalnızca tarama ve dizine ekleme adımları tamamlandıktan sonra gerçekleşebilir. Dolayısıyla, arama motoru sonuç sıralamasında görünüm elde etmek istiyorsanız, beklemeniz gerekir.

Arama motorlarının web sayfalarını sıralarken baktığı 200’den fazla gereksinim vardır. Bu gereksinimlerinden en önemlileri;

  • Başlık etiketinde anahtar kelime kullanımı,
  • İçeriğin kopya olup olmadığı,
  • Web sayfasının yüklenme hızı,
  • Web sayfasının mobil uyumluluk durumu ve
  • Domain otoritesidir.

Google Algoritmaları

google da çalışan iki geliştirici yazılımcı web site botlarının getirdiği bilgileri veritabanına aktarıyor

Google’ın kullandığı ana algoritmaya Google Hummingbird adı verilir. Arama motoru sonuçlarının nasıl sıralanacağına karar vermekten sorumludur.

Ekstra: 2018’de Google, BERT algoritmasını tanıttı. BERT, daha iyi sonuçlar elde etmek için arama yapan kişinin dili hakkında daha fazla bilgi edinilmesi için geliştirilen bir yazılımdır.

Ayrıca Google, RankBrain adı verilen bir makine öğrenimi yetisine sahip arama motoru alt algoritmasını kullanır. RankBrain, aşina olmadığı bir kelime veya kelime öbeğiyle karşılaşırsa, daha iyi anlamak için yapay zeka kullanır.

Google’ın arama motoru çubuğuna yazdığınız bir sorgu için arama önerisi yapması RankBrain sayesinde gerçekleşir. Yani, arama sorguları olağandışı oladığında bile sonuç gösterimi sağlanabilir.

RankBrain, anahtar kelime için optimize edilmiş en iyi sonucu bulmanın yanı sıra, kullanıcı memnuniyeti sağlayan ve kullanıcının beklediği sonuçları sunan web sitelerini sonuç sıralamalarında yükselterek ödüllendirir.

İyi SEO stratejileri, RankBrain’in sıralama faktörlerini iyi bir şekilde anlayıp geliştirilenlerdir. İşte, 3 etkili SEO statejisi;

1. 3 veya daha fazla kelime içeren anahtar kelimeleri hedefleyin.

2. Meta başlıklarınızı ve açıklamalarınızı ilgi çekici tutun.

Böylece, tıklama oranınızı artırabilirsiniz. Tıklama oranı, web sayfanıza tıklayan kişilerin, web sayfanızı Google arama sonuçlarında gören kişilere oranıdır.

Tıklama oranı nedir?

Meta başlık ve açıklamalarınızda anahtar kelimenizi içeren call to action kullanımı, parantez kullanımı, rakamsal veya yüzdesel ifade kullanımı tıklama oranınızı artıracak bazı yöntemlerdir.

Call to action nedir?

Web sayfanız Google arama motoru sonuçlarında nasıl görünüyor? Ücretsiz test edebilirsiniz.

3. Kullanıcılarınızın web sitenizde kalma süresini artırın ve web sayfanızın hemen çıkma oranını düşürün.

Hemen çıkma oranı nedir?

Arama motorları nasıl çalışır sorusuna özet bir cevap vermek gerekirse, üç önemli sıralama faktörüyle çalışır:

Bağlantılar – Farklı web sitelerinden olabildiğince geri bağlantı edinin ve site içi linklemelerinizi doğru yapın.

İçerik – Özgün ve kaliteli içerik üreterek ziyaretçilerinizin web sitenizde uzun zaman geçirmesini sağlayın.

RankBrain – Makine öğrenimine sahip arama motoru alt algoritmasını etkileyerek ödüllendirilin.

İlk sayfa sonuçlarında olmak istiyor; ancak, web sayfalarınızı nasıl optimize edeceğinizi bilmiyor musunuz? Hemen FastnTech ile iletişime geçerek SEO hizmeti alın.