포스트 백 매크로와 패스 스루 파라미터

포스트 백과 포스트 백 매크로

포스트 백은 매체에 의해 선택된 특정 URL을 통해 Singular가 광고 매체에 보내는 자동 알림입니다. 예를 들어, Singular가 광고 캠페인으로부터 인스톨을 성공적으로 기록할 때마다 광고 매체에 포스트 백으로 알립니다.  

Singular는 하단에 기재된 포스트 백의 매크로를 지원합니다.

애플리케이션 매크로

Macro Value Description
{APP_NAME} 표시되는 앱 이름
{LONGNAME} 앱의 Long name 또는 번들 ID
{PUBLIC_ID} Apple의 App Store에서 보여지는 앱의 퍼블릭 ID (iOS에만 해당)

캠페인 매크로

매크로
{CID} 어트리뷰션 트래킹 태그에 명시된 캠페인 명
{CLID} Singular가 부여한 클릭 ID (문자열)
{cl?Network Name}

네트워크를 통해 Singular 트래킹 링크의 cl 파라미터로 전송된 네트워크 클릭 ID (문자열)입니다. 네트워크 이름은 반드시 Singular와 연동된 이름으로 명시되어야 합니다. 

{pcrid?Network Name} 소재 (크리에이티브) ID - 클릭에서 제공된 경우에만 유효합니다. 
{pcrn?Network Name} 소재 (크리에이팁) 명 - 클릭에서 제공된 경우에만 유효합니다.
{pshid?Network Name}

해시 된 또는 익명화된 ID로서 퍼블리싱된 앱의 클릭(문자열)입니다. 클릭과 같이 전송된 경우에만 유효합니다. 

{psid?Network Name}

소스 사이트 또는 클릭(문자열)을 위한 애플리케이션 ID입니다. 클릭과 같이 전송된 경우에만 유효합니다. 

{psn?Network Name}

소스 사이트 또는 클릭(문자열)을 위한 애플리케이션 명입니다. 클릭과 같이 전송된 경우에만 유효합니다. 

{NETWORK=Network Name}

만약 어트리뷰션 된 네트워크가 매크로에서 명시된 특정 네트워크 명과 같은 경우 '1'을 반환합니다. 그렇지 않은 경우, '0'을 반환합니다.

{IS_RE_ENG} 만약 리인게이지먼트 캠페인으로 어트리뷰션 된다면 '1'을 반환합니다. 그렇지 않은 경우, '0'을 반환합니다. 
{IS_VIEWTHROUGH} 만약 임프레션 링크로 인해 어트리뷰션 된다면 '1'을 반환합니다. 그렇지 않은 경우, '0'을 반환합니다. 

디바이스 관련 매크로

매크로
{TOUCHPOINT_IP}

어트리뷰션 된 터치 포인트 시점의 디바이스의 IP입니다.

{ATTRIBUTION_IP}

어트리뷰션, 인스톨, 리인게이지먼트가 되었을 시점의 디바이스의 IP입니다. 

{EVENT_IP}

이벤트 실행 시점의 디바이스의 IP입니다.

{OS_VERSION}

광고가 클릭 되었을 시점의 디바이스의 OS 버전입니다. 

{APP_VERSION}

인스톨/이벤트가 발생했을 때의 디바이스의 앱 버전입니다. 

{IDFA}

디바이스의 해시 되지 않은 iOS 광고 식별자입니다.

{IFA1}

디바이스의 iOS 광고 식별자의 SHA-1입니다.

{IFA5}

디바이스의 iOS 광고 식별자의 MD5입니다. 

{IDFV}

해당 벤더(vendor)를 위한 해시 되지 않은 iOS 식별자입니다.

{ANDI}

해시 되지 않은 안드로이드 ID로 - 이 식별자는 만약 광고 식별자 (AIFA)가 해당 디바이스에서 유효하지 않을 경우 유효한 식별자입니다. 이 식별자가 항상 유효한 것은 아니므로, 저희는 값이 항상 전송되도록 {AIFA} 또는 {COALESCE|{AIFA},{ANDI}}를 사용하시기를 권장합니다. 

