Privacy and support

Updated October 26, 2026

Canyon Guard is published by Ron Gal. For help or privacy questions, email trtech1337@gmail.com.

Your game save

No game account is required. Campaign progress, coins, upgrades and sound preferences are stored locally in your browser or app. They are not synchronized to a cloud account. Clearing browser/app storage or reinstalling can remove this progress. A new campaign replaces the current campaign. Saves belong to the game website's origin.

Optional rewarded ads

Some native app versions with ads use Google Mobile Ads and Google's User Messaging Platform. Ads are optional: you can continue without watching. The browser game does not show native rewarded ads. Ad availability depends on the app version, consent, network and provider availability.

The Google ad SDK can process network addresses (which can indicate approximate location), device identifiers, ad and app interactions, and diagnostics/performance data. These are used for advertising, analytics and fraud prevention. Non-personalized ads can still involve data processing. Our game does not send your campaign bank or upgrades as ad targeting data.

The app requests consent information before requesting ads. Where available, use Ad privacy in the lobby to review your choices. Device settings also control advertising identifiers and tracking permissions.

See Google's privacy policy and Google's SDK disclosures for Android and iOS.

LevelPlay Android versions

Current Android versions with LevelPlay request a full-screen interstitial ad after each hero or stronghold defeat when an ad is available. This ad does not grant a revive or bonus coins. Reward ads remain separate, optional requests. No ad is shown at launch and no custom questionnaire is shown. If an ad cannot be loaded, play continues. The saved disabled-ad preference also stops these death-ad requests.

Android versions may use Unity LevelPlay with ironSource Ads and, in releases with the additional adapter, Unity Ads. In versions 10 and later, tapping an optional reward button requests an ad without our custom consent questionnaire. We send GDPR consent=false and a do-not-sell/share signal before initializing this provider. Enabling optional reward ads is not recorded as consent to personalized data use. Ad availability depends on the provider and these privacy signals.

Ad delivery, measurement and fraud prevention may still involve device information, IP address and ad interactions. According to Unity's SDK disclosures, Unity Ads and ironSource Ads can also process device identifiers (which can include an advertising ID where your device provides one), network addresses that indicate approximate location, ad views and taps, and diagnostics/performance data, for advertising, analytics, fraud prevention and ad functionality. Information may be processed outside your country. See Unity's Game Player and App User Privacy Policy for provider practices and privacy rights.

Use Ad privacy in the lobby to disable or enable optional ad requests. Disabling stops new requests; restart the app to end an initialized SDK session. Existing disabled preferences are respected. Versions 7 through 9 instead require an explicit ad opt-in, renewed each session; version 7 also asks for adult confirmation. Declining in those versions keeps gameplay available without initializing LevelPlay. We do not collect a date of birth. Integration-test versions can open the vendor test suite and disable gameplay ad requests.

Starting in Android version 13, enabled optional reward ads may download in the background after you begin interacting with the game. Watching still requires tapping a reward button. Preloading respects saved disabled-ad preferences and does not grant rewards or automatically show an ad.

Installation reporting

Android releases with installation reporting send a random installation identifier, app version, installation and first-observed times, coarse install-source categories, referral-field presence flags and analytics configuration status to our private reporting database. The identifier remains on the device across updates but is not restored from backups; reinstalling or clearing app data can create a new identifier. These records describe observed installations, not identified people or proof of paid-ad attribution. We do not include raw referral links, click IDs, advertising IDs, names or contact details in these records.

Reporting follows the gameplay analytics preference and Test device setting. It starts disabled until the game supplies its preference. Records are scheduled for daily deletion once they are older than 90 days from server receipt. Turning analytics off stops new reports; previously received records remain subject to that retention period. Hosting providers still process ordinary network connection information.

Website and support requests

Native app releases that include Firebase Analytics measure first opens, app sessions, completed stages, completion of the opening-battle tutorial, and native LevelPlay impressions and reward completions. Impression reports can include the ad network, format, unit name and impression revenue. Firebase uses an app-instance identifier and ordinary device/app information to measure acquisition and returning players, including Day 1 retention. These native analytics follow the gameplay analytics opt-out and browser privacy signals below. Analytics starts disabled until the hosted game supplies its current preference. Advertising identifier collection and ad personalization are disabled for this integration. See Firebase privacy information.

