> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appcharge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Offer Popup Closed

An event triggered when a player closes a popup offer in the web store.

**Event Data**

<ResponseField name="eventName" type="string">
  Event name: `webstore.offers.popup_closed`.
</ResponseField>

<ResponseField name="eventId" type="string">
  Event ID. Use this ID to deduplicate re-delivered events.
</ResponseField>

<ResponseField name="timestamp" type="number">
  Event timestamp in [Epoch time](https://www.epoch101.com/), represented in milliseconds. Example: `1754307361396`.
</ResponseField>

<ResponseField name="sessionId" type="string">
  The [session ID](/../../api-reference/events/v2/introduction#session-id) of the player's current session. Example: `345397c6-d963-4aa4-a0ba-2aaca6c3ee05`.
</ResponseField>

<ResponseField name="requestId" type="string">
  ID assigned by Appcharge to each request sent to the publisher. Helps the publisher identify and debug failed requests.
</ResponseField>

<ResponseField name="result" type="string">
  Event result. Supported values: `success`, `failed`.
</ResponseField>

<ResponseField name="reason" type="string">
  Reason for the event result. Example: `invalid_credentials`.
</ResponseField>

<ResponseField name="attributes" type="map<any,any>">
  A key-value map used to label events for tracking personas or tests. Example: `{ "persona":"non_payer", "blackFridayTest":"Base_group" }`
</ResponseField>

<ResponseField name="customer" type="object">
  Information about the player.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      Player ID.
    </ResponseField>

    <ResponseField name="email" type="string">
      Player's email address.
    </ResponseField>

    <ResponseField name="name" type="string">
      Currently null. Reserved for the player's name in future versions.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="offer" type="object">
  Offer information.

  <Expandable title="properties">
    <ResponseField name="externalId" type="string">
      External ID of the offer as configured in the Publisher Dashboard.
    </ResponseField>

    <ResponseField name="type" type="string">
      Offer type.
    </ResponseField>

    <ResponseField name="subType" type="string">
      Offer subtype.
    </ResponseField>

    <ResponseField name="name" type="string">
      Offer name.
    </ResponseField>

    <ResponseField name="offerIndex" type="number">
      The index of the offer.
    </ResponseField>

    <ResponseField name="indexToCollect" type="number">
      Position of the sub-offer currently available to be collected in a Rolling offer.
    </ResponseField>

    <ResponseField name="tab" type="string">
      Tab name in the Publisher Dashboard associated with the offer.
    </ResponseField>

    <ResponseField name="pricePoint" type="number">
      Price point of the offer in USD cents.
    </ResponseField>

    <ResponseField name="price" type="number">
      Price in lowest currency unit. For example, cents for USD, and whole yen for JPY. For a list of of supported currencies, their minor unit types, and applicable pricing limitations, see [Supported Currencies](/../../merchant-of-record/finance/supported-currencies#supported-currencies).
    </ResponseField>

    <ResponseField name="currencyCode" type="string">
      Currency code of the offer in [ISO\_4217](https://en.wikipedia.org/wiki/ISO_4217) format.
    </ResponseField>

    <ResponseField name="products" type="[object]">
      List of products in an offer.

      <Expandable title="properties">
        <ResponseField name="displayName" type="string">
          Display name of the product.
        </ResponseField>

        <ResponseField name="productExternalId" type="string">
          External ID of the product as configured in the Publisher Dashboard.
        </ResponseField>

        <ResponseField name="productQuantity" type="string">
          The quantity of the product. Must be a minimum 0 and equal to or less than 24 digits long.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="storeMetadata" type="object">
  <Expandable title="properties">
    <ResponseField name="offersSequenceIndex" type="number">
      Index of the sub-offer within an offer.
    </ResponseField>

    <ResponseField name="offerType" type="string">
      Offer type.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="utm" type="object">
  UTM data.

  <Expandable title="properties">
    <ResponseField name="utmSource" type="string">
      Source of the traffic. This is where the player came from before reaching the store. Example: `Google`.
    </ResponseField>

    <ResponseField name="utmMedium" type="string">
      Marketing channel used to bring in the traffic. Example: `email`.
    </ResponseField>

    <ResponseField name="utmCampaign" type="string">
      Identifies the marketing campaign associated with the traffic. Example: `black_friday`.
    </ResponseField>

    <ResponseField name="utmTerm" type="string">
      Paid search keyword or term that generated the traffic. Example: `buy+coins`.
    </ResponseField>

    <ResponseField name="utmContent" type="string">
      A label that identifies which version of content a player clicked to reach the web store. Useful for A/B testing and analyzing performance of different ad or link variations within the same campaign. Example: `summer_sale_ad1`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="device" type="object">
  Information about the player's device.

  <Expandable title="properties">
    <ResponseField name="platform" type="string">
      Device platform. Example: `iOS`.
    </ResponseField>

    <ResponseField name="deviceModel" type="string">
      Device model. Example: `iPhone 16 Pro`.
    </ResponseField>

    <ResponseField name="osType" type="string">
      Operating system type. Example: `Android`.
    </ResponseField>

    <ResponseField name="osVersion" type="string">
      Operating system version.
    </ResponseField>

    <ResponseField name="browserType" type="string">
      Browser type. Example: `Google Chrome`.
    </ResponseField>

    <ResponseField name="browserVersion" type="string">
      Browser version.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="geolocation" type="object">
  Information about the player's geolocation.

  <Expandable title="properties">
    <ResponseField name="countryCode2" type="enum">
      Two-letter country code in [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. Example: `US`
    </ResponseField>

    <ResponseField name="region" type="string">
      Region or state.
    </ResponseField>

    <ResponseField name="ipAddress" type="string">
      IP address in [IPv4](https://en.wikipedia.org/wiki/IPv4) format. Example: `80.178.249.122`.
    </ResponseField>

    <ResponseField name="zipCode" type="string">
      Zip code.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="sessionMetadata" type="any">
  Session metadata for passing data to Appcharge to be returned later.
</ResponseField>

<ResponseExample>
  ```json Event Payload theme={"system"}
  {
    "eventName": "webstore.offers.popup_closed",
    "eventId": "d11120c7-00e8-45a3-befe-4b6e4b61d935",
    "timestamp": 1771163366957,
    "sessionId": "e8a56ae6-bf1c-45f9-94d0-7768517ff9d4",
    "requestId": "c48ee942-d707-4300-b326-15274d5a8753",
    "result": null,
    "reason": null,
    "attributes": null,
    "customer": {
      "id": "671e81bb-55ef-428b-97ba-f67783971e0d",
      "name": null,
      "email": "john.doe@gmail.com"
    },
    "offer": {
      "externalId": "daily-bonus",
      "type": "PopUp",
      "subType": "DailyBonus",
      "name": "daily-bonus",
      "offerIndex": 1,
      "indexToCollect": 1,
      "tab": "1",
      "pricePoint": 800,
      "price": 800,
      "currencyCode": "USD",
      "products": [
        {
          "displayName": "Gold Coins",
          "productExternalId": "31ae81bb-55ef-428b-97ba-f67783971e553",
          "productQuantity": "1000"
        }
      ]
    },
    "storeMetadata": {
      "offersSequenceIndex": 1,
      "offerType": "Popup"
    },
    "device": {
      "platform": "DESKTOP",
      "osType": "Mac",
      "osVersion": "10.15",
      "browserType": "Chrome",
      "browserVersion": "143.0",
      "deviceModel": ""
    },
    "geolocation": {
      "countryCode2": "US",
      "region": "NY",
      "ipAddress": "185.199.103.227",
      "zipCode": "10118"
    },
    "utm": {
      "utmSource": null,
      "utmMedium": null,
      "utmCampaign": null,
      "utmTerm": null,
      "utmContent": null
    },
    "sessionMetadata": { "abTest": "group1", "locale": "en-US" }
  }
  ```
</ResponseExample>
