openapi: 3.0.3 info: title: SKAN CV schema API for ad networks version: '0.1' servers: - url: https://hq1.appsflyer.com/api/skad/conversion_schema security: - bearerAuth: [] paths: /v1: get: tags: - SKAN CV schema API for ad networks summary: Get SKAN 3 CV schema description: Specify one or more apps using the app ID operationId: get-conversion-value-mapping-schema parameters: - name: app_id in: query description: Set 0-many app IDs. If no app ID is set, the schema of all apps returns. In all other cases, the schema of the specified app IDs returns. style: form explode: true schema: type: array items: type: string responses: '200': description: OK content: application/json: schema: type: object properties: data: type: object properties: app_id: type: string description: App Store app id configuration_mode: type: string description: Measurment mode selected set by the advertiser last_config_change: type: string description: Time the advertiser updated the conversion value settings measurement_window: type: integer description: Activity window duration (in hours) conversion_value_mapping: type: array description: Conversion values mapping items: $ref: '#/components/schemas/CvMapping' example: data: - app_id: id12345678 configuration_mode: custom_decode measurement_window: 24 last_config_change: '2021-02-03 09:32:07.362' conversion_value_mapping: - conversion_value: 1 events: - event_name: af_purchase mapped_event_name: af_purchase conversion_event: false event_counter: 3 event_revenue: 5 min_event_counter: 3 max_event_counter: 6 min_event_revenue: 4.001 max_event_revenue: 5 event_currency: USD event_revenue_usd: 5 min_time_post_install: 6 max_time_post_install: 12 - conversion_value: 34 events: - event_name: NewDevice mapped_event_name: NewDevice conversion_event: true event_counter: 5 event_revenue: 6 min_event_revenue: 5.001 max_event_revenue: 6 event_currency: USD event_revenue_usd: 6 - event_name: AchievedLevel1 mapped_event_name: AchievedLevel1 conversion_event: false event_counter: 6 '400': description: Request is malformed content: application/json: examples: Request malformed: value: '{}' schema: type: object properties: {} '401': description: Authentication error content: text/plain: examples: Authentication error: value: '{}' schema: type: object properties: {} '404': description: Server error or resource temporarily not found content: text/plain: examples: Server error: value: '{}' schema: type: object properties: {} '429': description: Exceeded rate limitation content: text/plain: examples: Result: value: Exceeded rate limitation /v2: get: tags: - SKAN CV schema API for ad networks summary: Get SKAN 4 CV schema description: Specify one or more apps using the app ID operationId: get-conversion-value-mapping-schema-v2 parameters: - name: app_id in: query description: Set 0-many app IDs. If no app ID is set, the schema of all apps returns. In all other cases, the schema of the specified app IDs returns. style: form explode: true schema: type: array items: type: string responses: '200': description: OK content: application/json: schema: type: object properties: data: type: object properties: app_id: type: string description: App Store app ID configuration_mode: type: string enum: - skan4 description: Measurement mode selected set by the advertiser last_config_change: type: string description: Time the advertiser updated the conversion value settings measurement_window: type: integer description: Measurement window duration (in hours) postbacks: type: array items: anyOf: - $ref: '#/components/schemas/Postback_First' - $ref: '#/components/schemas/Postback_SecondThird' example: data: app_id: id12345678 last_config_change: '2022-11-07 09:32:07.362' configuration_mode: skan4 postbacks: - postback_sequence_index: 0 measurement_window: 48 lock_window_type: in-app lock_window_event: af_purchase conversion_value_mapping: fine: - conversion_value: 0 min_time_post_install: 0 max_time_post_install: 48 events: [] - conversion_value: 5 min_time_post_install: 0 max_time_post_install: 48 events: - event_name: af_trial_purchase mapped_event_name: mobile_add_to_cart conversion_event: false event_counter: 1 min_event_counter: 0 max_event_counter: 1 coarse: - conversion_value: low min_time_post_install: 0 max_time_post_install: 48 events: - event_name: af_app_opened mapped_event_name: mobile_active_app conversion_event: false event_counter: 1 min_event_counter: 0 max_event_counter: 1 min_event_revenue: 4.001 max_event_revenue: 5 event_currency: USD event_revenue_usd: 4.5 - postback_sequence_index: 1 measurement_window: 168 lock_window_type: in-app lock_window_event: af_purchase conversion_value_mapping: coarse: - conversion_value: medium measurement_window: 168 min_time_post_install: 48 max_time_post_install: 168 events: - event_name: af_app_opened mapped_event_name: mobile_active_app conversion_event: false event_counter: 1 min_event_counter: 0 max_event_counter: 1 min_event_revenue: 4.001 max_event_revenue: 5 event_currency: USD event_revenue_usd: 4.5 - postback_sequence_index: 2 measurement_window: 840 lock_window_type: high-coarse conversion_value_mapping: coarse: - conversion_value: high measurement_window: 840 min_time_post_install: 168 max_time_post_install: 840 events: - event_name: rv_10 mapped_event_name: mobile_add_to_cart conversion_event: false event_counter: 1 min_event_counter: 0 max_event_counter: 1 min_event_revenue: 4.001 max_event_revenue: 5 event_currency: USD event_revenue_usd: 4.5 '400': description: Request is malformed content: application/json: examples: Request malformed: value: '{}' schema: type: object properties: {} '401': description: Authentication error content: text/plain: examples: Authentication error: value: '{}' schema: type: object properties: {} '404': description: Server error or resource temporarily not found content: text/plain: examples: Server error: value: '{}' schema: type: object properties: {} '429': description: Exceeded rate limitation content: text/plain: examples: Result: value: Exceeded rate limitation components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT schemas: CvMapping: properties: conversion_value: description: Conversion value type: integer minimum: 0 maximum: 63 events: type: array items: $ref: '#/components/schemas/EventV3' min_time_post_install: type: integer description: The lower bound, hours post-install, indicating when the user was last active in the app. max_time_post_install: type: integer description: The upper bound, hours post-install, indicating when the user was last active in the app EventV3: properties: event_name: type: string description: Advertiser in-app event name mapped_event_name: type: string description: Partner's in-app event name. The advertiser maps event_name to mapped_event_name on a per app basis in AppsFlyer. event_counter: type: integer description: The number of times the user performed an event. conversion_event: type: boolean description: In the case of more than one event, if true, this event is a conversion event as defined by the advertiser event_currency: type: string description: Currency for event_revenue event_revenue: type: integer description: In case of a revenue event, monetary value using event_currency min_event_revenue: type: number format: float description: The lower bound of the event revenue range max_event_revenue: type: number format: float description: 'The upper bound of the event counter range. Example: To calculate the revenue, (min_event_revenue + max_event_revenue)/2' event_revenue_usd: type: number format: float description: In case of a revenue event, monetary value min_event_counter: type: integer description: The lower bound of the event counter range max_event_counter: type: integer description: 'The upper bound of the event counter range. Example: To calcualte the number of ocurrences, roundup (min_event_counter + max_event_counter )/ 2' Postback_First: title: First postback properties: postback_sequence_index: type: integer description: "Integer that represents the sequence number of SKAN postback Possible values: `0` \n" measurement_window: $ref: '#/components/schemas/MeasurementWindow' lock_window_type: $ref: '#/components/schemas/LockWindowType' lock_window_event: $ref: '#/components/schemas/LockWindowEvent' conversion_value_mapping: type: array description: Conversion values mapping items: type: object properties: fine: type: array items: $ref: '#/components/schemas/FineConversionValue' coarse: type: array items: $ref: '#/components/schemas/CoarseConversionValue' Postback_SecondThird: title: Second and third postbacks properties: postback_sequence_index: type: integer description: 'Integer that represents the sequence number of SKAN postback. Possible values: 1, 2 ' measurement_window: $ref: '#/components/schemas/MeasurementWindow' lock_window_type: $ref: '#/components/schemas/LockWindowType' lock_window_event: $ref: '#/components/schemas/LockWindowEvent' conversion_value_mapping: type: array description: Conversion values mapping items: type: object properties: coarse: type: array items: $ref: '#/components/schemas/CoarseConversionValue' MeasurementWindow: type: integer description: Activity window duration (in hours) LockWindowType: type: string description: 'The trigger that causes the window to lock. Possible values: `in-app`, `time`, `high-coarse`, `other` ' LockWindowEvent: type: string description: 'The name of the in-app event that locks the window ' FineConversionValue: properties: conversion_value: description: 'Conversion value. Possible values: 0-63' type: integer minimum: 0 maximum: 63 min_time_post_install: type: integer description: The lower bound of hours post-install, indicating when the user was last active in the app. max_time_post_install: type: integer description: The upper bound of hours post-install, indicating when the user was last active in the app events: type: array items: $ref: '#/components/schemas/EventV4' CoarseConversionValue: properties: conversion_value: description: 'Conversion value. Possible values: `low`, `medium`, `high`' type: string enum: - low - medium - high min_time_post_install: type: integer description: The lower bound of hours post-install, indicating when the user was last active in the app. max_time_post_install: type: integer description: The upper bound of hours post-install, indicating when the user was last active in the app events: type: array items: $ref: '#/components/schemas/EventV4' EventV4: properties: event_name: type: string description: Advertiser in-app event name mapped_event_name: type: string description: Partner's in-app event name. The advertiser maps event_name to mapped_event_name on a per app basis in AppsFlyer. event_counter: type: integer description: The number of times the user performed an event. conversion_event: type: boolean description: In the case of more than one event, if true, this event is a conversion event as defined by the advertiser event_currency: type: string description: Currency for `min_event_revenue` and `max_event_revenue` min_event_revenue: type: number format: float description: The lower bound of the event revenue range max_event_revenue: type: number format: float description: 'The upper bound of the event counter range. Example: To calculate the revenue, (min_event_revenue + max_event_revenue)/2' event_revenue_usd: type: number format: float description: In case of a revenue event, monetary value min_event_counter: type: integer description: The lower bound of the event counter range max_event_counter: type: integer description: 'The upper bound of the event counter range. Example: To calcualte the number of ocurrences, roundup (min_event_counter + max_event_counter )/ 2'