Skip to main content
Altcraft Docs LogoAltcraft Docs Logo
User guide iconUser guide
Developer guide iconDeveloper guide
Admin guide iconAdmin guide
English
  • Русский
  • English
Login
    User documentationGetting StartedFAQAltcraft glossary
      Profiles and databasesarrow
    • Subscription resourcesManaging databasesSubscriber profileProfiles import and data updateCommon Errors When Importing ProfilesScheduled customer data importManaging Data TablesAutomatic data collectionBulk customers profiles updateDouble opt-in subscriptionSuppression listsProfile relationsProfile history exportProfile exportCreating a static segment based on import resultsHow to open a CSV fileMatchingTypes of fields in the databaseGlobal control groupsSubscription Manager
      Communication channelsarrow
      • Email channelarrow
      • Email: ISP interactions best practices
          First mailingarrow
        • Quick StartEmail
        Email: sending domain configurationEmail: setting up and using postmastersHow email tracking works
        Push Channelarrow
        • Mobile Pusharrow
        • First Mobile Push MailingSetup and Connection
            Mobile Push Providersarrow
          • Firebase Cloud MessagingApple Push Notification ServiceHuawei Mobile ServicesRuStoreYandex.AppMetrica
            Integrate your app with Altcraftarrow
          • Обработка и добавление подпискиРегистрация событийПровайдеры: структура push-сообщения
          Web Pusharrow
        • First Web Push MailingResource and Website Setup
            Web Push Providersarrow
          • Firebase Cloud messagingApple SafariMozilla Services
          Transferring Data to the PlatformWeb Push SDK MethodsPWA and Push Notifications
            Migration and Subscription Transferarrow
          • Migrating push subscriptions from third-party servicesHow to transfer push subscriptions configured for Safari?Migration from OneSignal
        SMS channelarrow
      • SMS
      WhatsAppViber*™
        Telegramarrow
      • Telegram BotTelegram Group
        Maxarrow
      • MAX BotMAX Group
      NotifyCommunication Channels WorkflowРуководство: SMS-рассылка через VK NotifyРуководство: SMS-рассылка через УТШРуководство: push-рассылка через сервис от "Согласие"
      Segmentationarrow
    • Static SegmentsDynamic SegmentsUpdatable Segments
        Segmentation Conditionsarrow
      • Segmentation by Profile dataSegmentation by Interactions with EntitiesSegmentation by Activity of the channelSegmentation by external dataSegmentation by external SQL tablesSegmentation by Profile structure
      Best Send Time (BST)Logical operators "AND" and "OR"Recommendations for working with segments
      Message templatesarrow
      • Working with message templatesarrow
      • Working in the editorEmail templateSMS templatePush templateMAX templateTelegram templateWhatsApp templateViber templateNotify template
        Visual editor for email-templatearrow
      • Visual editor interfaceAdding blocksElements and their settingsCustom blocksStyle managerLayer manager
      Template fragmentsImage galleryContent personalizationCreating tables based on array elementsBlock editor for email template
        Altcraft Variables and Functionsarrow
      • Logical expressions in messagesLoops in messagesMarket variables in templatesUsing the JSONPath functionality
        Dynamic content in messagesarrow
      • Dynamic HTML contentDynamic JSON contentContent from SQL database in templatesDynamic API content
      Importing and exporting a message templateImporting a template from a third-party serviceExporting a template from Pixcraft
      Mailingsarrow
    • Broadcast mailingsTrigger mailingRegular mailingMultivariate testingPlacement mailingMailing testingMailing scheduleMailings calendarManaging the Sender Queue
      Automation scenariosarrow
    • Managing scenariosNodes of the scenarioClassic marketing scenariosStep-by-step welcome scenario guideScenario for automatic notification of the managerAbandoned cart scenario
      Marketarrow
    • Market settings
        Productsarrow
      • How to create a product manuallyHow to import a product from a fileScheduled product importProduct and SKU SegmentsPreparing the YML file
      OrdersMarket variables in message templateGuide: how to send an order confirmation email
      Loyalty programsarrow
    • Loyalty programsLoyalty integration with external systemsCreating a loyalty program from scratchBasic loyalty program use casesOrder SegmentsPromotion codes
      Reports and analyticsarrow
    • Channel reportTraffic report
        Summary reportarrow
      • Summary report metrics
      Cohorts reportLifetime reportFunnels reportGoals reportAudience growth reportClick map reportLoyalty programs reportBounces reportUndeliveries reportReport on global control groups
      Integrationsarrow
      • Action hooksarrow
      • Altcraft Action HooksAction hooks event typesAction Hook Message StructureJSON batch request (HTTP POST action hook)Message to RabbitMQ brokerMessage to RabbitMQ exchangerMessage to Kafka brokerTest event
        Integration of third-party services using Albatoarrow
      • Connecting Altcraft to Albato Launching the welcome scenario using AlbatoTransmitting event dataSetting up a trigger mailingEvent registrationGoogle Sheets and Altcraft integration AmoCRM and Altcraft integration
      Facebook Ads Manager™Google Ads AudiencesMAXYandex.Audience™VK AdsStatic segment synchronizationYandex AppMetrica™Tilda™Lpgenerator™WhatsAppViber integrationIntegration scopeData Transmitted During SynchronizationNotify
      Weblayersarrow
      • Formsarrow
        • Create a formarrow
        • General settingsForm customization with custom codeForm constructorAppearanceActions and form publicationConditional logic in forms and surveys
        Data analyticsBinding data channel and formsNPS testing
        Pixelsarrow
      • Goal customer actions and scoring
        Pop-upsarrow
      • Creating and publishing a pop-upSetting up a popup in the code editorManaging pop-ups manually via scriptPopup analyticsGuide: pop-up for push subscriptionsCase: Creating a pop-up with the "Wheel of Fortune" widgetBasic cases of placing a popup via the Tag Manager
        Tag Managerarrow
      • Configuring and installing Tag ManagerTrigger typesVariable typesLinking a pixel and the Tag manager
      Settingsarrow
    • Account settingsCustom linksVirtual sendersSending policiesAudit journalTags FAQ
        Users, groups and accessarrow
      • Two-Factor Authentication (2FA)
        Connectionsarrow
      • Connection to Facebook Ads ManagerConnection to Google AdsConnecting to Yandex.Audience™Connection to 360dialogConnection to EdnaConnection to Devino TelecomConnection to SMSTrafficConnection to VK Ads™Connection to MTS OmniChannelCustom Authentication ConnectionOAuth2 connectionBasic Authentication connectionToken Authentication connectionConnection to RapportoMAX connectionConnection to Notify
      Attribute settings
      API requests: where to startarrow
    • Import or update a profileTrigger mailing launchEngage profile in scenario
      Changelogarrow
    • v2026.2.77v2026.1.76v2025.4.75v2025.4.74v2025.3.73v2025.2.72v2025.1.71v2024.4.70v2024.3.69v2024.2.68.2v2024.1.68
    Documentation archiveEmail Marketer's Library
      Campaignsarrow
    • Working with CampaignsLocal control groups (LCG)Stratification Violation ErrorAudience expansionAudience building
  • Communication channels
  • Email channel
  • How email tracking works

