Data processing agreement

Effective August 17, 2026 · AppGlance is made by Ludyem AS, Norway

The short version: when your app sends us data about your end users, you decide what is collected and why - you are the controller and we are your processor. This page is the contract GDPR Article 28 requires for that, and it applies automatically to every account. You do not need to sign anything or email us to put it in place. It says what we process, who else touches it, how it is protected, how you get it deleted, and what we do if something goes wrong.

  1. Parties and scope
  2. Roles
  3. Our instructions
  4. Confidentiality
  5. Security
  6. Sub-processors
  7. Data subject rights
  8. Breach notification
  9. DPIAs and prior consultation
  10. Deletion and return
  11. Audits and information
  12. International transfers
  13. Liability and precedence
  14. Changes
  15. Annex 1 - details of processing
  16. Annex 2 - security measures
  17. Annex 3 - sub-processors

1. Parties and scope

This agreement is between you - the person or organisation holding an AppGlance account - and Ludyem AS, a limited company registered in Norway ("we", "us"). It governs our processing of personal data relating to your end users that reaches us because you shipped the AppGlance SDK or called our ingest API.

It forms part of the terms of use and takes effect when you create an account. No signature is required. If your organisation needs a counter-signed copy on your own paper, write to [email protected].

It does not cover the personal data of you, our customer - your own name, email and billing details. For that data we are the controller, and the privacy policy explains it.

If you self-host the schema or the ingest Worker, we process nothing and this agreement is not engaged for that deployment.

2. Roles

For end-user data, you are the controller and we are the processor. You decide what your app sends, why, and on what lawful basis. We provide the pipe, the storage and the dashboard, and we do not decide the purposes of the processing.

You confirm that you have a lawful basis for everything you send, that you have told your own users what you collect, and that you will not send special-category data or data about children below the applicable age of consent. Those obligations are set out in section 7 of the terms and are not repeated here.

3. Our instructions

We process end-user data only on your documented instructions. Your instructions are:

We will tell you if, in our opinion, an instruction infringes the GDPR or other applicable data protection law.

We do not use your end-user data for our own purposes. We do not sell it, share it, use it to build advertising profiles, use it to train machine-learning models, or combine it with data from other customers to produce benchmarks or industry statistics. We access it only to run the service, and only as described in Annex 2.

If we are required by law to process end-user data beyond your instructions, we will tell you before doing so unless that law forbids it.

4. Confidentiality

Everyone we authorise to process end-user data is bound by a duty of confidentiality - by contract of employment, by a written confidentiality undertaking, or, where the person is a director or owner of Ludyem AS, by the confidentiality duties that role carries under Norwegian company law. That duty survives the end of their engagement.

AppGlance is operated by a very small team. The number of people with production access is correspondingly small, and it is kept to those who need it to run the service.

5. Security

We implement appropriate technical and organisational measures under Article 32, taking into account the state of the art, the costs of implementation, and the nature, scope, context and purposes of the processing, as well as the risk to individuals. The measures in force are listed in Annex 2.

Annex 2 is a description of what we actually do, not an aspiration. We may change individual measures as the service evolves, but we will not reduce the overall level of security during your subscription.

6. Sub-processors

You give us general authorisation to engage sub-processors. The ones we use today are listed in Annex 3, with what each one does and where it does it.

Before we add or replace a sub-processor we will give you at least 30 days' notice by email to your account address, and by updating Annex 3. If you object on reasonable data protection grounds within those 30 days, tell us and we will work with you to find a solution. If we cannot, you may terminate the affected part of the service and we will refund any prepaid fees covering the period after termination. Continuing to use the service after the notice period is acceptance.

We impose data protection obligations on every sub-processor that are no less protective than those in this agreement, and we remain fully liable to you for their performance.

7. Data subject rights

Your end users are your users, not ours. We are not their point of contact, and if one of them contacts us directly we will not respond substantively - we will tell them to contact you, and forward the request to you where we can identify your account.

We help you meet your own obligations with the tools built into the product, which let you act without waiting for us:

If a request needs something the dashboard cannot do, we will give you reasonable assistance, taking into account the nature of the processing and the information available to us.

8. Breach notification

If we become aware of a personal data breach affecting end-user data we process for you, we will notify you without undue delay, and in any event within 48 hours of becoming aware of it, by email to your account address.

The notification will describe, as far as we know it at the time: the nature of the breach, the categories and approximate number of individuals and records affected, the likely consequences, the measures we have taken or propose to take, and a contact point. Where we cannot provide all of it at once, we will provide it in phases without undue delay.

Deciding whether the breach must be reported to a supervisory authority or to the individuals is your call as controller - we will give you the information you need to make it.

9. DPIAs and prior consultation

Taking into account the nature of the processing and the information available to us, we will give you reasonable assistance with data protection impact assessments under Article 35 and with prior consultation of a supervisory authority under Article 36. In practice, this page and the privacy policy are designed to contain most of what such an assessment needs; ask us if something is missing.

10. Deletion and return

You can delete end-user data yourself at any time, per user or per app, and deletion is immediate and irreversible.

When your account closes, we delete all end-user data we hold for you within 30 days, except where storage is required by law. You can export what you need before then, through the dashboard or the API.

Backups are a partial exception: end-user data can persist in encrypted backups after live deletion, and is removed as those backups age out, within 90 days. It is not restored to live systems in the meantime, and stays subject to this agreement until it is gone.

