限制

Tapjoy Marketing API具有某些保护措施,以防止过度或滥用 API 调用。 如果您的集成超出了现有限制,请联系您的 Tapjoy AM 或支持人员以了解如何优化您的集成或如何提高您的限制。

下面的示例在广告主的上下文中进行了演示,但也适用于开发者集成。

1. 分页

查询分页数据时,客户端必须:

  • 提供一个 firstlast 参数
  • 单页不超过 100 个节点

如果已超过最大值,则结果将被截断,因此,请求的第一个/最后一个参数将被忽略。

例如:

{
  advertiser {
    adSets(first: 50) {
      edges {
        node {
          id
          name

          ads(first: 50) {
            edges {
              node {
                id
                name
              }
            }
          }
        }
      }
    }
  }
}

在上述查询中,这将返回最多 50 个广告,每个广告最多有 50 个广告素材。

为了对集合进行分页,您必须提供一个 afterbefore 参数来控制从哪里开始页面。 例如:

{
  advertiser {
    adSets(first: 50, after: "Mg==") {
      edges {
        node {
          id
          name
        }
      }

      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

在上述查询中,这将返回最多 50 个广告,从位置“Mg==”开始。 该位置是根据从先前查询返回的 endCursor 确定的。 当 hasNextPage 为 false 时,表示数据已经完整展示。

您可以在 GraphQL 官方网站 上阅读有关分页的更多信息。

2. 调用复杂度

要通过schema验证,所有 Marketing API 调用不得超过 10,000 个“调用”。 在这种情况下,“调用”是指对资源的请求。 由于 GraphQL 允许将多个调用组合到单个查询中,因此 API 在执行查询之前会提前计算单个查询的调用总数。

调用次数大致相当于从结果中选择的资源数量(例如campaigns, ad sets, ads, apps, insights等)

让我们分析一下上面的示例:

{
  advertiser {
    adSets(first: 50) {     # <= 50 calls
      edges {
        node {
          id
          name

          ads(first: 50) {  # <= 50 calls
            edges {
              node {
                id
                name
              }
            }
          }
        }
      }
    }
  }
}

在此示例中,客户一次请求最多 50 个广告; 对于每个广告集,他们请求广告中最多 50 个广告素材。

计算总调用次数:

50      = 50 ad sets
+
50 x 50 = 2500 ads
        = 2550 calls

目前,每小时的请求次数没有速率限制。 但是,这种情况在未来可能会发生变化。

数据复杂度

在任何级别查询的报告数据都会产生额外的复杂性成本,而上述基本计算并未反映这一成本。 每天查询的计算中都会增加一个额外的 1 个调用。

Let's consider an example:

{
  advertiser {
    # 50 calls
    adSets(first: 50) {
      edges {
        node {
          id
          name

          # 7 calls
          insights(timeRange: {from: "2018-03-01T00:00:00Z", until: "2018-03-08T00:00:00Z"}) {
            timestamps
            reports {
              country
              impressions
              conversions
              spend
            }
          }
        }
      }
    }
  }
}

在此示例中,客户一次要求最多 50 个广告; 对于每个广告组,他们要求提供 7 天的报告数据,涵盖 3 个指标和 1 个细分。

计算总调用次数:

50      = 50 ad sets
+
50 x 7  = 350 insights
        = 400 calls

3. 数据留存

Tapjoy Marketing API 可以访问最近两年的数据