How email tracking works

The Altcraft platform tracks recipient engagement with email messages using invisible tracking pixels. Based on pixel loading data, the platform generates metrics for opens, glances, skims, and reads.

Tracking Pixel Placement

Whenever possible, place tracking pixels closer to the beginning of the email. This ensures that the email client loads them sooner and reduces the risk that Gmail clipping will prevent an open from being recorded. However, the pixels must be carefully embedded in the HTML template so that they do not affect the email layout.

Tracking mechanism​

Two invisible 4×4 pixels are automatically added to each email:

  • Open pixel — placed at the end of the email. When this pixel loads, the platform records an email open event. If the pixel does not load (for example, images are blocked), the open may be registered on the first click on a link within the email.
  • Read pixel — placed after the main content. When this pixel is requested, the server keeps the HTTP connection open for up to 12 seconds and measures how long the mail client holds the connection.

Based on the HTTP connection duration, the event type is determined:

Event typeNameDuration
GlanceGlanced0–4 seconds
SkimSkimmed4–8 seconds
ReadRead8+ seconds

If the connection is closed before 12 seconds (for example, the recipient closed the email), the actual viewing time is recorded and the corresponding event type is registered. The maximum wait time is 12 seconds: if the email stays open longer, the server closes the connection and registers the event as a read.

