Როგორ გავაუმჯობესოთ ტრაფიკი მობილური თამაშის დროს
1) რატომ უნდა მოხდეს ტრეფიკის ოპტიმიზაცია
ნაკლები შეფერხება სესიაზე უფრო სტაბილურია და უფრო მაღალი შენარჩუნება.
მონაცემთა დაზოგვა უფრო დაბალია, ვიდრე მომხმარებლის ხარჯები და „შემცირებული ტარიფის“ რისკი.
სწრაფი დაწყება - უფრო მეტი თამაშის დაწყება იარაღით/რეკლამით.
სუსტი ქსელის საიმედოობა (3G/კაფე-Wi-Fi/როუმინგი).
2) მეტრიკები, რომელთა მონიტორინგი ნამდვილად ღირს
First Contentful Paint (FCP )/Largest Contentful Paint (LCP): როდესაც მოთამაშემ „დაინახა“ და როდესაც „შეგიძლიათ თამაში“.
INP/TBT: ინტერფეისის პასუხი.
ტრაფიკი/სესია (MB) და მწვერვალი ბიტრაიტი.
RTT/gitter/ზარალი (განსაკუთრებით ცოცხალი თამაშებისთვის/ნაკადებისთვის).
ქეში ჰიტები: განაცხადის ქეშის მოთხოვნების წილი/CDN.
3) ქსელის დასტა: ძირითადი ჰიგიენა
ჩართეთ HTTP/2/HTTP/3 (QUIC) მულტიპლექსირებისთვის და პაკეტების დაკარგვის უფრო გამძლე მუშაობისთვის.
TLS სესიის აღდგენა და 0-RTT (H3- სთვის) - ნაკლები ჩატი ხელებზე.
DNS-prefetch/Preconnect in CDN და თამაშის პროვაიდერები.
კომპეტენტური ქეშის პოლიტიკა: 'Cache Control', 'ETag', ასეტების ვერსია.
4) CDN და გეოგრაფია
განათავსეთ სტატიკა და მედია CDN- ზე PoP- ით მომხმარებელთან ახლოს.
ჩართეთ გამოსახულების აღდგენა/' accept '- ბზინვარება CDN- ზე (WebP/AVIF).
ცოცხალი ვიდეოსთვის - მრავალი ბიტიანი edge პროფილი (HLS/DASH).
5) შეკუმშვა და ფორმატები (რაც ნამდვილად დაზოგავს ათეულობით პროცენტს)
სურათები: WebP/AVIF + 'srcset/sizes', sprites და SVG ხატები.
შრიფტები: WOFF2, subset სასურველ გლიფებზე, 'font-display: swap'.
ვიდეო: H.264/HEVC/AV1 (სადაც ის ხელმისაწვდომია), პლაკატის ნაცვლად პლაკატი.
ტექსტი/JSON: Brotli (br)> Gzip, ჩართეთ CDN/სერვერზე.
JS/CSS: მინიშნება, „მკვდარი“ კოდის წაშლა, კოდი-სპლიტი.
6) თამაშის ტილო: სლოტები, მინი თამაშები, ტილო/WebGL
დაანგარიშეთ ადაპტირებული DPR: 'მოწყობილობები PixelRatio' შეზღუდეთ 1-მდე. 5-2 მობილზე - შენარჩუნებულია სიმკვეთრე, ტრაფიკი/CPU ეცემა.
Texture atlases და ტექსტურის შეკუმშვა (ASTC/ETC/BC, სადაც მხარს უჭერს) ნაკლებად დატვირთულია.
ასეტების ზარმაცი ტუმბო დონეზე/ეკრანებზე და არა „ყველაფერი დაუყოვნებლივ“.
ამოიღეთ „მძიმე“ ჩრდილები/ფილტრები, შეზღუდეთ ანიმაციის სიხშირე 30-45 fps სუსტი მოწყობილობებზე.
Iframe-slots- ისთვის: დაუკავშირდით პროვაიდერებს მსუბუქი ასეტებისა და მხოლოდ კრიტიკული რესურსების პაკეტის წინასწარი დატვირთვის შესახებ.
7) ცოცხალი თამაშები და ნაკადები: დაზოგეთ მეგაბაიტები ტკივილის გარეშე
ადაპტირებული ბიტრაიტი (ABR) 360p/480p/720p რეიდებით; პროფილის სიგანე/RTT არჩევანი.
Low-Latency HLS/DASH მხოლოდ იქ, სადაც საჭიროა; ნუ ჩართავთ LLLC ყველაფერს.
აუდიოჩანაწერი 64-96 kbps მეტყველებისთვის - უფრო ხშირად საკმარისია.
გამონაყარი. ავტომატური ლობი: აჩვენეთ პლაკატი/ანიმაციური GIF/webm.
8) კომუნიკაცია რეალურ დროში
WebSocket: ორობითი ოქმები, პაკეტის შეტყობინებები, heartbeat ერთხელ 25-30 წამში.
WebRTC მონაცემები - მხოლოდ ვიწრო შემთხვევებისთვის; თავიდან აიცილეთ ზედმეტი NAT შემოვლითი, თუ ეს არ ეხება მედიას.
შეკუმშეთ დატვირთვა (protocol buffers/Country Pack), ნუ მართავთ „ცხიმიან“ JSON.
9) PWA/Service Worker: მობილური ფარი
App Shell: ქეში ქუდი/ნავიგაცია და სკელეტონი - მყისიერი პირველი ეკრანი.
Runtime caching: 'Stale-While-Revalidate' სურათებისთვის, 'Network First' API- სთვის TTL- სთან.
Background sync: დაგვიანებული ტელემეტრია/ლოჯისტიკა, ურთიერთქმედების ბლოკირების გარეშე.
Offline fallback: გასაგები ეკრანები სიცარიელის ნაცვლად (Retrais დაზოგვა და დამატებითი მოთხოვნები).
10) ჭკვიანი ჩამოტვირთვა და პრიორიტეტები
Critical CSS inline, დანარჩენი მოთხოვნით.
'defer/async' სკრიპტებისთვის, import () მოგვიანებით ეკრანებისთვის.
თამაშების Lazy-load სიები (პაკეტის 20-30 ბარათი), „IntersectiObserver“.
Prefetch განზრახვით: როდესაც მომხმარებელი ბარათზე დარჩა, აიღეთ თამაშის ასეტები.
11) ბილინგი და სალარო: ტრეფიკი ასევე მნიშვნელოვანია
გამოიყენეთ სისტემის გადახდის დიალოგები (Apple/Google Pay) - ისინი უფრო ეკონომიური და სტაბილურია.
მინიმუმამდე დაიყვანეთ რეციდივები და დამატებითი ანალიტიკური პიქსელები გადახდის ნაბიჯებზე.
კრიპტომოდულში არ დაიტვირთოთ ყველა ქსელი/ხატი - მხოლოდ შერჩეული ქსელი/მონეტა.
12) ტელემეტრია და A/B „შეფერხების“ გარეშე
შეაგროვეთ მხოლოდ საჭირო მოვლენები, გააგზავნეთ და გაგზავნეთ N- წამში/ზომით.
გამორთეთ debag-logs გაყიდვაში, მოაყარეთ ველები ღონისძიებებში.
A/B დროშები - მსუბუქი remote-config- ის საშუალებით, არ გადაიტანოთ მეგაბაიტიანი სქემები.
13) პრაქტიკა მოთამაშეებისთვის (სწრაფი ტრაფიკის მოგება)
iOS/Android- ზე ჩართეთ Data Saver/ტრაფიკის დაზოგვა.
თუ ეს შესაძლებელია, ითამაშეთ Wi-Fi 5/6; მობილური ქსელი თავიდან აიცილეთ „1-2 ჯოხი“ - უფრო მაღალი, ვიდრე ზარალი.
გამორთეთ ვიდეო/გადახედვა პარამეტრებში.
Telegram- სა და ბრაუზერში გაასუფთავეთ ქეში ყოველ ორ კვირაში ერთხელ - მაგრამ არა ხშირი თამაშის წინ (ქეში ეხმარება).
უყურეთ პროგრამის განახლებას/PWA - ახალი ვერსიები ხშირად უფრო ეკონომიურია.
14) ჩეკის სია დეველოპერებისთვის/პროდუქტისთვის (ერთი გვერდი)
1. HTTP/2/3, TLS 1. 3, preconnect CDN/თამაშის დომენები.
2. CDN სურათების გადატვირთვით, AVIF/WebP, Brotli ტექსტისთვის.
3. App Shell + SW: offline-fallback, runtime-кеш, background-sync.
4. ასეტების ზარმაცი დატვირთვა, კოდი სპლიტი, კრიტიკული CSS inline.
5. დინამიური DPR (2), შეკუმშული ტექსტურები, 30-45 fps სუსტი.
6. ABR ვიდეო სიგანე/RTT, გამოცემა. ავტომატური ლობი.
7. WebSocket პაკეტით; შეკუმშული პროტოკოლი მონაცემებისთვის.
8. ტელემეტრია ბრძოლებით; გამორთული prod debag.
9. სალარო ზედმეტი რედაქციის გარეშე; სისტემის გადახდის დიალოგები.
10. მონიტორინგი: LCP/INP/ტრაფიკი/სესია, ქეშის ჰიტები, RTT/ზარალი.
15) ხშირი შეცდომები და როგორ შეიძლება მათი გამოსწორება
ვიდეოკლიპების/ნაკადების ჩამონათვალში ჩანაცვლება პლაკატებით/გადახედვით.
გადაიტანეთ 3 × ასეტი ყველა მოწყობილობაზე და გამოიყენეთ 'srcset '/DPR პროფილები.
გიგანტური JS-bandles - დაყოფა მარშრუტებზე, unused deps- ის მოხსნა.
ნულოვანი ქეშის კონტროლი TTL/ETag პარამეტრებისა და ვერსიების პარამეტრების შესახებ.
Chat/telemetria spament - batchit, გაზარდეთ heartbeat ინტერვალი.
ყველაფერი ერთ WebSocket არხზე (თამაში + ჩატი + ანალიტიკა), გაიზიარეთ კრიტიკულად.
16) მინი ნიმუშები, რომლებიც „ამინდს აკეთებენ“
ღილაკი „ვიდეოს ხარისხის შემცირება“ live მაგიდებზე ცუდი ქსელის ქვეშ.
Placeholder ყდა თამაშებისთვის რეტინის დატვირთვამდე.
ბოლო სესიის (სახელმწიფო ქეშის) შენარჩუნება ნაკლებია, ვიდრე განმეორებითი მოთხოვნა.
ბოლო გაშვებული მაგიდისთვის deeplink არის მინუს ორი ეკრანი და ასეტების პაკეტი.
17) FAQ
ტრაფიკის ოპტიმიზაცია გააუარესებს ხარისხს?
თუ ადაპტირდებით (DPR/ABR/' srcset ') - არა: მიეცით საუკეთესო ხარისხის/სიჩქარის ბალანსი მოწყობილობასა და ქსელში.
აუცილებელია თუ არა ყველა მომხმარებელმა ჩართოს Low-Latency რეჟიმი?
არა. ის უფრო ძვირია, ვიდრე ტრაფიკი და მგრძნობიარეა ზარალის მიმართ. დატოვეთ ტურნირის/ლაივ შემთხვევები.
PWA მშობლიური კლიენტის ნაცვლად - დაბალი ტრაფიკი?
ხშირად დიახ: ნაკლები SDK და ფონის ნაკადები, პლუს SW ქეში. მაგრამ ეს დამოკიდებულია განხორციელებაზე.
რამდენი დაზოგავს AVIF/WebP?
საშუალოდ, 25-45% წინააღმდეგია JPEG/PNG ხარისხის შესამჩნევი დაკარგვის გარეშე.
ყოველთვის უნდა შემცირდეს DPR?
დინამიურად შეამცირეთ სუსტი მოწყობილობები/დაბალი ქსელი; ფლაგმანებზე Wi-Fi 6 შეგიძლიათ შეინახოთ 2. 0.
ტრაფიკის ოპტიმიზაცია არ არის „ზედიზედ ყველაფრის შემცირება“, არამედ მოწყობილობის, ქსელის და სცენარის ხარისხისა და მოცულობის ადაპტირება. შეაერთეთ სწრაფი ქსელის დასტის (HTTP/3, CDN, ქეში), ჭკვიანი ასეტები (WebP/AVIF, ტექსტურები, ABR), სისუფთავე ტილოები და PWA ქეში, მოწყვეტილი ტელემეტრიული ხმაური - და მიიღეთ სწრაფი ჩამოტვირთვა, სტაბილური გეიმპლეი და ხელშესახდი მოთამაშეები ნაკლებად ეცემა ქსელის გამო, უფრო ხშირად ბრუნდებიან და პროდუქტი იმარჯვებს როგორც შენარჩუნებაში, ასევე ინფრასტრუქტურულ ხარჯებში.