Updated releases also measure battle starts and outcomes, wave checkpoints, active battle duration, upgrade purchases, blessing choices, reward claims and ad offer outcomes. Android releases with Firebase Crashlytics collect crash stack traces and technical app/device diagnostics to identify reliability problems. Crash reporting follows the gameplay analytics and test-device controls; it starts disabled until the game provides its preference. We do not attach player names, contact details, save files or advertising identifiers to crash reports.

When enabled, Vercel Web Analytics measures visits and aggregate gameplay activity, including battle starts, stage results, active playtime and which of our ad links led to play. We send a stage number, broad platform category and limited event values, not your name, email, advertising ID, exact position, coin balance or save contents. A session can be marked as having existing saved progress, without uploading that progress. Our event URLs exclude query strings and fragments; only recognized ad labels are used.

When gameplay analytics is enabled, we also collect short performance summaries during active battles: measured frames per second, frame-time spikes, game-loop processing time, rendering workload, enemy count, stage, graphics profile, broad operating-system category and app/browser mode. A random temporary report code lets support match a test to its summaries. The code changes when the game reloads and is not saved as a persistent device identifier. We do not send raw frame traces, screen recordings or the full device user-agent. Reporting excludes menus, pauses, background time and ads, and is limited to ten summaries per page load. The analytics choices below also control performance reporting.

When gameplay analytics is enabled, ad diagnostics automatically send button taps, request and response outcomes, ad readiness and presentation flags, and time since the page opened to our hosting service. Support can search these reports by the public IP address of the connection, phone model when the browser provides it (otherwise a broad device type), and report time. A random in-memory session value separates page loads; it is not stored on your device or shown as a support code. Reports contain up to 100 events per page load and are held in access-controlled Vercel runtime logs under the hosting plan's retention period (normally one day on our current Pro plan). They exclude ad request IDs, reward attempt IDs, SDK error text, advertising IDs, full user-agent strings, save contents and exact positions. Newer native releases also attach bounded SDK phases, numeric error codes, per-placement request sequence numbers and current stage/wave to Firebase app-instance history when analytics is enabled. This allows death-to-ad-delivery troubleshooting without sending raw error messages or ad request identifiers. Android version 15 logs the web bridge; Android version 16 and later also provide fixed SDK callback phases and numeric error codes. The analytics opt-out, Do Not Track and Global Privacy Control also disable this reporting.

Vercel processes connection information and browser details to provide analytics. This integration does not add cookies, session recordings or a persistent player identifier. Daily visitor estimates are not an exact count of individual people across devices or days. See Vercel's analytics privacy information.

We disable gameplay analytics when your browser sends Do Not Track or Global Privacy Control. You can also turn it off on this browser or app below. This preference is stored locally and does not change your saved game or ad-consent choices. Reload any open game after changing it.

The game loads files from its hosting service, Vercel, and fonts from Google Fonts. These requests expose ordinary connection information such as your IP address and browser details to those services. If you email support, your email address and the information you send are used to respond to your request. Please do not send passwords or payment details.

You can remove local game data through your device or browser settings. For questions or requests about support correspondence, contact the email address above. Provider-held information is governed by the relevant provider's privacy controls and retention practices.

Meta app measurement in Android version 19 and later

Android versions that include Meta App Events use it to measure app installations and sessions, tutorial completion and completed stages, and to assess our Facebook and Instagram app ads. Meta may process app/device and connection information, its SDK identifiers and install-attribution information. We do not send your name, email, save contents, coin balance or precise position. Advertising-ID collection and automatic purchase logging are disabled; no Facebook Login is required. The existing gameplay analytics opt-out, Do Not Track and Global Privacy Control also control this integration. Collection defaults off until the hosted game supplies its current analytics preference. Meta limited data processing is requested. See Meta's Privacy Policy and Meta's privacy and deletion controls.