{AND1} 안드로이드 ID의 SHA1입니다.
{AIFA}

해당 디바이스의 해시 되지 않은 안드로이드 광고 식별자입니다.

{AIF1}

해당 디바이스의 안드로이드 광고 식별자의 SHA-1입니다.

{AIF5}

해당 디바이스의 안드로이드 광고 식별자의 MD5입니다. 

{COALESCE}

하나의 ID 또는 다른 ID를 전달합니다. 예를 들어 {COALESCE|{AIFA},{ANDI}}는 AIFA 또는 ANDI(AIFA가 유효하지 않은 경우)를 전송할 수 있도록 합니다.

{PLATFORM} iOS 또는 Android입니다.
{TOUCHPOINT_COUNTRY}

터치 포인트가 어트리뷰션 되었을 때의 해당 디바이스가 위치하는 나라입니다. 

{ATTRIBUTION_COUNTRY} 어트리뷰션, 인스톨, 리인게이지먼트가 되었을 때의 해당 디바이스가 위치하는 나라입니다. 
{TOUCHPOINT_CITY}

터치 포인트가 어트리뷰션 되었을 때의 해당 디바이스가 위치하는 도시입니다.

{ATTRIBUTION_CITY}

어트리뷰션, 인스톨, 또는 리인게이지먼트가 되었을 때의 해당 디바이스가 위치하는 도시입니다.

{EVENT_CITY}

이벤트가 발생했을 때의 해당 디바이스가 위치하는 도시입니다.

{TOUCHPOINT_STATE}

터치 포인트가 어트리뷰션 되었을 때 해당 디바이스가 위치한 주/도입니다. 

{ATTRIBUTION_STATE}

어트리뷰션, 인스톨, 리인게이지먼트가 되었을 때 해당 디바이스가 위치한 주/도입니다.

{EVENT_STATE}

이벤트가 일어났을 때 해당 디바이스가 위치한 주/도입니다.

{USERID|user.key} {CUSTOM_USERID|user.key}

커스텀 유저 ID입니다. "user.key"를 커스텀 유저 ID 키-값의 페어로 바꿔줍니다. 예를 들어, 주요 값이 balloonjumpID=username이라면, 이 매크로는 {USERID|user.balloonjumpID}가 되어야 하고, 이는 'username'으로 대체됩니다.  

{DNT}

이 추적 금지 플래그가 활성화되면 1을 반환하며, 다른 조건들일 때는 모두 0으로 반환합니다.

{NODNT} 이 추적 금지 플래그가 활성화되면 0을 반환하며, 다른 조건들일 때는 모두 1로 반환합니다.
{DEVICE_MODEL} 디바이스 모델입니다.
{DEVICE_BRAND} 디바이스 브랜드입니다. 
{MATCH_TYPE}

어트리뷰션이 오가닉 (무효 값)인지 아닌지를 나타냄으로써, 결정론적 (디바이스 ID 매칭 또는 인스톨 리퍼러) 또는 핑거프린팅 메서드입니다. 

{ATTRIBUTION_WINDOW}

인스톨 또는 리인게이지먼트를 어트리뷰션 할 때 사용되었던 시간 단위의 윈도우 입니다. 

{INSTALLER_SOURCE}

안드로이드에만 해당합니다.

인스톨을 발생시킨 소스의 패키지명 입니다. 예를 들어, 만약 구글 플레이 스토어로부터 인스톨이 되었다면 'com.android.vending'이 됩니다. 

{APPSTORE_FLAG}

안드로이드에만 해당합니다.

인스톨러 소스에 따라 0, 1, 또는 무효(Null)를 나타냅니다. 만약 데이터가 유효하지 않다면, 값은 무효(Null)가 됩니다. 

