Masaüstü aracınıza 14 günlük bir deneme ekliyorsunuz ve indirmeler artıyor. Satışlar artmıyor. Bir ay sonra bir forum başlığında, tek bir kayıt defteri anahtarını silmenin denemeyi yeniden başlattığını ve bunu her açılışta yapan küçük bir betiği bulursunuz. En aktif kullanıcılarınızdan bazıları ilkbahardan beri denemelerinin ilk gününde takılı kalmış.
Bu rehber, sağlam bir masaüstü yazılım ücretsiz denemesinin nasıl kurulacağını anlatıyor: üç deneme türü ve her birinin ne zaman uygun olduğu, müşterinin makinesinde zorlanan denemelerin neden sıfırlandığı, bir donanım kimliğine bağlı sunucu tarafı deneme anahtarlarının nasıl çalıştığı ve bir deneme kullanıcısını sürtünme yaşatmadan ücretli lisansa nasıl taşıyacağınız. Sonunda, kullandığınız lisans sistemine uyarlayabileceğiniz açıklayıcı bir C++ örneği var.
Masaüstü yazılıma ücretsiz deneme nasıl eklenir
Kısa cevap: denemeyi bir zamanlayıcı değil, bir lisans olarak düşünün. Yeni bir kullanıcı uygulamayı başlattığında, lisans sunucunuzdan bir deneme ister. Sunucu bu cihazın daha önce deneme alıp almadığını kontrol eder; almamışsa, cihazın donanım kimliğine bağlı süreli bir lisans anahtarı verir. Her açılışta bu anahtar, ücretli bir anahtar gibi sunucuda doğrulanır. Deneme bittiğinde sunucu anahtarı kabul etmeyi bırakır ve kullanıcı aynı makinede ücretli bir anahtar girer.
Bu rehberdeki diğer her şey bu modelin ayrıntısıdır: hangi sınırların uygulanacağı, bir cihazın nasıl tanımlanacağı, ağ kapalıyken ne yapılacağı ve denemenin son günlerinin nasıl satışa dönüştürüleceği.
01Deneme + cihaz parmak izi isteği
İlk açılış, kayıtlı anahtar yok
02Bu cihaz daha önce deneme almış mı?
Karma donanım kimliğiyle arama
03Hayır: 14 günlük deneme anahtarı ver
Evet: reddet ve satın almayı öner
04Her açılışta: anahtar + parmak izi
05Son tarihe kadar geçerli, sonra reddedilir
Son tarih sunucu saatine göre belirlenir, PC saatine göre değil
Süreli, özellik sınırlı ve kullanım sınırlı denemeler
Bir denemeyi sınırlamanın üç yaygın yolu var ve birçok ürün bunlardan ikisini birleştirir. Doğru seçim, yeni bir kullanıcının yazılımınızın değerini gösterdiği ana ne kadar hızlı ulaştığına bağlıdır.
| Deneme türü | Nasıl sınırlar | En uygun olduğu durum | Tipik kötüye kullanım |
|---|---|---|---|
| Süreli | Sabit bir gün sayısı boyunca tam özellikler | Değer birkaç oturumda ortaya çıkar | Sayacı sıfırlamak |
| Özellik sınırlı | Temel özellikler ücretsiz, premium özellikler kilitli | Kullanıcıların aracı benimsemesi haftalar sürer | Özellik bayrağını yamalamak |
| Kullanım sınırlı | Belirli sayıda dışa aktarma, çalıştırma ya da proje | Her kullanımın net, sayılabilir bir değeri var | Sayacı sıfırlamak |
Süreli deneme en tanıdık olanıdır: her şeyin açık olduğu 7, 14 ya da 30 gün. Doğal bir son tarih yaratır ve dönüşümü destekler, ancak en sık sıfırlanan türdür. Bazen freemium olarak da anılan özellik sınırlı deneme hiç sona ermez, ancak değerli özellikleri ücretli bir anahtarın arkasında tutar. Değerlendirmesi uzun süren kullanıcılara karşı daha yumuşaktır; zayıf noktası, bir özelliğin açık olup olmadığını belirleyen bayraktır. Kullanım sınırlı deneme eylemleri sayar, örneğin on dışa aktarma ya da üç işlenmiş proje, ve her eylemin belirgin bir değeri olan araçlara uygundur.
Hangisini seçerseniz seçin aynı kural geçerlidir: sınır, kullanıcının düzenleyemeyeceği bir yerde uygulanmalıdır. Süre sınırı için bu sunucunun saatidir. Özellik sınırı için premium mantık ya da veriler yalnızca ücretli anahtarlar için sunucudan gelmelidir. Kullanım sınırı için sayaç sunucuda tutulmalıdır.
Yerel deneme sayaçları neden sıfırlanır
Sızan denemelerin çoğu aynı şekilde uygulanmıştır: ilk açılışta uygulama PC'de bir yere kurulum tarihi yazar ve sonraki her açılışta bu tarihi sistem saatiyle karşılaştırır. Bu tasarımın her parçası kullanıcının kontrolündedir.
- Kayıt defteri ve dosya işaretleri. Kurulum tarihi bir kayıt defteri anahtarında, bir AppData dosyasında ya da gizli bir dosyada durur. Biri bunu bir dosya ya da kayıt defteri izleyicisiyle bulduğunda, silmek yeni bir deneme başlatır. Adını gizlemek bunu yalnızca geciktirir.
- Yeniden kurulum. İşaretlerinizi kaldıran bir kaldırıcı, deneme geçmişini de kaldırır. İşaretleri geride bırakan bir kaldırıcı ise dosya artıklarıyla ilgili şikâyetlere yol açar ve işaretler yine de bulunup silinebilir.
- Saat değişiklikleri. Deneme sistem saatine göre karşılaştırma yapıyorsa, tarihi geri almak onu uzatır. Geriye doğru saat sıçramalarını tespit etmek biraz yardımcı olur, ama kullanıcı saati uygulamanız hiç çalışmadan önce de kontrol eder.
- Sanal makineler ve anlık görüntüler. Uygulamayı bir sanal makineye kurun, bir anlık görüntü alın ve deneme bittiğinde geri yükleyin. Her geri yükleme taze bir ilk açılıştır ve makinede bunun aksini hatırlayan hiçbir şey yoktur.
- Kontrolü yamalamak. Mükemmel bir işaret olsa bile karşılaştırma sizin ikili dosyanızda çalışır. Bir korsan tek bir koşullu atlama komutunu değiştirir ve deneme hiç bitmez.
Deneme PC'de saklanır
- Kurulum tarihi kayıt defterinde ya da dosyada
- Sistem saatiyle karşılaştırılır
- Yeniden kurulum ya da VM anlık görüntüsüyle sıfırlanır
- Karar ikili dosyada verilir
Deneme sunucu tarafından verilir
- Deneme anahtarı cihaz başına kaydedilir
- Son tarih sunucu saatine göre kontrol edilir
- Yeniden kurulum aynı cihazı bulur
- Karar sunucuda verilir
Bu, yerel işaretlerin işe yaramadığı anlamına gelmez. Makul bir ilk ipucudur ve uygulamanın ağa ulaşmadan önce anlamlı bir mesaj göstermesini sağlarlar. Yalnızca denemenin hâlâ geçerli olup olmadığına karar veren şey olamazlar. Aynı argüman lisanslamanın genelinde de geçerlidir ve istemci tarafı koruma ile sunucu tarafı gizliler bunu daha derinlemesine ele alır.
Donanım kimliğine bağlı sunucu tarafı deneme anahtarları
Sunucu tarafı bir deneme, yerel sayacın yerini, kısa ömürlü olan gerçek bir lisans anahtarıyla değiştirir. Anahtarı sunucunuz oluşturur, son tarihi sunucunuzda saklanır ve onu talep eden cihazın donanım parmak iziyle bağlıdır. Bu, HWID kilidinin ne olduğu ve nasıl çalıştığı bölümünde anlatılan mekanizmanın, yıllar yerine günler geçerli bir anahtara uygulanmış hâlidir.
- 01
Cihazın parmak izini al
İlk açılışta uygulama, anakart ve işlemci kimlikleri gibi kararlı donanım bileşenlerinin bir özetini hesaplar. Yalnızca özeti gönderin, ham değerleri asla.
- 02
Deneme iste
Uygulama parmak izini, şifreli ve imzalı bir kanal üzerinden lisans sunucunuza gönderir ve bir deneme ister.
- 03
Deneme geçmişini kontrol et
Sunucu parmak izi arar. Bu cihaz hiç deneme almamışsa, sabit süreli bir deneme anahtarı oluşturur ve onu parmak iziyle bağlar. Almışsa reddeder.
- 04
Her açılışta doğrula
Uygulama her açılışta deneme anahtarını ve parmak izini gönderir. Sunucu son tarihi kendi saatiyle karşılaştırır, dolayısıyla PC'deki tarihi değiştirmenin hiçbir etkisi yoktur.
- 05
Yalnızca uygulamanın ihtiyaç duyduğunu serbest bırak
Yalnızca geçerli bir oturum, uygulamanın bağlı olduğu yapılandırmayı, string'leri ya da dosyaları alır. Yamalanmış bir kontrol, çalıştıracak hiçbir şeyi olmayan bir program bırakır.
Geçmiş, cihaz üzerinde saklanan herhangi bir şeye değil cihaza göre tutulduğu için uygulamayı yeniden kurmak, AppData'yı temizlemek ya da kayıt defteri girdilerini silmek, hepsi sunucudan aynı yanıta geri döner. Son adım yamalanmış atlamayı durdurur: Deneme sürümü, yalnızca kimliği doğrulanmış bir oturumun aldığı verilere bağlıysa, kontrolü kaldırmak verileri de kaldırır.
Cihaz başına bir deneme: sınır durumlarını ele almak
„Cihaz başına bir deneme“ gerçek kullanıcılar gelene kadar basit görünür. Neredeyse her üründe birkaç durum ortaya çıkar ve her biri, destek talebi açılmadan önce, lansmandan önce bir karar gerektirir.
- Sanal makineler. Yeni bir sanal makine yeni bir parmak izi üretir ve anlık görüntü kötüye kullanımı tam olarak böyle işler. Sanallaştırılmış ortamları tespit edip orada denemeyi reddetmek ya da e-posta istemek açığın çoğunu kapatır. Bazı meşru kullanıcıların sanal makinelerde çalıştığını unutmayın; bu yüzden reddetmek mi yoksa yalnızca daha fazla bilgi istemek mi gerektiğine karar verin.
- Donanım değişiklikleri. Denemenin ortasında sistem diskini değiştiren bir kullanıcı yeni bir parmak izi üretebilir. Parmak izini birkaç kararlı bileşenden oluşturmak ve kısmi eşleşmeye tolerans göstermek, onu aynı denemede tutar.
- Paylaşılan ve laboratuvar makineleri. Bir sınıf PC'si, önceki bir öğrencinin denemesini taşıyor olabilir. Destek ekibinize ikinci bir denemeyi elle verebilecekleri bir yol sunun.
- İkinci değerlendirmeler. Sürüm 2'yi deneyen biri, sürüm 4'e yeniden bakmayı hak edebilir. Ana sürüm başına bir deneme politikası ya da elle uzatma, bir açık bırakmadan bunu çözer.
- Cihazların yanı sıra hesaplar. Deneme başladığında e-posta istemek, kontrol edilecek ikinci bir kimlik ekler ve kullanıcıya ulaşmanın bir yolunu verir. Ancak sürtünmeyi de artırır; kazandırdığından fazla kayıt kaybettirip kaybettirmediğini test edin.
C++ ile bir deneme akışı, adım adım
Aşağıdaki örnek, deneme mantığının bir C++ uygulamasında nerede durduğunu gösteriyor. Belirli bir SDK'ya bağlanmadan yapıyı net göstermek için genel bir lisans istemcisi için yer tutucu adlar kullanır. Desen C#'ta da aynıdır: anahtarı iste ya da yükle, sunucuda doğrula ve doğrulama başarısız olduğunda erişimi kapat.
// Yalnızca örnek amaçlıdır. Licensing::*, LoadStoredKey, SaveKey ve UI
// fonksiyonları, lisans SDK'nız ve kendi kodunuz için yer tutuculardır,
// qPapel Auth API adları değildir.
int main()
{
Licensing::Client lic; // şifreli, imzalı kanal
std::string fingerprint = lic.HardwareId(); // cihazda özetlenmiş
std::string key = LoadStoredKey(); // varsa ücretli ya da deneme anahtarı
if (key.empty())
{
auto trial = lic.RequestTrial(fingerprint);
if (!trial.granted)
{
ShowBuyScreen("A trial was already used on this device.");
return 0;
}
key = trial.key; // kısa ömürlü, HWID'ye bağlı
SaveKey(key); // bir ipucu, gerçeğin kaynağı değil
}
auto session = lic.Validate(key, fingerprint); // süre sunucuda kontrol edilir
if (!session.valid)
{
ShowBuyScreen(session.reason); // süresi dolmuş, yasaklı, yanlış cihaz
return 0; // başarısızlıkta kapat
}
if (session.isTrial && session.daysLeft <= 3)
ShowUpgradeBanner(session.daysLeft); // bitmeden önce hatırlat
auto config = session.FetchConfig(); // yalnızca geçerli oturumlar için
RunApp(config, session.isTrial);
}Diğerlerinden daha çok önem taşıyan üç ayrıntı var. Diskte saklanan anahtar yalnızca bir kolaylıktır; bu yüzden silmek, sunucunun bilinen bir cihaz için reddedeceği yeni bir deneme isteğine yol açar. Süre sunucuda karşılaştırılır, dolayısıyla PC saati önemsizdir. Ve uygulamanın ihtiyaç duyduğu yapılandırma yalnızca geçerli bir oturumla gelir; bu da session.valid değerini yamalamayı anlamsız kılar. C++ kimlik doğrulama rehberi ve C# karşılığı oturumun kendisini daha ayrıntılı anlatır.
Denemeyi ücretli lisansa dönüştürmek
Kötüye kullanımı durdurmak, aksi halde kaybedeceğiniz geliri korur. Gelir ise dönüşümden gelir. Mekanik basittir: kullanıcı ücretli bir anahtar satın alır, aynı makinede girer ve uygulama deneme anahtarının yerine onu doğrular. Kaç kullanıcının gerçekten bunu yaptığını ayrıntılar belirler.
- Kullanıcıların uygulama içinden satın almasına izin verin. Doğru ürünü seçili olarak ödeme sayfanızı açan bir „Şimdi satın al“ düğmesi, arama adımını ortadan kaldırır. Anahtarı ödemeden hemen sonra teslim edin ki kullanıcı uygulama açıkken yapıştırabilsin.
- Çalışmalarını koruyun. Kullanıcının deneme sırasında oluşturduğu her şey, yükselttikten sonra da orada olmalı. Satın alma anında bir projeyi kaybetmek, bekleyen bir iadedir.
- Ücretli anahtarı aynı cihaza bağlayın. Deneme, kullanıcının hangi makineyi kullandığını zaten kanıtladı; bu yüzden ücretli anahtar, ilk doğrulamada ek bir adım olmadan bağlanabilir.
- Hemen karar vermek için bir neden sunun. Denemenin son günlerinde ya da bittikten sonra bir hafta geçerli bir kupon, son tarihe somut bir fayda verir.
- Süresi dolan denemeleri zarifçe yönetin. Deneme bittiğinde, satın alarak neyi koruyacaklarını ve bunu yapmanın net yolunu gösterin; çıplak bir hata mesajı yerine.
Kalıcı lisanslar yerine abonelik satıyorsanız, deneme ayrı bir anahtar olmak yerine planın ilk dönemi olur. Yazılımlar için abonelik lisanslama, yenilemelerin ve sürenin anahtar doğrulamasıyla nasıl etkileştiğini açıklar.
Dönüşüm sağlayan e-postalar ve uygulama içi hatırlatmalar
Çoğu deneme kullanıcısı ürününüze karar vererek vazgeçmez. Unuturlar. Az sayıda, doğru zamanlanmış hatırlatma (uygulamada ve bir adres topladıysanız e-posta ile) bunların bir kısmını geri kazandırır.
Gün 0
Hoş geldiniz
Çoğu kullanıcının geldiği göreve tek bir bağlantı
Gün 3
İlk sonuç
Henüz bir görevi bitirmemiş kullanıcılar için ipucu
Gün 11
Üç gün kaldı
Uygulama içi banner ve fiyatı içeren e-posta
Gün 14
Deneme sona erdi
Net yükseltme yolu, çalışmalar korunur
Gün 17
Son hatırlatma
İsteğe bağlı süreli kupon
Mesajları yalnızca takvime değil, kullanıcının yaptığına göre kurun. Beş proje dışa aktarmış biri bir fiyata ve bir satın alma düğmesine ihtiyaç duyar. Kurulumu hiç bitirmemiş biri ise geri sayım değil yardıma ihtiyaç duyar. Sunucu her doğrulamayı gördüğü için kimin aktif olduğunu zaten biliyorsunuz; bu, her açılma oranından daha kullanışlıdır. E-posta sayısını az tutun ve her zaman bir abonelikten çıkma yolu ekleyin.
PapelShip ile denemeleri yürütmek
qPapel Auth, bu rehberin C, C++ ve C# yazılımları için dayandığı sunucu tarafı parçaları sunar: sunucuda kontrol edilen lisans anahtarları, sıfırlama bekleme süreli HWID kilidi, şifreli ve imzalı oturumlar ve yalnızca geçerli bir kontrolden sonra teslim edilen sunucu tarafı string'ler ve dosyalar. Sanal makine koruması anlık görüntü sorununa yardımcı olur; uzaktan ayarlar ise koruma ayarlarını yeniden derlemeden güncelleme bölümünde anlatıldığı gibi, yeni bir sürüm göndermeden davranışı ayarlamanıza izin verir.
Satış tarafında PapelShip mağazası ödemeden hemen sonra lisans anahtarlarını teslim eder, deneme sonu teklifleri için kuponları destekler ve tek bir ödeme sayfasında kart ve kripto ödemelerini kabul eder. Planlar ücretsiz başlar; ücretler için fiyatlandırmaya bakın ya da parçaların nasıl bir araya geldiğini görmek için yazılım lisanslama genel bakışına göz atın. Anahtarları nasıl satacağınızı hâlâ çözmeye çalışıyorsanız, yazılım lisanslarını çevrim içi nasıl satarsınız iyi bir başlangıç noktasıdır.
Sıkça sorulan sorular
Gerektiğinde biten denemeler
Bir deneme, kullanıcıya ve kendinize verilmiş bir sözdür: bir süre tam erişim, sonra bir karar. Sunucuda uygulamak, cihaza bağlamak ve yükseltmeyi tek bir adım yapmak, bu sözü iki yönde de tutar. Dürüst kullanıcılar adil bir değerlendirme alır; sıfırlama betiği arayanlar ise makinelerinde sıfırlanacak hiçbir şey olmadığını görür.
qPapel Security Team
Lisanslama ve yazılım koruması