Email client limitations​

Not all email clients load tracking pixels correctly. Below are the main scenarios where metrics may be incomplete or missing.

Remote image blocking​

Some email clients block remote content by default, including tracking pixels:

  • Outlook — remote content blocking is enabled by default. The user must manually click "Download Images" for each email.
  • Thunderbird — image blocking is enabled by default.
  • Yahoo Mail — may block remote content.

Consequence: pixels do not load, opens and reads are not recorded.

Solution: add the platform's tracking domain to the image blocking exceptions.

Image proxy servers​

Some email services do not load images directly from the sender's server, but through their own proxy:

  • Gmail Image Proxy — all images in emails are loaded through Gmail's proxy. The pixel is opened, but the HTTP connection is closed immediately after loading, so the viewing time is zero.
  • Apple Mail Privacy Protection (MPP) — images are loaded through Apple's proxy with randomized timing. The open is recorded, but the viewing time does not reflect the user's actual behavior.
  • Corporate proxies (Proofpoint, Mimecast, etc.) — similar to Gmail's proxy, load pixels through an intermediate server.

Consequence: the open is recorded, but glanced/skimmed/read metrics do not work — the proxy does not keep the HTTP connection open, so timeload ≈ 0 and only a glanced event with zero is registered.

Gmail prefetching​

Gmail may pre-load images from emails even if the recipient has not opened the email — for example, when displaying in the preview pane or when indexing content.

Consequence: a false open is recorded, even though the email was not actually viewed.

Gmail clipping​

Gmail may truncate long emails, removing part of the content, including tracking pixels, if they are located beyond the truncated area.

Consequence: the pixel does not load, the open is not recorded.

Why glanced/skimmed/read may not be recorded​

The glanced/skimmed/read metrics are based on measuring the HTTP connection duration when loading the read pixel. This mechanism works only with a direct connection between the mail client and the tracking server.

When the request goes through a proxy server:

  1. The proxy loads the pixel on behalf of the client
  2. The proxy saves the image and delivers it to the client
  3. The HTTP connection between the proxy and the tracking server closes immediately after loading
  4. The server records timeload ≈ 0 and registers a glanced event

Thus, glanced/skimmed/read metrics work only with a direct connection without a proxy. Through a proxy, the only reliable signal is the open event (request received or not).

Recommendations​

How to check if a client blocks images​

Send a test email to your own address and open it in the problematic mail client. If the report does not record an open, the client blocks remote images or uses a proxy.

How to add the tracking domain to exceptions​

Find out from the platform administrator which domain is used for tracking. Add this domain to your mail client's exceptions list:

  • Outlook: allow automatic image loading or add the domain to trusted senders (the exact path depends on your Outlook version).
  • Thunderbird: Settings — Privacy — Uncheck "Warn me when web sites try to load images".
  • Apple Mail: Settings — Privacy — Uncheck "Load remote images through proxy".

Which metrics to rely on when working through proxies​

If most of your audience uses email services with image proxying (Gmail, Apple Mail), the glanced/skimmed/read metrics will be incomplete. In this case, it is recommended to focus on:

  • Opens — a "yes/no" metric that works even through proxies.
  • Clicks (CTR) — do not depend on tracking pixels, reflect real engagement with content.
  • CTOR — the percentage of clicks from opens, shows engagement among those who opened the email.
Last updated on Jul 28, 2026
Previous
Email: setting up and using postmasters
Next
Push Channel
  • Tracking mechanism
  • Email client limitations
    • Remote image blocking
    • Image proxy servers
    • Gmail prefetching
    • Gmail clipping
  • Why glanced/skimmed/read may not be recorded
  • Recommendations
    • How to check if a client blocks images
    • How to add the tracking domain to exceptions
    • Which metrics to rely on when working through proxies
© 2015 - 2026 Altcraft, LLC. All rights reserved.