{GLOBAL_PROPERTIES:propertyName} 만약 SDK (iOS, Android)를 통해 유효하다면, 글로벌 속성값으로서 전송합니다. 
{GLOBAL_PROPERTIES}

만약 SDK (iOS, Android)를 통해 유효하다면, (JSON 형식과 암호화된 URL 형식으로) 모든 글로벌 속성을 전송합니다.

{USER_AGENT}

(SDK에 의해서 결정되는) 해당 디바이스의 유저 에이전트입니다.   

{ATT_AUTHORIZATION_STATUS}

현재 디바이스의 앱 추적 투명성 허용 상태를 나타냅니다. 해당 값은 iOS 14 이상의 디바이스에 제공되는 값입니다. 

  • -1 - 정의되지 않음, 앱 추적 투명성 구현되지 않은 상태
  • 0 - 정의되지 않음
  • 1 - 제한됨
  • 2 - 거부됨
  • 3 - 허용됨
{ATT_NAME}

현재 디바이스에 대한 앱 추적 투명성 허용 상태를 나타냅니다. 해당 값은 iOS 14 이상의 디바이스에 제공되는 값입니다.

  • 정의되지 않음 - -1
  • 정의되지 않음 - 0
  • 제한됨 - 1
  • 거부됨 - 2
  • 허용됨 -3

이벤트 매크로

매크로
{AMOUNT}

매출 이벤트 포스트 백에만 해당합니다. 결제 값은 결제 통화로 계산되며 소수점 아래 두 자릿수까지 반올림됩니다. 예를 들어, 매출 값이 1.346이면  1.35로 전송됩니다.  

거절된 매출 이벤트의 경우, 해당 값은 0가 됩니다 (최초 이벤트 명의 IAP_RECEIVED_REVENUE를 참고). 만약 이 매크로가 리인게이지먼트 포스트 백에 사용된다면, 이 매크로는 유저 LTV를 보냅니다.

{CURRENCY}

매출 이벤트 포스트 백만을 의미합니다. 결제를 위한 통화 코드는 ISO 4217에 따른 세 글자로 표시됩니다.

{EVTNAME}

이벤트 명입니다. 거절된 이벤트는, __iapinvalid__로 나타날 것입니다. 본래 이벤트 명을 조회하시려면 IAP_RECEIVED_REVENUE로 조회하세요.

{EVTATTR:Attribute_Name}

특정 어트리뷰션으로부터 얻은 값입니다. 광고주들은 Singular에 이벤트를 리포트 할 때, 선택적으로 이벤트 속성 및 아규먼트를 보낼 수 있습니다. 이벤트 속성과 아규먼트는 JSON 키 값 페어로 전송되고, {EVTATTR:Attribute_Name} 를 사용하여 특정 JSON 키 값을 전달할 수 있습니다. 예를 들어, 이벤트명 'Checkout'에 'Number of Items'라는 속성이 있다면, {EVTATTR: Number of Items}는 'Checkout' 이벤트로부터 얻어진 아이템 수를 반환합니다. 

{EVTATTRS}

이 매크로는 광고주가 Singular에게 이벤트를 리포트 할 때, 이벤트와 관련된 모든 이벤트 속성 및 아규먼트를 전달합니다. 만약 이벤트가 속성 또는 아규먼트를 보유한다면, 이 매크로는 속성의 JSON 페이 로드를 채울 것입니다. 예를 들어, 만약 이벤트 명이 "Checkout"이고 광고주가 결제에 관한 정보를 전송했다면, {EVTATTRS}는 Singular를 사용하여 이벤트를 기록하는 방식과 일치하는 페이 로드를 채우게 됩니다. 

