제한사항

Tapjoy 마케팅 API 는 잘못된 혹은 반복된 요청을 막기 위한 안전장치가 존재합니다. 만약 이러한 제한 사항에 대한 조정이 필요하신 경우 Tapjoy 어카운트 매니저에게 연락하여 제한 설정을 조정 여부에 대한 가이드를 받이시길 바랍니다.

아래 예시는 주로 광고주에게 주로 적용되는 내용이나 퍼블리셔에게도 동일하게 적용됩니다.

1. 페이징

만약 요청할 쿼리에 페이징이 필요할 경우 고객사는 반드시:

  • first 혹은 last 인자가 필요.
  • 한 페이지에 100개 이상의 노드는 설정할 수 없음.

만약 최대값을 초과할 경우, 데이터 일부가 잘리며 결과적으로 첫번째 / 마지막 인자는 무시됩니다.

예시:

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

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

이 쿼리에서는 최대 50개의 AdSet과 각 AdSet별 최대 50개의 광고 데이터를 받을 수 있습니다.

해당 쿼리에 대해 페이징을 위해서는 after 혹은 before 인자값을 추가하여 페이지의 시작점을 설정합니다. 예를 들어:

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

      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

위 쿼리의 경우 "Mg==" 로 시작하는 커서 포지션에 대한 최대 50개의 AdSet 데이터를 전달받을 수 있습니다. 해당 위치는 이전 쿼리에서 반환된 endCursor를 기반으로 결정됩니다. hasNextPage가 false인 경우 페이지가 완료된 것으로 간주됩니다.

페지징과 관련한 내용은 GraphQL 공식 문서를 참고해 주시길 바랍니다. GraphQL website.

2. 복잡성

스키마 검증을 통과하기 위해서는 모든 마케팅 API 는 10,000개 이상의 "call" 을 설정할 수 없습니다. 이 케이스에서 "call" 은 각 리소스별 요청을 뜻 합니다. GraphQL 에서 하나의 쿼리 내 여러개의 call 을 허용한 이후, API 가 쿼리를 실행하기 전 전체 Call 수를 먼저 계산합니다.

Call 수는 쿼리에서 선택되는 리소스 수와 어느정도 일치합니다. (e.g. campaigns, ad sets, ads, apps, insights, etc.)

예시 :

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

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

아 예시에서는 총 50개의 Adset, 그리고 각 AdSet별 50개의 광고를 요청하게 됩니다.

이에 대한 전체 Call 수는 :

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

현 시점에서 시간 별 Call 제한은 없으나 향후에는 변경될 가능성이 있습니다.

리포팅 인사이트

리포팅 인사이트 쿼리의 경우 추가 복잡성에 대한 비용은 쿼리의 기본 계산에는 반영되지 않습니다. 추가되는 하나의 Call은 각 일자별 쿼리를 call 할때마다 추가로 계산됩니다.

아래 예시를 봅시다:

{
  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개의 AdSet 에 대한 데이터와 각 Adset 별 7일간의 3개의 메트릭, 1개의 세그먼트 데이터에 대한 리포팅을 추출합니다.

이 쿼리에 대한 Call 총합을 계산하면

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

3. 데이터 리텐션

Tapjoy 마케팅 API 는 현시점에서 최대 2년까지의 데이터에 접근할 수 있습니다.