Tapjoy Marketing API具有某些保护措施,以防止过度或滥用 API 调用。 如果您的集成超出了现有限制,请联系您的 Tapjoy AM 或支持人员以了解如何优化您的集成或如何提高您的限制。
下面的示例在广告主的上下文中进行了演示,但也适用于开发者集成。
查询分页数据时,客户端必须:
first
或 last
参数如果已超过最大值,则结果将被截断,因此,请求的第一个/最后一个参数将被忽略。
例如:
{
advertiser {
adSets(first: 50) {
edges {
node {
id
name
ads(first: 50) {
edges {
node {
id
name
}
}
}
}
}
}
}
}
在上述查询中,这将返回最多 50 个广告,每个广告最多有 50 个广告素材。
为了对集合进行分页,您必须提供一个 after
或 before
参数来控制从哪里开始页面。 例如:
{
advertiser {
adSets(first: 50, after: "Mg==") {
edges {
node {
id
name
}
}
pageInfo {
endCursor
hasNextPage
}
}
}
}
在上述查询中,这将返回最多 50 个广告,从位置“Mg==”开始。 该位置是根据从先前查询返回的 endCursor 确定的。 当 hasNextPage 为 false 时,表示数据已经完整展示。
您可以在 GraphQL 官方网站 上阅读有关分页的更多信息。
要通过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
Tapjoy Marketing API 可以访问最近两年的数据