{
"number_of_items": 5,
"cost":{
"sub_total": 50.99,
"tax": 1.01,
"total": 52.00
}
{IAP_RECEIVED_EVENT_NAME} 매출 이벤트에서, 본래의 이벤트 명입니다. 만약 이벤트가 유효하다면, 이 부분은 EVTNAME와 같을 것입니다. 
{IAP_RECEIVED_REVENUE}

매출 이벤트에서, 본래의 구매량입니다. 만약 이벤트가 유효하다면, 이 부분은 AMOUNT와 같을 것입니다.

{IAP_RECEIPT_RECEIVED}

매출 이벤트에서, 만약 구매 영수증이 포함되었다면 '1'을 반환합니다, 다른 경우엔 '0'을 반환합니다.

{IAP_RECEIPT_VALID} 매출 이벤트에서, 만약 구매로 인정되면 '1'을 반환합니다. 다른 경우엔 '0'을 반환합니다. 
{IS_FIRST_EVENT}

이벤트가 처음 일어난 경우 (매출 또는 커스텀이) '1'을 반환합니다. 그 이후 동일 디바이스 ID에서 나타나는 모든 이벤트는 '0'으로 반환됩니다.

{RAW_AMOUNT}

매출 이벤트값은 반올림하지 않습니다. 예) 매출 값이 1.346인 경우 1.346가 그대로 전송됩니다. 수익이 분수로 예상되는 경우 이 항목을 사용하세요.

시간 매크로

매크로
{DATE} GMT 시를 기준으로 하는, 인스톨 또는 이벤트 날짜 (“YYYYMMDD”의 형식을 갖는 문자열)를 나타냅니다.
{TIME} GMT 시를 기준으로 하는, 인스톨 또는 이벤트 타임 스탬프 ("YYYY-MM-DD_HH:MM:SS"의 형식을 갖는 문자열)입니다.
{UTC} 초 단위인 UNIX 형식의 인스톨 또는 이벤트 타임 스탬프입니다.
{UTCM} 밀리세컨드 단위인 UNIX 형식의 인스톨 또는 이벤트 타임 스탬프입니다.
{CLICK_UTC} 초 단위인 UNIX 형식의 클릭 타임 스탬프입니다.
{CLICK_UTCM} 밀리세컨드 단위인 UNIX 형식의 클릭 타임 스탬프입니다.
{CLICK_TIME} GMT 시를 기준으로 하는, 클릭 타임 스탬프 ("YYYY-MM-DD_HH:MM:SS"의 형식을 갖는 문자열)입니다.
{CLICK_DATE} GMT 시를 기준으로 하는, 클릭 타임 스탬프 ("YYYYMMDD"의 형식을 갖는 문자열)입니다.
{INSTALL_UTC} 초 단위를 기준으로 하여 (리인게이지먼트를 포함하여) 가장 최근의 UNIX 형식인 인스톨 타임 스탬프입니다.
{INSTALL_UTCM} 밀리세컨드 단위를 기준으로 (리인게이지먼트를 포함하여) 가장 최근의 UNIX 형식인 인스톨 타임 스탬프입니다.
{INSTALL_TIME} GMT 시를 기준으로 (리인게이지먼트를 포함하여) 가장 최근 어트리뷰션의 인스톨 타임 스탬프 ("YYYY-MM-DD_HH:MM:SS" 형식을 갖는 문자열)입니다.
{INSTALL_DATE} GMT 시를 기준으로 가장 최근 어트리뷰션의 인스톨 타임 스탬프 ("YYYYMMDD" 형식을 갖는 문자열)입니다.
{STRFTIME|<constructing values>,ts (optional),round (optional)}

조합 가능한 타임 스탬프입니다. 이 타임 스탬프는 하기에 정의된 값과 다른 추가 적으로 원하시는 문자를 사용하여 조합하실 수 있습니다.

  • %d - 날짜에 zero-padded 형식을 사용합니다. (01, 02,...,31)
  • %m - 월에 zero-padded 형식을 사용합니다. (01, 02,...,12)
  • %Y - 4자인 연도를 말합니다. (2014)
  • %H - 24시간 형식으로 시간을 나타냅니다.
  • %I - 12시간 형식으로 시간을 나타냅니다. (글자 "i" 를 캡 함)
  • %M - 분을 zero-padded 형식으로 사용합니다. (00, 01,...,59)
  • %S - 초를 a zero-padded 형식으로 사용합니다. (00, 01,...,59)