Separately from account closure, event history expires on its own according to the retention window your plan carries - 90 days on Free, longer on paid plans. Expired raw events are deleted automatically. Aggregate rollups that contain no event detail (daily counts, first-seen dates, per-user totals) are kept for as long as your account exists, because the charts read those rather than raw rows.

11. Audits and information

We will make available to you the information necessary to demonstrate compliance with Article 28 and to allow for and contribute to audits, including inspections, conducted by you or an auditor you mandate.

In practice, for a service at our scale, we ask you to start with this page, Annex 2, and written questions to [email protected], which we will answer within 30 days. If that genuinely does not satisfy a legal or regulatory requirement you are under, we will accommodate an on-site or remote audit: no more than once in any twelve months (unless a supervisory authority or a breach requires otherwise), on at least 30 days' written notice, during business hours, without unreasonable disruption, subject to confidentiality, and at your cost. We may exclude information whose disclosure would compromise the security of other customers.

12. International transfers

End-user events are stored in the European Union - Supabase on AWS eu-west-1, Ireland. Norway, where we are established, is in the EEA, so our own processing involves no third-country transfer.

Some sub-processors necessarily process data outside the EEA - a request hits the Cloudflare edge location nearest the device, and Stripe operates from the United States. Where that happens, the transfer relies on the European Commission's Standard Contractual Clauses, on an adequacy decision where one covers the recipient, or on another Chapter V mechanism, as recorded in each provider's own data processing terms. Annex 3 says which applies to whom.

13. Liability and precedence

The limitations and exclusions of liability in the terms of use apply to this agreement, except where GDPR Article 82 gives an individual rights that cannot be limited by contract.

If this agreement conflicts with the terms of use, this agreement wins for anything concerning the processing of end-user personal data. The terms of use govern everything else.

14. Changes

We may update this agreement to reflect changes in the service or in the law. For changes that materially reduce your rights or our obligations, we will give at least 30 days' notice by email to your account address before they take effect. Sub-processor changes follow section 6. We keep the effective date at the top of this page current.

Not legal advice. This agreement was drafted for AppGlance's actual architecture and is offered in good faith, but it is not legal advice and no lawyer has reviewed it on your behalf. If your organisation's compliance depends on it, have your own counsel read it - and tell us if something needs to change.

Annex 1 - details of processing

Subject matterProviding product analytics for the apps you register with AppGlance.
DurationFor as long as your account is open, plus the deletion periods in section 10. Raw events additionally expire on your plan's retention window.
Nature and purposeCollecting events from your app, storing them, aggregating them into counts and charts, showing them to you in the dashboard, and sending the alerts and webhooks you configure. No profiling on our behalf, no automated decisions with legal effect, no advertising.
Categories of data subjectsThe end users of the apps you ship with the AppGlance SDK.
Types of personal data - alwaysA random per-install identifier minted by the SDK; the event name and the time it happened; app version; OS name and version; build environment (App Store, TestFlight, simulator, debug); optionally the device's region setting as a two-letter country code.
Types of personal data - only if you chooseAnything you pass to identify: your own user id, email address, name, and up to twenty custom string properties. Anything you put in event metadata. You control whether any of this is ever sent.
Never collectedThe advertising identifier (IDFA/AAID), GPS or precise location, IP addresses stored as event data, contact lists, photos, health or biometric data, payment card data, or any cross-app or cross-site tracking identifier.
Special-category dataNot permitted. The terms forbid sending it and the product has no facility for it.
FrequencyContinuous, for as long as your app is in use.

Annex 2 - technical and organisational security measures

The measures below are in force as of the effective date at the top of this page.

Isolation between customers

Encryption

Access control

Data minimisation by design

Resilience, integrity and testing

Organisational

Annex 3 - sub-processors

These are the third parties that process end-user data on our behalf. Changes follow the 30-day notice process in section 6.

Sub-processorWhat it doesWhereTransfer basis
Supabase
(Supabase Inc.)
Managed PostgreSQL database and authentication. This is where events are stored. EU - AWS eu-west-1, Ireland No third-country transfer for storage; SCCs in Supabase's DPA for any support access.
Cloudflare
(Cloudflare, Inc.)
Ingest endpoint, site and dashboard hosting, DNS, rate limiting. Events pass through it; it does not retain them as a store of record. Global edge - the location nearest the device SCCs under Cloudflare's data processing addendum.
Stripe
(Stripe, Inc. / Stripe Payments Europe Ltd)
Subscription billing for plans bought on the website. Processes your billing data as our customer - it receives no end-user event data at all. EU and United States SCCs under Stripe's DPA. Listed for completeness.
RevenueCat
(RevenueCat, Inc.)
Subscription state for plans bought in the iOS app (App Store). Processes your account id and product state as our customer, never card data - it receives no end-user event data at all. United States SCCs under RevenueCat's DPA. Listed for completeness.
Apple
(Apple Inc.)
Push notification delivery (APNs) for the AppGlance iPhone app, if you use it. Carries alert text about your own apps, not end-user records. Global SCCs / adequacy as applicable. Listed for completeness.

We do not use any analytics, advertising, session-recording or customer-support tool that receives end-user event data.

Contact

Data protection questions, audit requests, sub-processor objections and anything else about this agreement: [email protected].

Ludyem AS, Norway. We have not appointed a data protection officer - our processing does not meet the Article 37 threshold - so the address above reaches the people responsible.