Skip to content

Ad Account

An ad account is the billing and reporting container for one advertiser app. Nova Play runs one ad account per game, so there are 10 ad accounts: 6 Android games and 4 iOS games. All accounts bill in USD and report in the UTC timezone.

Ad account ids are always written with the act_ prefix in paths and in the id field (act_199454714457591). The bare numeric id is available as account_id (199454714457591); insights rows use the bare form.

Fields

Field Type Description
id string Account id with act_ prefix. Always returned.
account_id string Numeric account id without prefix. Matches account_id in insights rows.
name string Game name followed by the OS in parentheses, e.g. Dragon Merge Saga (Android).
currency string ISO currency code. Always USD.
timezone_name string Reporting timezone. Always UTC.
timezone_offset_hours_utc int Always 0.
account_status int 1 = ACTIVE. All Nova Play accounts are active.
disable_reason int Always 0.
is_prepay_account bool Always false.
business object { "id", "name" } of the owning business (Nova Play).
created_time datetime YYYY-MM-DDTHH:MM:SS+0000.
promoted_app_store_url string Store listing of the game this account promotes. The app id is the id= query parameter (Google Play) or the last path segment (App Store).

Default fields when fields is omitted: id,account_id.

Edges

Edge Description
/act_<id>/campaigns Campaigns in the account.
/act_<id>/adsets All ad sets in the account, across campaigns.
/act_<id>/ads All ads in the account, across ad sets.
/act_<id>/insights Performance at any level (account, campaign, adset, ad).

List ad accounts: GET /me/adaccounts

Returns every ad account the token can read.

Parameter Type Required Description
access_token string yes Personal token (or Authorization: Bearer).
fields string no Comma-separated list of the fields above. Default id,account_id.
limit int no Page size, default 25, maximum 500. There are only 10 accounts, so one page is enough.
after string no Cursor from a previous page. See Paging.
curl -G "https://graph.huydata.com/v21.0/me/adaccounts" \
  -d "access_token=$META_ACCESS_TOKEN" \
  -d "fields=id,name,account_id,currency,timezone_name,account_status,promoted_app_store_url,business"
{
  "data": [
    {
      "id": "act_199454714457591",
      "name": "Dragon Merge Saga (Android)",
      "account_id": "199454714457591",
      "currency": "USD",
      "timezone_name": "UTC",
      "account_status": 1,
      "promoted_app_store_url": "https://play.google.com/store/apps/details?id=com.novaplay.dragonmerge",
      "business": {
        "id": "100000000000001",
        "name": "Nova Play"
      }
    },
    {
      "id": "act_195371095837700",
      "name": "Idle Mining Empire (Android)",
      "account_id": "195371095837700",
      "currency": "USD",
      "timezone_name": "UTC",
      "account_status": 1,
      "promoted_app_store_url": "https://play.google.com/store/apps/details?id=com.novaplay.idlemining",
      "business": {
        "id": "100000000000001",
        "name": "Nova Play"
      }
    },
    {
      "id": "act_125122534005354",
      "name": "Puzzle Blast Mania (iOS)",
      "account_id": "125122534005354",
      "currency": "USD",
      "timezone_name": "UTC",
      "account_status": 1,
      "promoted_app_store_url": "https://apps.apple.com/app/id1600000011",
      "business": {
        "id": "100000000000001",
        "name": "Nova Play"
      }
    },
    "..."
  ],
  "paging": {
    "cursors": {
      "before": "b2Zmc2V0OjA",
      "after": "b2Zmc2V0OjEw"
    }
  }
}

There is no paging.next because all 10 accounts fit in one page.

Read one ad account: GET /act_<account_id>

Parameter Type Required Description
access_token string yes Personal token.
fields string no Comma-separated list of the fields above. Default id,account_id.
curl -G "https://graph.huydata.com/v21.0/act_199454714457591" \
  -d "access_token=$META_ACCESS_TOKEN" \
  -d "fields=id,name,account_id,currency,timezone_name,account_status,business,created_time,promoted_app_store_url"
{
  "id": "act_199454714457591",
  "name": "Dragon Merge Saga (Android)",
  "account_id": "199454714457591",
  "currency": "USD",
  "timezone_name": "UTC",
  "account_status": 1,
  "business": {
    "id": "100000000000001",
    "name": "Nova Play"
  },
  "created_time": "2025-10-15T09:00:00+0000",
  "promoted_app_store_url": "https://play.google.com/store/apps/details?id=com.novaplay.dragonmerge"
}

Without fields, only the defaults come back:

{
  "id": "act_199454714457591",
  "account_id": "199454714457591"
}

Errors specific to this object

code error_subcode type Message Cause
100 33 GraphMethodException Unsupported get request. Object with ID 'act_123' does not exist, ... The account id is not one of the 10 Nova Play accounts.
100 — OAuthException (#100) Tried accessing nonexisting field (xyz) on node type (AdAccount) A name in fields is not an ad account field.
{
  "error": {
    "message": "Unsupported get request. Object with ID 'act_123' does not exist, cannot be loaded due to missing permissions, or does not support this operation.",
    "type": "GraphMethodException",
    "code": 100,
    "error_subcode": 33,
    "fbtrace_id": "AoeFaty9DVAYm_-nQjVGt"
  }
}