در هر پروژهای که کد QR دارد، یک جای کار این سؤال پیش میآید: «کد ثابت بسازیم یا پویا؟»
پاسخ این است: در خیلی از موارد کد ثابت کافی است و نیازی به هیچ سرویسی ندارید. به چهار مورد در بخش ۳ دقیق میپردازیم. ولی در موارد دیگری، کد ثابت یک تصمیم برگشتناپذیر است که روی ده هزار برگ کاغذ چاپ میشود و دیگر قابل جبران نیست.
این مطلب فرق این دو موقعیت را روشن میکند، بعد هزینهی پنهانی را نشان میدهد که تقریبا هیچکس در موردش حرف نمیزند: اندازه کد ثابت از کد پویا بزرگتر است؛ نزدیک به دو برابر.
تفاوت در یک جمله
تفاوت در این است که «داخل کد چه نوشته شده؟»
کد ثابت، آدرس مقصد را عینا داخل خودش دارد. وقتی گوشی اسکنش میکند، همان آدرس را میخواند و میرود. هیچ واسطهای در میان نیست.
کد پویا، یک آدرس کوتاه واسط داخل خودش دارد. گوشی آن آدرس کوتاه را میخواند، به سرور میرسد، و سرور میگوید «برو به این مقصد». مقصد در پنل قابل تغییر است؛ خود کد تغییر نمیکند.
نتیجهی عملی این تفاوت سه چیز است: کد پویا بعد از چاپ قابل تغییر مقصد است، آمار اسکن را میدهد و کوچکتر است. کد ثابت هیچکدام را ندارد، ولی در عوض به هیچ سرویسی وابسته نیست و تا ابد کار میکند.
چهار جایی که کد ثابت کافی است
۱. رمز وایفای
کد وایفای مقصد اینترنتی ندارد؛ نام شبکه و رمز را مستقیم به گوشی میدهد. چیزی برای تغییردادن یا شمردن وجود ندارد. اگر رمز عوض شود، بههرحال باید کد جدید بسازید. اینجا کد ثابت دقیقا ابزار درست است.
۲. متنی که عوض نمیشود
شمارهی تماس، شمارهی شبا، مختصات جغرافیایی، شمارهی سریال یک قطعه، یک کارت تماس. اینها دادهاند، نه مقصد. تا وقتی خودشان عوض نشوند، کد هم عوض نمیشود.
۳. کدی که فقط روی صفحه زندگی میکند
کدی که در ایمیل، اسلاید، یا پست اینستاگرام است و هیچوقت چاپ نمیشود. اگر مقصد عوض شد، فایل را عوض میکنید و دوباره منتشر میکنید. تنها چیزی که از دست میدهید آمار اسکن است؛ اگر آمار برایتان مهم نیست، کد ثابت کافی است.
۴. چیزی که یک روز عمر دارد
بج یک همایش یکروزه، برگهی یک غرفه در یک نمایشگاه سهروزه، منوی یک ایونت. اگر واقعا مطمئنید دیگر سراغش نمیروید و آمارش را هم لازم ندارید، کد ثابت کارتان را راه میاندازد.
در مورد چهارم دقت کنید: «یک روز عمر دارد» را آدمها اشتباه تخمین میزنند. بج همایش سه ماه بعد هم روی میز کسی هست، و برگهی غرفه در کیف میماند. اگر شک دارید، پویا بسازید؛ هزینهی اضافیاش از هزینهی چاپ مجدد کمتر است.
چهار جایی که کد ثابت اشتباه است
۱. هر چیزی که چاپ میشود و تیراژ دارد
تراکت، بروشور، بستهبندی، بنر، برچسب، بلیت. اگر مقصد عوض شود که معمولا در عمل عوض میشود؛ تنها راه چاپ مجدد است. کد پویا این تصمیم را از برگشتناپذیر به قابلاصلاح تبدیل میکند.
۲. جایی که باید بدانید چقدر جواب داده
اگر سه کانال توزیع دارید و نمیدانید کدام یکی جواب میدهد، کد ثابت هیچ کمکی نمیکند. کد پویا به هر کانال یک کد جدا میدهد و بعد از دو هفته معلوم میشود پول کجا دارد هدر میرود.
۳. جایی که مقصد فصلی یا موقتی است
کدی که امروز به کمپین نوروز میرود و خرداد باید به مقصد دیگری برود. با کد ثابت، خرداد یک کد مرده دارید که کاربر را به صفحهی تمامشدهی نوروز میبرد و این از نبودن کد بدتر است.
۴. جایی که آدرس طولانی است
اگر مقصدتان آدرس بلندی با پارامترهای ردیابی است، کد ثابت ناچار است همهی آن را داخل خودش جا بدهد و بهشدت بزرگ و پرجزئیات میشود. همین موضوع بخش بعدی است.
هزینه پنهان کد ثابت: اندازه
این نکتهای است که در مقایسهها تقریبا هیچوقت گفته نمیشود، و برای طراحها مهمترین نکته کل این مطلب است.
کد QR داده را در مربعهای کوچکی ذخیره میکند که «ماژول» نام دارند. هر چه داده بیشتر باشد، ماژول بیشتری لازم است. و تعداد ماژولها در یک کد پلهای زیاد میشود.
برای اینکه چاپ قابلاعتماد باشد، هر ماژول باید دستکم حدود ششدهم میلیمتر باشد.
یعنی کد ثابت در یک مثال، برای اینکه همانقدر قابلاعتماد اسکن شود، تقریبا چهار برابر سطح بیشتری از طرح شما را میخورد. روی یک بنر این مهم نیست. روی یک کارت ویزیت یا یک برچسب، این تفاوت بین «جا میشود» و «جا نمیشود» است.
و نتیجهی دوم: در یک اندازهی ثابت، کدی که ماژول کمتری دارد ماژولهای بزرگتری دارد، و از فاصلهی دورتری خوانده میشود. برای بنر و استرابورد این یعنی کد پویا در همان اندازه از دورتر کار میکند.
ریسک کد پویا
کد پویا یک ضعف واقعی دارد: کد پویا به سرویسدهنده وابسته است. اگر سرویس تعطیل شود یا اشتراک تمام شود، آن آدرس واسط از بین میرود و همهی کدهای چاپشده با آن از بین میروند.
این ریسک قابل حذف نیست، ولی سه کار آن را تا حد زیادی کم میکند، و قبل از خرید از هر سرویسی باید همین سه را بپرسید:
• دامنهی کدها مال کیست؟ اگر لینک واسط روی دامنهی خودتان باشد، حتی با عوضشدن سرویسدهنده میتوانید همان آدرسها را به جای دیگری بفرستید و کدهای چاپشده زنده میمانند.
• داده کجاست و قابل خروجی گرفتن است؟ اگر فهرست کدها و مقصدهایشان را بهصورت فایل میتوانید بگیرید، در بدترین حالت قابل بازسازی است.
• سرویس روی چه زیرساختی است؟ سرویس خارجی میتواند با تحریم یا فیلتر از دسترس خارج شود، و آنوقت کد شما روی ده هزار بستهبندی دیگر کار نمیکند.
در مورد نخ: دادهها داخل ایران است، گزارشها قابل خروجی گرفتن است، و امکان استفاده از دامنهی اختصاصی وجود دارد. این سه با هم ریسک را به حد قابل قبول میرسانند — نه صفر، چون صفر نمیشود.
درخت تصمیم
سه سؤال، و جواب روشن است:
• کد چاپ میشود؟ اگر نه و مقصد را میتوانید در فایل عوض کنید، کد ثابت کافی است؛ مگر اینکه آمار بخواهید.
• مقصد ممکن است تا دو سال آینده عوض شود؟ اگر بله، کد پویا استفاده کنید. «ممکن است» کافی است؛ لازم نیست مطمئن باشید.
• لازم است بدانید چند نفر و از کجا اسکن کردند؟ اگر بله، کد پویا. درآوردن آمار اسکن با کد ثابت ممکن نیست.
و یک قاعدهی سرانگشتی برای وقتی که حوصلهی این سه سؤال را ندارید: اگر کد روی چیزی قرار میگیرد که تیراژ دارد و پول چاپ میدهید، پویا بسازید.
اگر کد ثابت چاپ کردهاید، حالا چه؟
این سؤال را زیاد میپرسند و جواب خوشایندی ندارد: کد ثابتِ چاپشده را نمیشود به پویا تبدیل کرد. مقصد داخل خود کد است و کد روی کاغذ است.
ولی یک راه نیمهکاره هست که در خیلی از موارد نجاتتان میدهد. اگر مقصد کد ثابت شما آدرسی روی دامنهی خودتان است، مثلا یک صفحه کمپین در سایت خودتان، میتوانید همان صفحه را در سمت سرور به جای دیگری ریدایرکت کنید. کد همان کد میماند، ولی کاربر به مقصد جدید میرود.
اگر مقصد کد ثابت، لینک مستقیم به یک شبکهی اجتماعی یا فایل روی سرویس دیگری بوده، این راه هم بسته است و چاپ مجدد تنها گزینه است.
سؤالهای پرتکرار
کد پویا کندتر است؟
یک پرش اضافه دارد که در عمل کسری از ثانیه است و کاربر متوجهش نمیشود. چیزی که کاربر متوجه میشود، سرعت باز شدن صفحه مقصد است، نه این پرش.
کد ثابت امنتر است؟
از یک جهت بله: به هیچ سرویسی وابسته نیست. از جهت دیگر نه: اگر مقصدش مشکلدار شود یا آدرس عوض شود، هیچ کاری نمیتوانید بکنید. امنیت واقعی در این است که مقصد روی دامنه خودتان باشد چه کد ثابت باشد چه پویا.
با کد پویا میشود مقصد را چند بار عوض کرد؟
هر چند بار که لازم باشد. همین دلیل وجودیاش است.
کد ثابت را رایگان از هر جایی میشود ساخت؟
بله، و این را صریح میگوییم. کد ثابت یک تبدیل ریاضی ساده است و ابزارهای رایگان زیادی آن را میسازند. فقط موقع ساخت، سطح تصحیح خطا و حاشیه سفید را درست بگذارید و فایل را برداری (SVG یا PDF) بگیرید، نه تصویر کمکیفیت.
آمار اسکن کد ثابت را نمیشود از جای دیگری درآورد؟
تا حدی. اگر مقصد کد یک صفحه اختصاصی در سایت خودتان با پارامتر ردیابی باشد، تعداد بازدید آن صفحه را در گوگل آنالیتیکس میبینید. ولی این آمار بازدید صفحه است، نه آمار اسکن؛ کسی که لینک را در پیامرسان فرستاده هم در همان عدد حساب میشود. و همین پارامترها آدرس را بلند و کد را بزرگ میکنند.
روی یک پروژه میشود هر دو را داشت؟
بله و خیلی وقتها درستترین کار همین است. رمز وایفای کافه را ثابت بسازید و کد منو را پویا. بلیت یک رویداد هم همینطور است؛ در صفحه کد QR روی بلیت دقیق توضیح دادهایم.
