Revenue Report

    The Revenue Report allows you to view the revenue generated by users who installed the app or opened a deep link during the analysis period. Various revenue metrics and filters are available to create a customized report.


    Request Report

    POST

    https://api.airbridge.io/reports/api/v3/apps/{app_name}/revenue/query

    Request a Revenue Report.

    Request

    Headers

    Accept-Language
    string

    You can specify the language to use for API requests and responses. 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. Instructions for getting API keys are in "how to generate API Keys".

    Path Params

    app_name
    Requiredstring

    Airbridge App Name. (Unique ID)

    Body Params

    from
    Requiredstring

    The start date of the report data to request.

    • The date must be in the format 'YYYY-MM-DD'

    • This date must correspond with the timezone set in the Airbridge app. 

    • Future dates are not permitted.

    to
    Requiredstring

    The end date of the report data to request.

    • The date must be in the format 'YYYY-MM-DD'

    • This date must correspond with the timezone set in the Airbridge app.

    • The system only accepts dates up the current date. The time period available for querying is up to 92 days.

    cohorts
    object[]

    Only one cohort can be set up.

    You can see an example of cohort code here.

    groupBy
    Requiredobject

    Allows you to set a group by to divide the numbers for the metric you want to see.

    granularity
    Requiredenum

    The analytics interval period.

    ENUM VALUES
    day

    Analyze the data by day.

    week

    Analyze the data by week. Calculated in 7 day intervals from the start date.

    month

    Analyze the data by month. Calculated the same month from the start date until the corresponding date in the subsequent month. For example, given a start date of March 10, the same month would be pretended until April 10.

    intervalsPeriod
    integer

    The maximum number of intervals, or time ranges, by granularity.

    • If the granularity is day, week, or month, the default value is 30, 11, or 5, respectively.

    • If the granularity is day, week, or month, the maximum value is 120, 52, or 36, respectively. The minimum values are all 0.

    • The result includes a “0th” interval.

    startEvents
    Requiredenum[]

    The event that initiates a User Journey in the time period set.

    Users who do not trigger the set event are not analyzed in the report.

    ENUM VALUES
    app_install

    Install (App). Install events that occurred within the selected time period.

    app_deeplink_open

    Deeplink Open (App). Deeplink Open events that occurred within the selected time period.

    app_deeplink_pageview

    Deeplink Pageview (App). Deeplink Pageview events that occurred within the selected time period.

    app_sign_up

    Sign-up (App). Sign-up events that occurred within the selected time period.

    app_sign_in

    Sign-in (App). Sign-in events that occurred within the selected time period.

    returnEvents
    Requiredenum[]

    An in-app event performed by the user after performing a Start Event.

    It is possible to set up multiple return events.

    ENUM VALUES
    app_order_complete

    Order Complete (App). Order Complete event performed within the selected time period.

    app_first_order_complete

    First Order Complete (App). First Order Complete event performed within the selected time period.

    app_ad_impression

    Ad Impression (App). Ad Impression event performed within the selected time period.

    app_ad_click

    Ad Click (App). Ad Click event performed within the selected time period.

    app_subscribe

    Subscribe (App). Subscribe event performed within the selected time period.

    metric
    Requiredenum

    Report "Metrics".

    ENUM VALUES
    app_revenue

    Revenue(App). The revenue generated by the users who performed the Start Event and the Return Event. (In local currency) Support cumulative, on-day aggregation type.

    app_user_count

    User Count (App). The total number of unique users who performed revenue events. Support cumulative, on-day aggregation type.

    app_event_count

    Event Count (App). The total number of revenue events. Support cumulative, on-day aggregation type.

    app_roas

    ROAS (App). The return on ad spend of the users who performed the Start Event and the Retrun Event. (In local currency) Support cumulative aggregation type.

    app_arpu

    ARPU (App). The average revenue per user who performed the Start Event. (In local currency) Support cumulative aggregation type.

    app_arppu

    ARPPU (App). The average revenue per paying user who performed the Start Event. (In local currency) Support cumulative aggregation type.

    aggregationType
    Requiredenum

    View types for the report. [Reference]

    ENUM VALUES
    cumulative

    Cumulative aggregation. Accumulate numbers from the first day of the analysis period (Day 0) to the last day (Day N).

    on-day

    On Day (N-Day). View the isolated data of each day.

    filters
    Requiredobject[]

    The filter for providing 'group by' items.

    sorts
    Requiredobject[]

    Sort report data by 'Group By' or 'Metric'.

    resultSpec
    object

    The format of the result.

    Request
    12345
    curl -X POST 'https://api.airbridge.io/reports/api/v3/apps/{app_name}/revenue/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","groupBy":{"fields":["channel"]},"granularity":"day","intervalsPeriod":30,"startEvents":["app_install"],"returnEvents":["app_order_complete"],"metric":"app_revenue","aggregationType":"cumulative","filters":[{"field":"campaign","filterType":"IN","values":["App"]}],"sorts":[{"fieldName":"totalRevenue","isAscending":true}],"resultSpec":{"csv":{"includesTotal":true}}}'
    Payload
    123456789101112131415161718192021222324252627282930313233343536373839
    {
      "from": "2022-11-04",
      "to": "2022-11-11",
      "groupBy": {
        "fields": [
          "channel"
        ]
      },
      "granularity": "day",
      "intervalsPeriod": 30,
      "startEvents": [
        "app_install"
      ],
      "returnEvents": [
        "app_order_complete"
      ],
      "metric": "app_revenue",
      "aggregationType": "cumulative",
      "filters": [
        {
          "field": "campaign",
          "filterType": "IN",
          "values": [
            "App"
          ]
        }
      ],
      "sorts": [
        {
          "fieldName": "totalRevenue",
          "isAscending": true
        }
      ],
      "resultSpec": {
        "csv": {
          "includesTotal": true
        }
      }
    }

    Response

    200SUCCESS

    400ERROR

    Response
    12345
    {
      "data": {
        "taskId": "5e286bd4-b4b1-4c04-8f6a-asdf1234zxcv"
      }
    }

    Get Report

    GET

    https://api.airbridge.io/reports/api/v3/apps/{app_name}/revenue/query/{task_id}

    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 completed and returns the result.

    FAILURE

    The request has failed.

    CANCELED

    The request has been canceled.

    Response Notification

    If certain was was removed, refer to the reason in notification[0].code.

    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 responses. 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. Instructions for getting API keys are in "how to generate API Keys".

    Path Params

    app_name
    Requiredstring

    Airbridge App Name. (Unique ID)

    task_id
    Requiredstring

    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 50.

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

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

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

    Response

    200SUCCESS

    404ERROR

    Response
    1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
    {
      "data": {
        "stats": {
          "rows": [
            {
              "rows": [
                {
                  "date": "2021-11-01",
                  "total": {
                    "totalCost": {
                      "value": 0
                    },
                    "totalRevenue": {
                      "value": 10
                    },
                    "totalUniqueUsers": {
                      "value": 1,
                      "isMasked": true
                    }
                  },
                  "values": [
                    {
                      "value": 1,
                      "isMasked": false
                    },
                    {
                      "value": 2,
                      "isMasked": false
                    },
                    {
                      "value": 3,
                      "isMasked": false
                    },
                    {
                      "value": 4,
                      "isMasked": false
                    }
                  ]
                }
              ],
              "total": {
                "rows": [
                  {
                    "value": 1,
                    "isMasked": false
                  },
                  {
                    "value": 2,
                    "isMasked": false
                  },
                  {
                    "value": 3,
                    "isMasked": false
                  },
                  {
                    "value": 4,
                    "isMasked": false
                  }
                ],
                "totalCost": {
                  "value": 0
                },
                "totalRevenue": {
                  "value": 10.45
                },
                "totalUniqueUsers": {
                  "value": 1,
                  "isMasked": false
                }
              },
              "metadata": [
                "<groupBy>"
              ]
            }
          ]
        },
        "status": "SUCCESS",
        "taskId": "5e286bd4-b4b1-4c04-8f6a-670dc7ce637d",
        "endedAt": "2022-01-17T19:10:00.286939+09:00",
        "hasNext": false,
        "metadata": {
          "totalCount": 48
        }
      },
      "notification": [
        {
          "code": "AGG_DATA_MASKING_BY_FACEBOOK",
          "type": "info",
          "message": "some data is masked by facebook privacy policy."
        }
      ]
    }

    Was this page helpful?

    Have any questions or suggestions?