Guideline 5.6: paywall-ul care îți face aplicația respinsă
De Mehdi Azizi
Publicat pe , 9 min.
Guideline 5.6: Apple respinge un paywall care păcălește, ca un X care deschide o ofertă. Ce spune regula și cum am corectat respingerea TradaZen.
Guideline 5.6 este codul de conduită al dezvoltatorului. Pentru un paywall, Apple o citează cu o frază standard: aplicația „attempts to manipulate customers into making unwanted In-App Purchases”. Pe scurt, un buton din fluxul tău de cumpărare nu face ce promite, sau o ofertă revine fără ca utilizatorul să o fi cerut. Corectura se reduce la o regulă: fiecare buton face ce spune, iar utilizatorul alege singur momentul în care revede o ofertă.
Am primit această respingere pe TradaZen, aplicația mea de antrenament pentru trading, a cărei lansare o povestesc în acest studiu de caz. Iată regula, ce am găsit în paywall-ul meu, tiparele de evitat și răspunsul meu către Apple. Pentru regula înrudită despre cererile de rating, citește mai bine ghidul despre guideline 5.6.3.
Ce spune guideline 5.6?
5.6, „Developer Code of Conduct”, se află în secțiunea 5 „Legal” din App Review Guidelines. Primul paragraf vorbește despre respect: față de clienți, în răspunsurile la recenzii și în schimburile cu Apple. Al doilea vizează direct achizițiile.
Textul în vigoare stabilește principiul: „Customer trust is a cornerstone of the App ecosystem.” Apoi enumeră ce nu trebuie să facă niciodată o aplicație: să profite de utilizatori, să-i escrocheze, să „trick them into making unwanted purchases”, să-i forțeze să partajeze date inutile, să „raise prices in a tricky manner”, să ceară bani pentru ce nu livrează, sau orice altă practică manipulatoare, în aplicație sau în afara ei.
Pe românește: nu ai voie să obții o achiziție prin șiretlic. Textul nu face o listă de butoane interzise. Judecă efectul: utilizatorul a plătit pentru că a vrut, sau pentru că ecranul l-a prins în capcană?
5.6 grupează și patru sub-reguli:
| Sub-regulă | Ce vizează |
|---|---|
| 5.6.1 App Store Reviews | Recenzii și cereri de rating |
| 5.6.2 Developer Identity | Informații exacte despre tine |
| 5.6.3 Discovery Fraud | Fraudă de vizibilitate |
| 5.6.4 App Quality | Reclamații, rambursări |
Sancțiunea e scrisă în regulă: „Repeated manipulative or misleading behavior or other fraudulent conduct will lead to your removal from the Apple Developer Program.” Comportamentele manipulatoare repetate duc deci la excluderea din programul pentru dezvoltatori. E o regulă generală și un motiv bun să corectezi tot fluxul de cumpărare de la prima respingere.
Mesajul de respingere 5.6 pentru un paywall
Mesajul reia des aceeași frază: „The app attempts to manipulate customers into making unwanted In-App Purchases.” Apple nu spune mereu ce element vizează. La respingerea mea, nu era nimic în plus.
Alți dezvoltatori descriu ecranul în cauză. Într-un thread de pe forumul Apple din noiembrie 2024, un dezvoltator își leagă respingerea 5.6 de o ofertă unică, afișată când utilizatorul închidea primul ecran de abonament.
5.6 nu vizează doar paywall-urile. Un dezvoltator a fost respins și pentru funcții care păreau ascunse în timpul review-ului. Dacă respingerea ta 5.6 nu vorbește despre achiziții, caută întâi ce nu a putut vedea evaluatorul.
Respingerea mea 5.6 pe TradaZen
Pe 12 octombrie 2026, Apple respinge versiunea 1.5.1 a TradaZen, testată pe iPad Air. Motiv: guideline 5.6, cu fraza standard despre achizițiile nedorite. Niciun ecran citat.
Așa că am recitit tot fluxul de cumpărare ca cineva care vrea doar să refuze. Paywall-ul de la finalul onboarding-ului nu se poate închide: aplicația cere perioada de probă sau abonamentul ca să continui. Trei mecanisme din jurul lui puteau trece drept manipulare:
- Un X fals. Sus pe ecran, un buton în formă de X, anunțat „Close” pentru VoiceOver, deschidea o ofertă redusă în loc să închidă.
- O ofertă care revenea singură. Cât timp oferta era activă, se redeschidea când utilizatorul revenea în aplicație.
- O notificare promoțională. Ieșirea din aplicație de pe paywall programa o notificare care anunța o reducere exclusivă.
Un detaliu contează: aceste mecanisme existau deja în versiunea anterioară, acceptată cu trei zile înainte. O acceptare nu îți validează paywall-ul pentru totdeauna: alt evaluator poate citi același ecran altfel.
Ce am schimbat
- X-ul a dispărut de pe acest ecran. În locul lui, o iconiță de cadou, anunțată „Reducere exclusivă” pentru VoiceOver, deschide oferta când o atingi. Nimic nu se mai preface că închide.
- Oferta nu se mai deschide niciodată singură la revenirea în aplicație.
- Notificarea de reducere a fost eliminată. A rămas un memento discret, trimis o singură dată per instalare și doar dacă notificările sunt permise. Nu vorbește nici de preț, nici de reducere, nici de termen.
- Acest memento e descris în mesajul către App Review, cu textul și momentul trimiterii.
Ce am păstrat
Am recitit și ce a rămas, întrebându-mă dacă fiecare element lăsa cu adevărat alegerea.
- O ofertă după o achiziție anulată. Dacă utilizatorul anulează foaia de plată Apple pentru abonamentul anual, se deschide o ofertă de bun venit. Are o singură fereastră de 5 minute, care nu repornește: dacă utilizatorul anulează din nou în acest interval, se redeschide. Se închide dintr-un gest, cu X-ul sau cu „Nu, mulțumesc”, și afișează prețul real al produsului.
- Un cronometru real de 5 minute. Termenul lui e salvat pe dispozitiv la prima afișare. Continuă când aplicația e închisă și nu repornește de la zero la relansare. Odată expirat, oferta dispare pentru această instalare a aplicației. Dacă o închizi înainte, o mică bulină afișează timpul rămas și redeschide oferta doar dacă o atingi.
- Un cufăr cu lacăt. Arată obiectele câștigate în timpul onboarding-ului, și doar pe acelea, blocate cât timp aplicația nu e deblocată. Nimic nu anunță că vor fi pierdute.
Aceste elemente apar în notele de review. Respingerea nu cita niciun ecran: deci nu le prezint ca validate de Apple. Sunt, după mine, versiunile transparente ale acestor mecanici, și le-am declarat.
Corectura a cerut un build nou, pentru că totul se petrecea în aplicație. TradaZen a plecat din nou la review pe 13 octombrie 2026.
Dark patterns de paywall care declanșează 5.6
Apple nu publică o listă. Aceeași mecanică există des în două versiuni: cea care păcălește și cea care lasă alegerea. Tabelul de mai jos le separă, combinând textul regulilor, respingerile publicate de alți dezvoltatori și pe a mea. Versiunea transparentă nu garantează o acceptare. E cea care nu încearcă să înșele. Ultima coloană spune pe ce se bazează fiecare rând.
| Versiune manipulatoare | Versiune transparentă | Pe ce se bazează |
|---|---|---|
| Un X care deschide o ofertă în loc să închidă | X-ul închide. Un ecran care nu se închide nu afișează X | Corectat după respingerea mea TradaZen |
| O ofertă „unică” ce apare când închizi paywall-ul | O reducere în spatele unui buton care o anunță clar | Respingere publicată pe forumul Apple |
| O a doua ofertă lansată după un refuz, într-un paywall cu preț înșelător | O singură ofertă după o achiziție anulată, la prețul real, închisă dintr-un gest | Cazul Cal AI; discuție relatată de Superwall |
| Un paywall sau o ofertă care se redeschide singură la revenirea în aplicație | Revine când utilizatorul atinge o limită sau un buton care îl anunță | Corectat după respingerea mea TradaZen |
| O notificare promoțională necerută niciodată | Promoție după acord explicit, cu dezabonare în aplicație | Regula 4.5.4 |
| Un cronometru fals, care repornește de la zero sau a cărui ofertă revine după final | Un termen real, care continuă și cu aplicația închisă și chiar se oprește | Interpretarea mea a „trick them”, regula 5.6 |
| Recompense inventate, sau amenințate că dispar fără achiziție | Câștigurile reale ale utilizatorului, arătate fără amenințarea că le pierde | Interpretarea mea a regulii 5.6 |
| O perioadă de probă care ascunde plata automată | Durata probei și prețul facturat apoi, lângă buton | Pagina Apple despre abonamente |
| Un preț pe săptămână mare, suma facturată mică | Suma facturată e prețul cel mai vizibil de pe ecran | Pagina Apple despre abonamente |
| Un buton de refuz care culpabilizează | Un refuz neutru, ca „Nu acum” sau „Nu, mulțumesc” | Interpretarea mea a regulii 5.6 |
Cazul Cal AI e relatat de TechCrunch: Apple a citat 5.6 pentru o a doua ofertă de abonament arătată celor care o refuzau pe prima. Același paywall era sancționat și pe 3.1.2(c): prețul pe săptămână domina suma facturată, iar perioada de probă ascundea reînnoirea automată. Articolul nu descrie mai în detaliu a doua ofertă.
Invers, Superwall, un furnizor de unelte de paywall care vinde acest tip de ofertă, relatează o discuție neoficială cu Apple din iunie 2026. O ofertă arătată după o achiziție anulată e descrisă acolo ca permisă. Insistența nu e: o ofertă care revine la fiecare sesiune, sau un parcurs din care ieși doar plătind. Superwall precizează că nu sunt reguli oficiale și că evaluatorul își păstrează judecata. O ofertă după un refuz rămâne deci o zonă de interpretare: textul nu o interzice, există respingeri publicate, iar felul în care o faci contează.
Regula despre notificări e 4.5.4: fără promoții prin notificare fără acord explicit obținut în aplicație, nici fără o modalitate de dezabonare.
Pentru preț, pagina Apple despre abonamente e clară: suma facturată trebuie să fie elementul de preț cel mai vizibil. Motivul încape într-o frază: „This ensures that people are not misled.” Regula 3.1.2 adaugă că Apple elimină aplicațiile care vând un abonament într-o lumină falsă sau prin „bait-and-switch”.
Testul pe care îl aplic acum: face fiecare buton exact ce promite aspectul lui, și poate utilizatorul să spună nu dintr-un gest, fără ca oferta să revină de la sine?
Greșelile de paywall mai clasice, cele care costă vânzări fără să ducă neapărat la respingere, sunt în paywall iOS: 7 greșeli de începător.
Cum corectezi o respingere 5.6
- Fă lista întregului flux de cumpărare. Paywall, oferte secundare, cronometre, notificări, reveniri la intrarea în aplicație. Apple nu spune mereu ce vizează. Pentru fiecare element, verifică dacă e în versiunea transparentă: se închide dintr-un gest, cronometru real, preț exact, nicio revenire automată. Corectează sau elimină tot ce seamănă a capcană, nu doar elementul cel mai probabil.
- Refă parcursul evaluatorului. Șterge aplicația, reinstaleaz-o, termină onboarding-ul, apoi refuză tot: închide, anulează, ieși din aplicație, revino. Notează fiecare ecran care se deschide fără să-l fi cerut și verifică dacă îl poți închide dintr-un gest.
- Pregătește un build nou. Cauza e în aplicație, deci în codul inclus. O actualizare la distanță nu înlocuiește build-ul, cum explic în ghidul despre guideline 2.1.
- Nu păstra nimic în rezervă. Să reactivezi o ofertă la distanță după acceptare înseamnă să ascunzi o funcție de evaluator. RevenueCat însuși avertizează împotriva acestui reflex în articolul despre ofertele de ieșire.
- Răspunde în App Store Connect, în engleză, răspunzând la mesajul App Review.
Iată un șablon luat din răspunsul și notele mele de review, scurtat. Înlocuiește numărul build-ului și schimbările cu ale tale, apoi enumeră ce rămâne:
Hello,
Thank you for your feedback on Guideline 5.6.
Issue: on the subscription screen, the button in the top
corner looked like a close button, but it opened a
discounted offer instead of closing the screen.
Changes in build X:
- Nothing on the subscription screen pretends to close it.
A clearly labeled button now opens the optional offer.
- The offer never reopens by itself when the user comes
back to the app.
- The notification announcing a discount has been removed.
Still in this build (also described in the review notes):
- [Each remaining offer: what triggers it, how often it
appears, how the user dismisses it.]
- [Each remaining reminder: its text, when it is sent,
and under which conditions.]
If another part of the purchase flow still looks unclear,
please tell me which screen, and I will change it.
Best regards,
Ce scrii trebuie să corespundă exact build-ului. Dacă păstrezi un memento sau o ofertă, chiar declanșată automat, descrie-le în răspuns și în notele de review. Dacă crezi că evaluatorul s-a înșelat, Apple îți permite să faci apel la App Review Board, cu un singur apel per trimitere respinsă. Pentru un paywall, mi se pare mai sigur să corectezi decât să contești. Celelalte motive de respingere și cum să le răspunzi sunt în de ce respinge Apple o aplicație.
Checklist anti-5.6 înainte de trimitere
- Fiecare X închide ecranul. Un ecran care nu se închide nu afișează X.
- Fiecare buton spune ce face, pe ecran și pentru VoiceOver.
- Nicio ofertă nu se ascunde în spatele unui buton de închidere.
- O ofertă declanșată de un refuz, dacă păstrezi una, încape într-o singură fereastră care nu repornește, la prețul real, și se închide dintr-un gest.
- Niciun paywall și nicio ofertă nu se redeschide singură la revenirea în aplicație.
- Nicio notificare promoțională fără acord explicit în aplicație.
- Fără cronometru fals: un termen afișat e real, nu repornește de la zero și chiar se oprește.
- Ce arată ecranul drept câștigat a fost chiar câștigat, fără amenințarea că se pierde.
- Perioada de probă își afișează durata și prețul facturat apoi.
- Suma facturată e prețul cel mai vizibil de pe ecran.
- Notele de review descriu fiecare ofertă și fiecare memento prezent în build.
- Ai refăcut parcursul refuzând tot, pe iPhone și pe iPad.
Să-ți verifici paywall-ul înainte de Apple
Review Kit adună checklist-ul meu dinainte de trimitere, respingerile mele corectate și două skill-uri Claude Code care îți verifică proiectul, paywall-ul și fișa. Dacă Apple respinge, îți pregătesc răspunsul. Pentru o privire umană, rezervă o oră cu mine: refacem împreună fluxul tău de cumpărare, pe ecranul tău. Demersul complet după o respingere e pe pagina aplicație respinsă de Apple, iar partea tehnică a abonamentelor pe abonamente in-app iOS.
Dacă îți pregătești prima lansare, fă-ți diagnosticul gratuit: pune pașii în ordine și îți trimite checklist-ul meu anti-respingere Apple. Pagina principală arată cum să creezi o aplicație mobilă cu un paywall gândit pentru review de la început.
Nimeni nu poate garanta că Apple îți va accepta aplicația. Ce pot face e să te ajut să eviți o respingere 5.6 pe care am plătit-o deja cu un ciclu de review.
Întrebări frecvente
Ce înseamnă „Guideline 5.6 - Developer Code of Conduct” într-o respingere?
E titlul regulii despre codul de conduită al dezvoltatorului. Pentru o aplicație cu achiziții in-app, semnalează de cele mai multe ori un flux de cumpărare considerat manipulator: închidere falsă, ofertă care revine singură, perioadă de probă sau preț prezentate înșelător. Mesajul nu precizează mereu ecranul vizat.
Este interzisă de Apple o ofertă de ieșire?
Textul nu o interzice explicit. RevenueCat notează și el asta, semnalând totuși că unii dezvoltatori au fost respinși pe acest motiv. Respingerile publicate vizează o ofertă care apare când utilizatorul închide paywall-ul, sau o a doua ofertă lansată după un refuz. Ce deosebește versiunea transparentă: o ofertă opțională, limitată la o singură fereastră care nu repornește, la prețul real, care se închide dintr-un gest, nu revine de la sine și are un cronometru real dacă are unul. Descrie-o în notele de review. Nimeni nu poate garanta că un evaluator o va citi așa.
Este permis un paywall fără X?
Regulile nu impun un X, și asta e alegerea făcută pe TradaZen după această respingere. Ce refuză Apple e un buton care arată ca o închidere și face altceva. Un dezvoltator a raportat totuși o respingere 5.6 pentru un paywall fără ieșire într-o aplicație gratuită la descărcare. Arată valoarea înainte să ceri perioada de probă și spune clar în fișă că aplicația e cu plată.
Ai nevoie de un build nou după o respingere 5.6?
Da, în majoritatea cazurilor, pentru că totul pornește de la un ecran sau un comportament al aplicației. Dacă problema e în afara aplicației, în fișă sau în metadate, o corectură fără build poate fi suficientă. Dacă nu ești sigur, întreabă-l pe evaluator ce ecran vizează.
Poate o respingere 5.6 să ducă la închiderea contului de dezvoltator?
Regula prevede asta în cazul comportamentelor manipulatoare repetate, cu excludere din programul pentru dezvoltatori. Prevede și că un cont închis poate fi restabilit după un plan de îmbunătățire scris, aprobat și apoi verificat de Apple. De aici importanța de a corecta tot fluxul de la prima respingere.
Care e diferența dintre 5.6 și 5.6.3?
5.6 e codul de conduită general: respect, încredere, nicio achiziție obținută prin șiretlic. 5.6.3 e una dintre sub-regulile ei, despre manipularea clasamentelor, a căutării și a recenziilor. Apple a citat-o pe Solys pentru o cerere de rating plasată în onboarding.