예를 들어, {STRFTIME|%Y-%m-%dT%H:%M:%S}는  2014-08-22T10:06:52와 같이 표기될 것입니다. 

"ts"는 UNIX 타임 스탬프의 옵션 중 하나로서 형식에 사용될 것입니다; 만약 “ts”가 명시되지 않는다면, 현재 시각이 사용될 것입니다. 지원되는 “ts” 값은 {CLICK_UTC}, {INSTALL_UTC}, 그리고 {UTC} 입니다.


예를 들어, {STRFTIME|%Y-%m-%dT%H:%M:%S,{UTC}}의 “round”는 변형된 옵션으로서 다음 중 한 가지를 줄이거나/우회할 것입니다: 연도, 월, 일, 시, 또는 분. 

예를 들어, 만약 {CLICK_UTC} 가 1435627795라면 다음과 같습니다.

{STRFTIME|%s,{CLICK_UTC},month} -> 1433116800

{STRFTIME|%s,{CLICK_UTC},day} -> 1435622400

{STRFTIME|%s,{CLICK_UTC},hour} -> 1435626000

{STRFTIME|%s,{CLICK_UTC},minute} -> 1435627740

다른 매크로

매크로
{RAND} 랜덤한 10의 자리 정수입니다.
{JSON}

JSON 페이 로드를 사용하여 요청을 GET에서 POST로 변환하는 데 사용됩니다. 해당 매크로 왼쪽에 있는 모든것은 정상적으로 평가되는 반면에 오른쪽 부분은 URL에서 제거되고, 이 부분은 쿼리 문자열 파라미터와 상응하는 JSON 딕셔너리로 변환됩니다. 그리고 저희는 {JSON} 매크로의 왼쪽에 위치한 URL에 HTTP POST를 수행합니다.

{POST} {JSON} 매크로와 비슷하지만, 페이 로드를 제외한 채 예전 application/x-www-form-urlencoded를 코드화로 전송합니다. 
{HTTP_HEADER|k,v}

이 매크로를 사용하여서 헤더에 단일 키/값 페어를 추가합니다. 매크로의 추가적인 예들을 사용하여서 키/값 페어를 추가합니다.

예) {HTTP_HEADER|SampleKey1,SampleValue1}{HTTP_HEADER|SampleKey2,SampleValue1}.

이 매크로는 헤더를 채우는 데 쓰이고, 전송 되었을 시 URL로부터 완전히 제거되므로 이 매크로를 URL에 추가할 때 '&' 또는  '?' 와 같은 문자를 추가하지 마세요. 

예) https://theURL.com/endpoint?{HTTP_HEADER|SampleKey1,SampleValue1}singular_cl={CLID}&andi={ANDI}{HTTP_HEADER|SampleKey2,SampleValue2}

{FRAUD_REASON_EXTERNAL}

거절 이유는 Singular에 내재된 프러드 보호 메서드 (see details) 또는 광고주 설정에 의한 커스텀 규칙 때문입니다.

{JSON_EXTRACTOR}

GJSON Syntax에서 JSON 기반으로 한 값들을 추출하면, 도트 표기법 구문, 파이프 및 기타 복합 추출 기능을 지원합니다. 
매크로는 json과 패키지 구문의 추출 문자열 두 파라미터를 갖습니다.

evtattr json을 사용한 예시는 다음과 같습니다:
{JSON_EXTRACTOR|{EVTATTRS}, SampleKey.1.SampleKey}

매크로 수식어

