서버간 인앱이벤트 API(HTTP API)

  • 개발자

소개

이 API를 사용하면 모바일 앱의 외부에서 발생하는 이벤트를 AppsFlyer 서버로 직접 전송하도록 합니다.  예를 들면, 웹과 모바일 인터페이스 양쪽의 인터페이스가 있는 경우에 AppsFlyer에서 양쪽 미디어의 이벤트를 모두 기록할 수 있습니다. 

 참고

콘텐츠 형식은 application/json으로 설정해야 합니다.

URL: https://api2.appsflyer.com/inappevent/{app_id}  

안드로이드 예: https://api2.appsflyer.com/inappevent/com.appsflyer.myapp

iOS 예https://api2.appsflyer.com/inappevent/id123456789

iOS의 앱 ID가 "id"로 시작되는 것에 특히 유의하세요. 이렇게 하지 않으면, 요청은 HTTPS 200 OK로 종료되지만 이벤트가 등록되지 않게 됩니다.

메서드: POST

헤더 - "authentication"= {dev-key}

dev key는 대시보드 >> App Settings >> Dev Key에서 확인할 수 있습니다.

iOS 안드로이드
{
	"appsflyer_id": {This is a mandatory field, AppsFlyer Device ID must be used }, // 예: 1415211453000-6513894 
	"idfa":{idfa},
	"customer_user_id": {customer_user_id}, // 고객 사용자 ID 파라미터(옵션) 
	"bundle_id":{bundle_id},
	"eventName": {The event name}, // 예: "af_purchase"
	"eventValue": {A JSON containing a rich in-app event value}, // 예: "{\"af_revenue\":\"6\" ,\"af_content_type\":\"wallets\", \"af_content_id\":\"15854\"}"
	"eventCurrency": {Event currency}, // 예: "USD"
	"ip": {device IP},
	"eventTime": {Event timestamp in UTC}, // 예: "2014-05-15 12:17:00.000"
	"af_events_api" :"true"
}

 참고

모든 예약된 문자(https://tools.ietf.org/html/rfc3986#section-2.1)는 URI가 구성되기 전에 퍼센트 인코딩해야 합니다.

요구 사항

  1. 필수 파라미터appsflyer_id (AppsFlyer Device id), eventName, eventValue and af_events_api
  2. 권장 파라미터:iOS는 idfa, 안드로이드는 advertising_id
  3. eventValue는 값을 비워둘 수 있습니다. 예: "eventValue":""(공백 입력 불필요)
  4. IP 주소(ip)는 (이벤트 발생 시의) 모바일 기기 IP이어야 합니다.
  5. 고객 사용자 ID 필드(customer_user_id)는 로데이터 보고서에서 고객 사용자 ID로 매핑되는 사용자 식별 파라미터입니다. 고객 사용자 ID SDK API는 이 값을 인앱이벤트를 생성하는 모든 SDK에 자동으로 첨부합니다. 모든 S2S 이벤트에서 같은 기능을 사용하려면 이 필드가 포함되었는지 확인하세요.

이벤트 타이밍

서버간 이벤트는 실시간이나 일괄 처리 모드로 전송할 수 있습니다. 

 참고

S2S를 사용할 때, 자바스크립트에서 이벤트를 직접 전송할 수 없습니다. AppsFlyer로 요청을 전송하려면, 로컬 서버를 만들어야 합니다.

(UTC 표준 시간대에서) 이벤트 발생 시간을 지정하기 위해서 eventTime 파라미터를 선택적으로 사용할 수 있습니다. 만약 메시지에 이 파라미터가 포함되지 않으면, AppsFlyer는 수신한 HTTPS 메시지의 타임스탬프를 사용합니다. 

eventTime 형식: "yyyy-MM-dd HH:mm:ss.SSS" (예: "2014-05-15 12:17:00.000")  

일괄 처리 모드에서 실제 타임스탬프로 이벤트를 기록하려면, 다음날 02:00 AM (UTC)까지 AppsFlyer로 전송해야 합니다.   

 참고

S2S 요청의 최대 개수는 분당 60K 또는 초당 1K입니다. 다른 요구 사항이 있는 경우에는 담당 AppsFlyer Customer Success 매니저에게 연락하세요.


2:00 AM까지 전송하지 못하여, 지난 이벤트의 시간 타임스탬프 전송된 시간으로 기록됩니다.

예 1

이벤트 발생: 2 May @ 22:00

AppsFlyer 서버로 이벤트 전송: 3 May @ 01:00

이벤트가 발생한 실제 시간(2 May @ 22:00)으로 AppsFlyer 플랫폼에 기록됩니다.

예 2
이벤트 발생: 2 May @ 22:00

AppsFlyer 서버로 이벤트 전송: 4 May @ 09:00

이벤트가 발생한 시간이 아닌 AppsFlyer 서버로 전송된 시간(4 May @ 09:00)으로 AppsFlyer 플랫폼에 기록됩니다.

서비스 반환 코드

200
OK AppsFlyer 시스템이 request를 처리한 경우
401
unauthorized 인증 헤더에 포함된 키가 해당 앱의 dev key가 아닌 경우
400
Bad request request가 최소 하나 이상의 검증에서 실패한 경우
500
Internal server error 서버 오류

서버가 방화벽으로 보호되고 있는 경우에 반환 메시지를 수신하기 위해서는 AWS IP address Ranges 에서 들어오는 응답을 허용 목록에 포함시켜야 합니다.

Request 본문 예

{
	"appsflyer_id": "1415211453000-6513894",
	"advertising_id": "38412345-8cf0-aa78-b23e-10b96e40000d",
	"eventName": "af_purchase",
	"eventValue": "{\"af_revenue\":\"6\",\"af_content_type\":\"wallets\",\"af_content_id\":\"15854\",\"af_quantity\":1}",
	"eventCurrency": "USD",
	"ip": "1.2.3.4",
	"eventTime": "2014-05-15 12:17:00.000",
	"af_events_api" :"true"
}


이 경우 AppsFlyer는 콘텐츠 유형과 같은 추가적인 속성 뿐만 아니라 수익에 해당하는 구매 이벤트를 포함한 S2S 인앱이벤트를 수신합니다.

광고주의 설정에 따라, 고급 타겟팅, 최적화, 오디언스 생성을 위해서 AppsFlyer가 리치 인앱이벤트를 미디어소스로 전송할 수 있습니다.

AppsFlyer Device ID 가져오기

appsflyer_id는 서버간 이벤트 메시지에서 필수 파라미터입니다. 이 파라미터는 AppsFlyer에서 이벤트를 원래 기기 및 어트리뷰션한 미디어 소스의 성과 측정을 위해서 사용합니다. 

이 ID를 받기 위한 몇 가지 방법이 있습니다.

1. AppsFlyer SDK API를 사용하여 모바일 기기에서 받기(안드로이드 / iOS)

2. Push 또는 Pull API 통해받기(Push API 또는 Pull API에 대한 자세한 내용은 링크를 클릭하세요.)

3. 로데이터 설치 보고서 내려받기

 

로데이터나 Push/Pull API를 사용하여 S2S 메시지를 테스트할 때는 기록에서 미디어소스 "s2s_test"를 확인하세요. 이것은 테스트 기기를 나타내며, 이 기기의 AppsFlyer Device ID가 필요한 ID입니다.

도움이 되었습니까?
10명 중 4명이 도움이 되었다고 했습니다.