Privacy Policy for SwingOut
1. Summary
SwingOut has no user accounts, and it does not track you across other companies' apps or websites unless you explicitly allow that in the system tracking prompt described in section 6; the game itself runs entirely on your device. Two things do leave your device. First, anonymous gameplay analytics: the App sends a small set of events — for example that level 12 was started, and that it was completed in 48 seconds with 14 moves — to Google Analytics for Firebase, so that we can see which levels are too hard and where players stop playing. Those events are tied to a randomly generated app-instance identifier, never to your name, e-mail address or an account. You can switch them off in Settings. Second, optional rewarded ads: when you run out of lives or want an extra hint, the App can offer to show you a short video ad from Google AdMob in exchange for the reward. An ad is only ever shown when you tap the button that asks for it, and you can always take the free path instead (restart the level, or play on without the hint). Section 6 explains what the ad service receives. Two further network requests are described in section 5: a small settings file that the App downloads from our website and that carries nothing about you, and — only if you choose to open the leaderboard — Apple’s Game Center. From version 1.3 the App also offers one optional one-time purchase ("SwingOut Premium"); the payment is handled entirely by Apple’s App Store, and section 7 explains what we do and do not see.
2. Who we are
SwingOut ("the App", "the Game") is developed and published by Leiso Studio ("we", "us", "our"). This Privacy Policy explains how the App handles information, including the analytics described in section 3 and the advertising described in section 6. If you have any question about it, write to support@leisostudio.com.
3. Information we collect
We ask you for nothing: the App has no registration, no login and no field in which you could type personal information. The App does not collect, request, or transmit:
- names, e-mail addresses, phone numbers, or postal addresses;
- user accounts, logins, passwords, or social-network profiles;
- the advertising identifier (IDFA on iOS) without your permission — on iOS the App asks for App Tracking Transparency permission before any ad is requested; if you do not allow it, the identifier stays unavailable to us and to our advertising partner (see section 6);
- precise location — the App never uses Location Services and asks for no location permission;
- contacts, photos, camera, microphone, or any other device content;
- payment or financial information — the optional purchase described in section 7 is processed by Apple; the App never sees your card, bank or billing details.
The App requests no runtime permissions and is not able to read personal content from your device.
What the analytics SDK does collect
To understand how the game is played, the App uses Google Analytics for Firebase. While Analytics is switched on, the following leaves your device:
- Installation identifiers. A randomly generated app-instance identifier created by the SDK, a Firebase installation identifier the SDK registers for this copy of the App, and, on iOS, the Identifier for Vendor (IDFV). They identify an installation, not a person; they disappear when you delete the App, and switching Analytics off in Settings discards them too.
- The gameplay events we define.
level_start,level_clear,level_fail,hint_used,theme_selected,stuck_help(that the game highlighted the free hint, or showed a starting move, after you ran out of lives on the same level several times),rating_prompt(that the App asked the operating system to show its rating dialog),coach_step(which step of the first-level guidance, the piece guide or the language picker was shown or used),bonus_unlock_shownandbonus_unlock_choice(that a bonus level became available and whether you chose to play it now or later), and the advertising funnel eventsad_offered,ad_startedandad_rewarded(which record only that an ad was offered, started or completed, and where in the game), with parameters such as the level number, elapsed seconds, number of moves, the minimum number of moves for that level, the star rating, the level score and the highest combo reached, the number of wrong moves, whether a hint was used, the rotation direction, whether the attempt was a retry, and the identifier of the selected visual theme. - Events the SDK measures automatically, such as first launch, app opens, app updates, sessions and session duration, and screen views.
- Technical attributes of the installation: device model, operating system and version, app version, device language, and the store the App was installed from.
- An approximate location — country, region and city — which Google derives from your device's masked IP address. The App never uses Apple's Location Services, and we never see your IP address.
No free text, no user identifier and no content you create is attached to these events. We do not set a user ID, we do not use Google signals, our Analytics property is not linked to any Google Ads account, and age, gender or interest categories are not available to us.
Crash reports
To find and fix crashes, the App uses Firebase Crashlytics (from version 1.3 of the App). While Analytics is switched on, a report is sent when the App crashes or records a serious error. A report contains the technical trace of where the App failed (stack trace), the app version, device model, operating system and version, device orientation, free memory and disk space at the time of the crash, whether the device appears to be jailbroken, the time of the crash, and a randomly generated Crashlytics installation identifier. It contains no gameplay content, no free text and nothing that identifies you. Crash reports follow the same Analytics switch as the events above: if it is off, no report leaves your device.
You can turn this off. Open Settings in the game and switch Analytics off. Collection stops immediately, any events still waiting to be sent are discarded, crash reports are no longer sent, and nothing further leaves your device. You can switch it back on at any time. (Switching Analytics off does not affect the advertising service described in section 6, which only runs when you choose to watch an ad.)
4. Data stored on your device
To let you continue where you left off, the App saves game data in the standard local storage of your operating system (Unity PlayerPrefs, which maps to UserDefaults on iOS). This data stays on your device and is never transmitted to us or to anyone else. It consists only of:
- level progress, star ratings, and best move/time results;
- your best score for each level, your total Swing Score and rank title, and which leaderboard milestones have already been celebrated;
- a copy of the most recent settings file described in section 5;
- achievement progress;
- the number of lives remaining in the level you are playing;
- the state of a level you left half-finished, so you can resume it: the moves you made so far, the elapsed time and the blocked moves;
- whether the App has already asked you to rate it;
- preferences such as sound, music, haptics, and the selected visual theme;
- whether SwingOut Premium has been purchased on this device (a single yes/no flag, re-checked against your App Store purchases when the App starts), whether its once-per-level continue has been used in the current level, and whether the Premium card has already been shown to you once;
- whether you have switched Analytics off in Settings;
- your advertising consent choices, stored on the device by the consent tool described in section 6;
- whether the tutorial and the intro screens have already been seen.
None of this data identifies you as a person.
5. Servers and network traffic
We operate no servers of our own, and the game is fully playable offline — every level, your progress and your settings work without a connection. While Analytics is switched on, the App uploads the batched, encrypted analytics events listed in section 3 to Google's servers, together with the analytics SDK's own registration and configuration requests. The advertising SDK described in section 6 additionally contacts Google's ad servers to fetch and display an ad when one is offered, and to load your consent status. Without a connection, ads simply are not offered and the free path (restart, or play on without a hint) remains available.
Settings file. When the App starts it downloads a small, public settings file from our website (leisostudioo.github.io, hosted by GitHub Pages). The file only switches game features on or off and sets a few numbers, such as how many levels show the direction arrows; the App applies it the next time it starts. The request contains no identifier and no information about you or your game. Like any website, the host may briefly process the connection’s IP address to deliver the file; we do not receive or keep it. Without a connection the App simply keeps its previous settings.
Game Center leaderboard (optional). The App shows a worldwide Swing Score leaderboard. Nothing is sent to Game Center unless you open the leaderboard and sign in to Game Center. After that, the App submits your total Swing Score to Apple’s Game Center, and loads the top scores and your own rank to display them in the game. Your Game Center nickname and score are visible to other players on the leaderboard. This data is handled by Apple under the Apple Privacy Policy; we never receive your Apple ID, e-mail address or contacts, and we do not store leaderboard data anywhere. You can stop taking part by signing out of Game Center in your device’s Settings.
6. Advertising
The App shows rewarded video ads served by Google AdMob (the Google Mobile Ads SDK), together with Google's User Messaging Platform, which handles consent. Ads appear only in two places, and only when you ask for them: the "Watch ad" button on the Out of lives screen (which lets you continue the level with fresh lives), and the hint button once your free hint for a level is used. There are no banner ads, no ads between levels, and no ad that interrupts play.
When an ad is requested, Google receives from your device: your IP address (from which it derives an approximate location and which it uses to serve the ad), technical attributes of the device and the App (device model, operating-system version, language, app version and identifier), an identifier for this installation, information about the ads you are shown and whether you tap them, and non-identifying diagnostic information about the SDK's own operation. Google may also use its own information about you under the Google Privacy Policy and Google's advertising policies.
Tracking permission on iOS (App Tracking Transparency). Before the first ad is requested, the App shows Apple's system prompt asking whether SwingOut may track your activity across other companies' apps and websites. If you tap Allow, the advertising identifier (IDFA) becomes available to Google through the App, and Google may use it to link your activity here with your activity in other apps and websites in order to show you more relevant ads and to measure them. If you tap Ask App Not to Track, the identifier is not available, no such linking takes place through the App, and the ads you see are not personalised on the basis of cross-app data. The game plays exactly the same either way, and you can change your answer at any time in the device's Settings > Privacy & Security > Tracking. We ourselves never see the identifier.
Your choices in the European Economic Area, the United Kingdom and Switzerland. Before the first ad is shown, and after the tracking prompt described above, the App displays Google's consent dialog, where you can accept or decline personalised advertising and see the list of advertising partners. You can change your choice at any time from Settings > Ad privacy in the game. If you decline, ads may still be shown but are limited to non-personalised ads. Elsewhere, the ad service operates under the applicable local rules; you can still decline every ad simply by not tapping the button that requests it.
Legal basis. Where consent is required by law (for example under the GDPR or the UK GDPR for personalised advertising), we rely on the consent you give in the dialog described above and you may withdraw it at any time. Otherwise we rely on our legitimate interest in funding a free game through advertising that you explicitly opt into by tapping the ad button (GDPR Art. 6(1)(f); KVKK Art. 5(2)(f)).
7. Third-party services inside the App
The App integrates three third-party SDKs that process data about your use of it, plus three platform features that are operated by the platform vendors rather than by us:
- Google Analytics for Firebase. Google processes the events listed in section 3 on our behalf, so that we can read aggregated statistics in the Firebase and Google Analytics consoles. We have enabled no Google signals and no Google Ads link. Google's own handling of the data is described in the Google Privacy Policy and in Firebase's privacy documentation.
- Firebase Crashlytics. Google processes the crash reports described in section 3 on our behalf so that we can see which crashes occur and fix them; see Firebase's privacy documentation.
- Google AdMob and User Messaging Platform. Google serves the rewarded ads described in section 6 and manages your consent choices. Google acts as an independent controller for the data it receives when serving ads; see the Google Privacy Policy and AdMob's privacy information.
- App store distribution. Apple may collect data about downloads, crashes, and device type as part of distributing the App. This processing is governed by the Apple Privacy Policy, not by this policy. We only ever see anonymous, aggregated statistics in the developer console.
- Apple Game Center (optional). Used only for the leaderboard described in section 5, and only after you sign in to Game Center from the leaderboard screen. Apple operates Game Center under its own privacy policy.
- App Store in-app purchase (optional, from version 1.3). "SwingOut Premium" is a single one-time purchase sold through Apple’s App Store (StoreKit, accessed through the Unity In-App Purchasing package). The purchase, the payment, Family Sharing, refunds and "Restore Purchases" are all handled by Apple under the Apple Privacy Policy and Apple’s Media Services terms; we receive no name, e-mail address, Apple ID or payment details. The App asks Apple at launch whether this Apple ID owns the purchase and keeps the answer as a local flag (section 4). If Analytics is switched on, the App records the purchase funnel as anonymous events (
premium_card,premium_purchase,premium_restore,premium_changed,premium_continue) tied to the same random app-instance identifier as the other events in section 3; they say that a purchase was started, completed, failed or restored, never who made it or how it was paid for. - Rating prompt. The App may ask the operating system to show its own built-in "rate this app" dialog. The dialog is rendered and handled by the platform; we receive no personal data from it, and your review is handled under the store's own terms.
8. Children's privacy
The App is suitable for all ages but is not directed at children, and it is not listed in the children's category of the App Store. We do not knowingly collect personal data from children under the age of 13 (or the equivalent minimum age in your country): there is no registration, no chat and no free-text field, and nothing in the App would allow a child to disclose personal information to us or to third parties. The analytics described in section 3 records only gameplay events tied to a random installation identifier; no profile is built. Ads are limited to a general-audience ("G") content rating, are never shown unless the player taps the button that requests one, and are served without the advertising identifier. A parent who prefers to send nothing at all can switch Analytics off in Settings and simply not use the ad buttons.
9. Your rights
Data-protection laws such as the EU/UK GDPR, the Turkish Personal Data Protection Law (KVKK No. 6698), and the California Consumer Privacy Act (CCPA/CPRA) give you rights over your personal data, including access, correction, deletion, portability, and objection.
Legal basis for analytics and crash reports. Where the GDPR or the KVKK applies, we process the analytics data and crash reports described in section 3 on the basis of our legitimate interest in understanding how the game is played and in finding and fixing problems (GDPR Art. 6(1)(f); KVKK Art. 5(2)(f)). You can object at any time, with immediate effect and without giving a reason, by switching Analytics off in Settings. The legal basis for advertising is described in section 6.
Exercising your rights. Write to support@leisostudio.com. Please bear in mind that the analytics data is only ever tied to a random app-instance identifier: we hold no name, e-mail address or account that would tell us which records belong to you, and we cannot re-identify you from them. If you send us your app-instance identifier we will delete the matching records; otherwise the fastest and most complete route is to switch Analytics off and delete the App — the identifier is then gone, and the remaining events are deleted by Google at the end of the retention period described in section 10. For data that Google holds as an independent controller when serving ads, please use the controls in your Google account and the Google Privacy Policy.
We do not sell personal information. The delivery of ads by Google AdMob may be considered "sharing" for cross-context behavioural advertising under the CCPA/CPRA only if personalised ads are enabled for you; you can opt out through the consent dialog described in section 6 where it is offered, by declining the tracking prompt on iOS, and in all cases by not requesting ads.
You can erase all data the App has saved locally at any time by deleting the App from your device. Note that a device backup created by you (for example an iCloud backup) may still contain that local game data; such backups are controlled by you and by the platform vendor, not by us.
10. Data retention and security
We keep no database of our own. The analytics events are stored by Google on our behalf and are deleted automatically at the end of the retention period configured in our Google Analytics property, which is at most 14 months; aggregated reports that no longer relate to a single installation (for example "62% of players finish level 12") may be kept for longer. Crash reports are deleted by Firebase Crashlytics after 90 days. Data received by Google when serving ads is retained according to the Google Privacy Policy. Events are transmitted over encrypted (TLS) connections. Game data saved locally on your device is protected by the sandboxing and security mechanisms of your operating system.
11. International transfers
The analytics and advertising data is processed by Google on servers that may be located outside your country of residence, including in the United States. Google relies on the European Commission's Standard Contractual Clauses and the other safeguards described in the Google Privacy Policy for such transfers. We operate no servers ourselves and see only the reports shown in the Google consoles.
12. Changes to this policy
If we add a feature that changes how information is handled — for example cloud saves or leaderboards — we will update this policy and the "Effective date" above before that feature is released, and we will update the privacy declarations in the App Store accordingly. Version 1.6 (8 October 2026) documents the optional one-time purchase "SwingOut Premium" that ships in version 1.3 of the App (processed by Apple; see sections 4 and 7) and its anonymous purchase-funnel events. Version 1.5 (6 October 2026) documents the optional crash reports (Firebase Crashlytics) and the new gameplay events coach_step, bonus_unlock_shown and bonus_unlock_choice. Version 1.4 (29 September 2026) documents the App Tracking Transparency prompt that the App shows on iOS from version 1.2 onwards, and the corresponding change to our App Store privacy declarations (data used for tracking). Version 1.3 (28 September 2026) documents the optional Game Center leaderboard and the settings file described in section 5, both introduced in version 1.2 of the App, together with its new gameplay events. Version 1.2 (25 September 2026) adds the optional rewarded advertising that ships in version 1.1 of the App; version 1.1 (19 September 2026) documented the gameplay analytics that shipped in version 1.0. The current version of this document always lives at this address; earlier versions remain visible in the public change history of the repository that hosts this page.
13. Contact
Leiso Studio
E-mail: support@leisostudio.com
We aim to answer privacy questions within 30 days.
Türkçe Özet (bilgilendirme amaçlıdır)
- Kişisel veri toplamıyoruz. Hesap açmanız gerekmez; ad, e-posta, telefon, kişiler, fotoğraf ya da konum istemiyoruz. iOS'ta ilk reklamdan önce Apple'ın uygulama izleme (ATT) izin penceresi çıkar; "İzin verme" derseniz reklam kimliği (IDFA) paylaşılmaz ve başka uygulamalardaki hareketinizle eşleştirilemez. Cevabınız oyunu değiştirmez; cihazın Ayarlar > Gizlilik ve Güvenlik > İzleme bölümünden her zaman değiştirebilirsiniz.
- Anonim analitik var. Oynanışı anlamak için Google Analytics for Firebase kullanılıyor. Gönderilen olaylar (level_start, level_clear, level_fail, hint_used, theme_selected, stuck_help, rating_prompt, coach_step, bonus_unlock_shown/bonus_unlock_choice, ad_offered/ad_started/ad_rewarded ve oturum/ekran olayları) rastgele bir kurulum kimliğine bağlıdır, kimliğinize değil. Ayarlar > Analytics anahtarıyla anında kapatabilirsiniz.
- Çökme raporları (1.3 sürümünden itibaren). Uygulama çökerse Firebase Crashlytics ile teknik bir rapor gider: hatanın nerede olduğu, uygulama ve iOS sürümü, cihaz modeli, boş bellek/disk, çökme anı ve rastgele bir kurulum kimliği. Oyun içeriği ya da kimliğinizi belirten bilgi içermez; 90 gün sonra silinir. Ayarlar > Analytics kapalıysa rapor gönderilmez.
- İsteğe bağlı ödüllü reklam var. Canlar bittiğinde ya da ek ipucu istediğinizde uygulama, Google AdMob üzerinden kısa bir video reklam izleyip ödül almayı teklif eder. Reklam yalnız siz düğmeye dokunursanız gösterilir; her zaman ücretsiz yol (bölümü yeniden başlatmak, ipucusuz devam etmek) açıktır. Bölüm arası reklam ya da banner yoktur.
- Reklam gösterilirken Google'a ne gider? IP adresi (yaklaşık konum için), cihaz ve uygulama bilgileri, bu kuruluma ait bir kimlik, hangi reklamların gösterildiği ve dokunulup dokunulmadığı. İzleme iznini verirseniz reklam kimliği de gider ve reklamlar başka uygulamalardaki verinizle kişiselleştirilebilir; vermezseniz kişiselleştirilemez.
- Avrupa'daysanız izleme penceresinden sonra Google'ın rıza ekranı da çıkar; kişiselleştirilmiş reklamı kabul ya da reddedebilirsiniz. Tercihinizi Ayarlar > Ad privacy'tan her zaman değiştirebilirsiniz.
- Kayıtlarınız cihazınızda kalıyor. Level ilerlemesi, yıldızlar, bölüm puanları ve Swing Score, başarımlar, can sayısı, yarım kalan level'ın durumu, ses/tema tercihleri, analitik tercihiniz ve reklam rıza tercihiniz yalnızca cihazınızın yerel hafızasında saklanır.
- İsteğe bağlı tek seferlik satın alma (1.3 sürümünden itibaren). "SwingOut Premium" Apple App Store üzerinden satılır; ödeme, Aile Paylaşımı, iade ve "Satın alımları geri yükle" tamamen Apple tarafından yürütülür. Adınızı, e-postanızı, Apple Kimliğinizi ya da ödeme bilgilerinizi görmeyiz. Uygulama açılışta Apple'a bu hesabın satın almayı yapıp yapmadığını sorar ve cevabı cihazda tek bir evet/hayır işareti olarak tutar. Analitik açıksa satın alma adımları (başlatıldı / tamamlandı / başarısız / geri yüklendi) kimliksiz olaylar olarak kaydedilir.
- Sunucumuz yok, oyun çevrimdışı oynanır. İnternet yokken reklam teklif edilmez, ücretsiz yol açık kalır.
- Ayar dosyası. Uygulama açılışta web sitemizden (leisostudioo.github.io) küçük, herkese açık bir ayar dosyası indirir; dosya yalnız oyun özelliklerini açıp kapatır. İstekte sizinle ya da oyununuzla ilgili hiçbir bilgi gönderilmez.
- Game Center liderlik tablosu (isteğe bağlı). Tabloyu açıp Game Center'a giriş yapmadığınız sürece hiçbir şey gönderilmez. Giriş yaparsanız toplam Swing Score'unuz Apple Game Center'a gönderilir ve takma adınızla birlikte diğer oyunculara görünür. Bu veri Apple Gizlilik Politikası'na tabidir; Apple kimliğinizi ya da e-postanızı almıyoruz.
- Saklama ve yurt dışı. Analitik olayları Google tarafından en geç 14 ay sonunda otomatik silinir; reklam verisi Google Gizlilik Politikası'na tabidir. Veriler ABD dâhil Google sunucularında işlenebilir (Standart Sözleşme Maddeleri).
- Çocuklar. Oyun her yaşa uygundur ama çocuklara yönelik değildir; kayıt, sohbet, serbest metin alanı yoktur. Reklam içeriği genel izleyici ("G") seviyesiyle sınırlıdır ve yalnız oyuncu istediğinde gösterilir; ebeveyn analitiği kapatabilir ve reklam düğmelerini kullanmayabilir.
- Haklarınız. KVKK ve GDPR kapsamındaki haklarınız saklıdır. Analitiği meşru menfaat, kişiselleştirilmiş reklamı (gerektiği yerde) rızanız kapsamında işliyoruz; rızayı her zaman geri alabilirsiniz. Silme için kurulum kimliğinizi iletebilir ya da uygulamayı silebilirsiniz.
- İletişim: Leiso Studio — support@leisostudio.com