Actuals Report

    Actuals Report provides customization features for the metrics and data you intend to analyze.

    Using the various data fields provided by Airbridge, you can customize the report in all forms such as subdividing data into specific criteria, adding metrics on granular criteria, or applying filters.


    Request Report

    POST

    https://api.airbridge.io/reports/api/v7/apps/{app_name}/actuals/query

    Request Actuals Report.

    Request

    Headers

    Accept-Language
    string

    You can specify the language to use for API requests and result returns. It follows the ISO-639-1 format.

    Content-Type
    string

    Represents the media type of the resource. Defaults to application/json.

    Authorization
    string

    The key value to use for API requests. You can get it by checking out .

    Path Params

    app_name
    必須string

    Airbridge App Name. (Unique ID)

    Body Params

    from
    必須string
    to
    必須string
    groupBys
    必須string[]
    metrics
    必須string[]
    filters
    必須object[]
    sorts
    必須object[]
    option
    object
    Request
    12345
    curl -X POST 'https://api.airbridge.io/reports/api/v7/apps/{app_name}/actuals/query' \
      -H 'Accept-Language: ko' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}' \
      -d '{"from":"2022-11-04","to":"2022-11-11","groupBys":["event_source","event_type","event_category"],"metrics":["app_events"],"filters":[{"dimension":"channel","filterType":"IN","values":["App"]}],"sorts":[{"fieldName":"event_type","isAscending":true}]}'
    Payload
    123456789101112131415161718192021222324252627
    {
      "from": "2022-11-04",
      "to": "2022-11-11",
      "groupBys": [
        "event_source",
        "event_type",
        "event_category"
      ],
      "metrics": [
        "app_events"
      ],
      "filters": [
        {
          "dimension": "channel",
          "filterType": "IN",
          "values": [
            "App"
          ]
        }
      ],
      "sorts": [
        {
          "fieldName": "event_type",
          "isAscending": true
        }
      ]
    }

    Response

    200SUCCESS

    task.status

    #{"style":{"minWidth":"130px"}}

    PENDING

    Data aggregation is in preparation.

    RUNNING

    Data is being aggregated.

    SUCCESS

    The aggregation is completed and returns the result.

    FAILURE

    The request has failed.

    CANCELED

    The request has been canceled.

    404ERROR

    Response
    123456
    {
      "task": {
        "status": "RUNNING",
        "taskId": "5e286bd4-b4b1-4c04-8f6a-670dc7ce637d"
      }
    }

    Get Report

    GET

    https://api.airbridge.io/reports/api/v7/apps/{app_name}/actuals/query/{task_id}

    Request status

    The status of an asynchronous request can be checked with task.status in the API request result.

    #{"style":{"minWidth":"130px"}}

    PENDING

    Data aggregation is in preparation.

    RUNNING

    Data is being aggregated.

    SUCCESS

    The aggregation is complete and returns the result.

    FAILURE

    The request has failed.

    CANCELED

    The request has been canceled.

    Response Notification

    If certain data was removed or masked during aggregation (masking), refer to the the reason in notification[0].code.

    #{"style":{"minWidth":"310px"}}

    MEDIA_PARTNER_DATA_FILTERED_BY_CHANNEL

    The media partner requesting the data has not been granted the permission to view them.

    AGG_DATA_MASKING_BY_FACEBOOK

    The data has been removed according to Meta's privacy compliance policies.

    EXCEEDED_LIMIT_ON_MAX_ROW_COUNT

    The result has exceeded the maximum data value (10,000 rows per report). It is recommended that data is extracted using Raw Data Export.

    SAN_PERIOD_LIMIT

    The data has been removed according to Self-Attribution Networks' compliance policies. For example, removed data from 175 days ago that was attributed to Meta.

    Request

    Headers

    Accept-Language
    string

    You can specify the language to use for API requests and result returns. It follows the ISO-639-1 format.

    Content-Type
    string

    Represents the media type of the resource. Defaults to application/json.

    Authorization
    string

    The key value to use for API requests. You can get it by checking out .

    Path Params

    app_name
    必須string

    Airbridge App Name. (Unique ID)

    task_id
    必須string

    The task_id returned by the result of the 'Request Report' API.

    Query Params

    skip
    number

    The number of rows to be skipped.

    Get results except the first N number of rows.

    The default is 0.

    size
    number

    A limit on the number of rows to be returned.

    Get results of the next N rows after those skipped by the skip option.

    The default is 100.

    e.g.) ?skip=200&size=100

    In this case, it returns the rows 201 to 300. (skips first 200 rows, gets next 100 rows)

    keyword
    string

    The keywords to filter on GroupBy in the results.

    viewFormat
    booleannullable

    Determines whether to include format information used by the dashboard to represent values for the Actuals Report.

    If it set true, the format information (such as Meta ads masking) is included in the viewFormat field in the form of "{value}", "{value} +α", "Privacy Block", etc.

    The default is false.

    Request
    1234
    curl -X GET 'https://api.airbridge.io/reports/api/v7/apps/{app_name}/actuals/query/{task_id}?skip=0&size=100&viewFormat=false' \
      -H 'Accept-Language: ko' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

    Response

    200SUCCESS

    Returns the result when data aggregation is complete. If status is SUCCESS, sends it to actuals with data, metadata, messages, etc.

    200SUCCESS

    The asynchronous request is being processed.

    The API can be polled periodically to see the results, and the status of the request can be checked with task.status.

    Response
    123456789101112131415161718192021222324252627282930313233343536373839404142434445
    {
      "task": {
        "status": "SUCCESS",
        "taskId": "5e286bd4-b4b1-4c04-8f6a-670dc7ce637d",
        "endedAt": "2022-10-01T00:00:00+00:00"
      },
      "actuals": {
        "data": {
          "rows": [
            {
              "values": {
                "app_installs": {
                  "value": 100,
                  "isMasked": false,
                  "viewFormat": "{value}"
                }
              },
              "groupBys": [
                "<groupBy>"
              ]
            },
            {
              "values": {
                "app_installs": {
                  "value": 13,
                  "isMasked": true,
                  "viewFormat": "{value} +α"
                }
              },
              "groupBys": [
                "<groupBy>"
              ]
            }
          ]
        },
        "metadata": {
          "rowCount": 2
        }
      },
      "pagination": {
        "hasNext": true,
        "totalCount": 200
      },
      "notifications": []
    }

    Get Metadata (GroupBy)

    GET

    https://api.airbridge.io/dataspec/v2/apps/{app_name}/actual-report/fields

    Gets a list of available report groupbys. [Note]

    Request

    Headers

    Accept-Language
    string

    You can specify the language to use for API requests and result returns. It follows the ISO-639-1 format.

    Content-Type
    string

    Represents the media type of the resource. Defaults to application/json.

    Authorization
    string

    The key value to use for API requests. You can get it by checking out .

    Path Params

    app_name
    必須string

    Airbridge App Name. (Unique ID)

    Request
    1234
    curl -X GET 'https://api.airbridge.io/dataspec/v2/apps/{app_name}/actual-report/fields' \
      -H 'Accept-Language: ko' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

    Response

    200SUCCESS

    404ERROR

    There is an error in the field provided, or there is no such resource.

    Response
    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
    {
      "data": [
        {
          "fields": [
            {
              "key": "event_date",
              "name": "Event Date",
              "example": "2019-05-31",
              "description": "이벤트 발생 날짜와 시간 (YYYY-MM-DD)",
              "serveToFilter": true
            },
            {
              "key": "event_year",
              "name": "Event Year",
              "example": "2019",
              "description": "이벤트 발생 년도",
              "serveToFilter": true
            },
            {
              "key": "event_month",
              "name": "Event Month",
              "example": "04",
              "description": "이벤트 발생 월",
              "serveToFilter": true
            }
          ],
          "groupName": "Event Datetime",
          "parentGroupName": null
        },
        {
          "fields": [
            {
              "key": "event_source",
              "name": "Event Source",
              "example": "App",
              "description": "Event가 발생한 소스",
              "serveToFilter": true
            },
            {
              "key": "event_type",
              "name": "Event Type",
              "example": "Impression",
              "description": "Event 타입",
              "serveToFilter": true
            },
            {
              "key": "event_category",
              "name": "Event Category",
              "example": "Move to App Store (Link)",
              "description": "Event 카테고리",
              "serveToFilter": true
            }
          ],
          "groupName": "Event Hierarchy",
          "parentGroupName": null
        },
        {
          "fields": [
            {
              "key": "channel",
              "name": "Channel",
              "example": "moloco",
              "description": "Touchpoints 와 Conversion이 발생한 Channel\n",
              "serveToFilter": true
            },
            {
              "key": "campaign",
              "name": "Campaign",
              "example": "2018_summer_campaign",
              "description": "Touchpoints 와 Conversion이 발생한 Campaign \n(SAN Publisher 대시보드에서 입력한 값 또는 Tracking Link의 캠페인 파라미터 값)",
              "serveToFilter": true
            }
          ],
          "groupName": "Touchpoint",
          "parentGroupName": null
        }
      ]
    }

    Get Metadata (Metric)

    GET

    https://api.airbridge.io/dataspec/v2/apps/{app_name}/actual-report/metrics

    Query the available report metrics. [Note]

    Request

    Headers

    Accept-Language
    string

    You can specify the language to use for API requests and result returns. It follows the ISO-639-1 format.

    Content-Type
    string

    Represents the media type of the resource. Defaults to application/json.

    Authorization
    string

    The key value to use for API requests. You can get it by checking out .

    Path Params

    app_name
    必須string

    Airbridge App Name. (Unique ID)

    Request
    1234
    curl -X GET 'https://api.airbridge.io/dataspec/v2/apps/{app_name}/actual-report/metrics' \
      -H 'Accept-Language: ko' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

    Response

    200SUCCESS

    404ERROR

    There is an error in the field you entered, or there is no such resource.

    Response
    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
    {
      "data": [
        {
          "fields": [
            {
              "key": "touchpoints_impression_click",
              "name": "Touchpoints (Impression+click)",
              "description": "Impression 수와 Click 수의 합"
            },
            {
              "key": "impressions",
              "name": "Impressions",
              "description": "Impression 수"
            },
            {
              "key": "clicks",
              "name": "Clicks",
              "description": "Click 수"
            }
          ],
          "groupName": "Touchpoint",
          "parentGroupName": "Touchpoint"
        },
        {
          "fields": [
            {
              "key": "app_events",
              "name": "Events (App)",
              "description": "앱에서 발생한 이벤트 수"
            },
            {
              "key": "app_event_value",
              "name": "Event 값 (App)",
              "description": "앱에서 발생한 이벤트 값의 합"
            }
          ],
          "groupName": "App Event",
          "parentGroupName": "App"
        },
        {
          "fields": [
            {
              "key": "app_installs",
              "name": "Installs (App)",
              "description": "Install 수"
            },
            {
              "key": "app_first_installs",
              "name": "First Installs (App)",
              "description": "최초로 설치된 Install 수"
            }
          ],
          "groupName": "App Install",
          "parentGroupName": "App"
        },
        {
          "fields": [
            {
              "key": "app_sign_up",
              "name": "회원가입 (App)",
              "description": "앱에서 발생한 회원가입 이벤트 수"
            },
            {
              "key": "app_sign_in",
              "name": "로그인 (App)",
              "description": "앱에서 로그인 이벤트 수"
            },
            {
              "key": "app_sign_out",
              "name": "로그아웃 (App)",
              "description": "앱에서 로그아웃 이벤트 수"
            }
          ],
          "groupName": "App Standard Event",
          "parentGroupName": "App"
        }
      ]
    }

    このページは役に立ちましたか?

    ご質問やご提案はありますか?