매크로
{SHA1|{Macro}} 이 수식어는 값을 SHA-1으로 인코딩합니다. 예를 들면, 만약 {CLID} 매크로가 ‘1000’을 반환한다면, {SHA1|{CLID}}은  'fb2f85c88567f3c8ce9b799c7c54642d0c7b41f6'를 반환할 것입니다.
{MD5|{Macro}} 이 수식어는 값을 MD5로 인코딩합니다. 예를 들어, 만약 {CLID} 매크로가 'ABCD'를 반환하면, {MD5|{CLID}}는 'cb08ca4a7bb5f9683c19133a84872ca7'를 반환할 것입니다.
{BASE64|{Macro}} 이 수식어는 해당 값을 표준 Base64로 인코딩합니다. 예를 들어, 만약 {CLID} 매크로가 'ABCD'를 반환한다면, BASE64|{CLID}} 는 'QUJDRA=='를 반환할 것입니다. (반환된 값은 URL에 HTTP로 인코딩됨)
{BASE64U|{Macro}} 이 수식어는 해당 값을 url-safe Base64로 인코딩합니다. 예를 들어, 만약 {CLID} 매크로가 'ABCD'를 반환한다면, {BASE64U|{CLID}}는 'QUJDRA=='를 반환할 것입니다. (반환된 값은 URL에 HTTP로  인코딩됨)
{HMACSHA1|{Macro},key} 이 수식어는 제공된 키를 사용하여 HMAC SHA-1으로 인코딩합니다. 예를 들어, 만약 {CLID} 매크로가 'ABCD'를 반환한다면, {HMACSHA1|{CLID},sample}은 'f5143f3dda1b120ac280a82b2cae0ff60dc342b5'를 반환할 것입니다.
{HMACMD5|{Macro},key} 이 수식어는 제공된 키를 사용하여 HMAC MD5로 인코딩합니다. 예를 들어, 만약 {CLID} 매크로가 'ABCD'를 반환한다면, {HMACMD5|{CLID},sample}은 '43d752ccec4044f90a66a7d15762075e’를 반환할 것입니다.
{UPPER|{Macro}} 이 수식어는 주어진 값을 대문자로 반환할 것입니다. 예를 들어, 만약 {CLID} 매크로가 'abcd’를 반환한다면, {UPPER|{CLID}}는 'ABCD'를 반환할 것입니다.
{LOWER|{Macro}} 이 수식어는 주어진 값을 소문자로 반환할 것입니다. 예를 들어, 만약 {CLID} 매크로가 'ABCD'를 반환한다면, {LOWER|{CLID}}는 'abcd'를 반환할 것입니다.
{MULTIPLY|{Macro},multiple} 이 수식어는 해당 수를 매크로에서 반환된 값과 가장 가까운 정수와 곱합니다. 부동소수점으로 구매한 제품의 값을 마이크로로 변환시키기 위해서는  {AMOUNT} macro 1e6 (1000000)와 곱해야 합니다. 예를 들어, $5250.23상당의 구매는 {MULTIPLY|5240.23,1000000}을 따라서 5250230000이 되는 것입니다.
{TERNARY|a,b,x,y} 이 수식어는 a, b, x, y 4개의 아규먼트를 필요로 하며, a == b이면 x를 반환하고 그렇지 않으면 y를 반환합니다.

예를 들면 다음과 같습니다.
{TERNARY|0,1,yes,no} 는 "no"를 반환하게 됩니다.

패스 스루 파라미터

Singular와의 연동하기 위한 과정으로, 광고 매체가 그들의 어트리뷰션 포스트 백을 위해 추가적인 정보를 요청할 수 있습니다. 이것을 패스 스루 파라미터라 하며, 그들은 Singular 트래킹 링크에 아직 사용되지 않았거나 포함되지 않은 모든 파라미터를 추가할 수 있습니다. 예를 들어, 광고 매체가 내부 광고주 ID를 받기 위해 예와 같은 정보를 요청 할 수 있습니다, 예) aid=115873.  

광고주들은 또한 패스 스루 파라미터를 활용하여 광고주 서버를 통해 포스트 백에 수신하려는 정보를 트래킹 링크에 추가할 수 있습니다.