API - Option
setShareScheme(_ scheme:, shareDelegate:)
공유하기를 선택(탭) 했을 때 시스템 공유 팝업으로 전달할 scheme
을 설정합니다.
shareDelegate
를 설정하면 iOS 시스템 공유 팝업 대신 직접 커스텀 공유 팝업을 구현할 수 있습니다.
setShareScheme(_ scheme: String?, shareDelegate: ShopLivePlayerShareDelegate?)
매개변수 | 설명 |
---|---|
scheme | 공유할 scheme 또는 URL |
shareDelegate | ShopLiveShareDelegate |
ShopLivePlayerShareData
변수 | 설명 |
---|---|
campaign | ShopLivePlayerShareCampaign? - 현재 방송 캠페인에 대한 정보 |
url | String? - 공유할 scheme 또는 URL |
ShopLivePlayerShareCampaign
변수 | 설명 |
---|---|
campaignKey | String? - 현재 방송의 campaignKey |
title | String? - 현재 방송의 제 |
descriptions | String? - 현재 방송의 설명 |
thumbnail | String? - 현재 방송의 썸네일 이미지 |
샘플 코드
let scheme = "shoplive://live"
let scheme = "https://shoplive.cloud/live"
class ViewController : UIViewController {
func viewDidLoad(){
// iOS 시스템 공유 팝업
ShopLive.setShareScheme(scheme, shareDelegate: nil)
}
}
extension ViewController : ShopLiveShareDelegate {
func handleShare(data : ShopLivePlayerShareData) {
//show share sheet
}
}
- 적용 가이드
setChatViewFont(inputBoxFont:, sendButtonFont:)
채팅 폰트와 채팅 전송 버튼 폰트를 설정합니다.
setChatViewFont(inputBoxFont: UIFont, sendButtonFont: UIFont)
매개변수 | 설명 |
---|---|
inputBoxFont | 채팅 폰트 |
sendButtonFont | 채팅 전송 버튼 폰트 |
샘플 코드
/**
// 채팅 폰트 설정
let inputDefaultFont = UIFont.systemFont(ofSize: 14, weight: .regular)
// 채팅 전송 버튼 폰트 설정
let sendButtonDefaultFont = UIFont.systemFont(ofSize: 14, weight: .medium)
*/
let customFont = UIFont(name: "{Custom Font}", size: 16)
// 채팅 폰트 및 채팅 전송 버튼 폰트 변경
ShopLive.setChatViewFont(inputBoxFont: customFont, sendButtonFont: customFont)
- 적용 가이드
setLoadingAnimation(images:)
영상 로딩 진행률을 이미지 애니메이션으로 설정합니다.
setLoadingAnimation(images: [UIImage])
매개변수 | 설명 |
---|---|
images | 이미지 애니메이션에 사용할 이미지 UIImage 배열 |
샘플 코드
var images: [UIImage] = []
for i in 1...11 {
images.append(.init(named: "loading\(i)")!)
}
ShopLive.setLoadingAnimation(images: images)
- 적용 가이드
setInAppPipConfiguration(config:)
InAppPip 관련 옵션을 설정합니다.
setInAppPipConfiguration(config:)로 설정된 값들은 이전 deprecate된 Api들로 설정된 값보다 우선순위를 가지고 있습니다.
매개변수 | 설명 |
---|---|
ShopLiveInAppPipSize | init(pipMaxSize : CGfloat) init(pipFixedHeight : CGFloat) init(pipFixedWidth : CGFLoa |
- pipMaxSize의 경우 .scaleAspectFill로 정해집니다.
예시) pipMazSize가 100일 경우
가로모드에서는 가로 100 , 세로 100 x (영상 비율)
세로모드에서는 세로 100, 가로 100 x (영상 비율) 이 됩니다.
매개변수 | 설명 |
---|---|
ShopLiveInAppPipConfiguration / | pipSize :ShopLiveInAppPipSize useCloseButton : Bool (InAppPip에서 좌측 상단의 닫기 버튼을 보여줄지 설정합니다.기본값 : false) pipPosition : ShopLive.PipPosition (기본값 .bottomRight) enableSwipeOut : Bool (앱 내 PIP를 화면 밖으로 이동하여 종료 시킬 지 여부를 설정합니다. 기본값: false) pipRadius : CGFloat(앱 내 PIP의 cornerRadius를 설정합니다. 기본값 : 10) |
Objective-C 환경에서는 ShopLiveInAppPipConfigurationObjc 객체를 사용해주시기 바랍니다.
샘플 코드
//maxSize
let pipSize = ShopLiveInAppPipSize(pipMaxSize : 200)
//fixedHeight
let pipSize = ShopLiveInAppPipSize(pipFixedHeight : 200)
//fixedWidth
let pipSize = ShopLiveInAppPipSize(pipFixedWidth :200)
let inAppPipConfig = ShopLiveInAppPipConfiguration(pipSize: pipSize,
useCloseButton: true,
pipPosition: .bottomLeft,
enableSwipeOut: true,
pipRadius : 10)
ShopLive.setInAppPipConfiguration(config: inAppPipConfig)
getPreviewSize(inAppPipConfiguration: ,videoRatio : )
preview의 크기를 가져옵니다.
getPreviewSize(inAppPipConfiguration: ShopLiveInAppPipConfiguration, videoRatio: CGSize) -> CGSize
매개변수 | 설명 |
---|---|
inAppPipConfiguration | ShopLiveInAppPipConfiguration |
videoRatio | 동영상의 비율 (ex 16 : 9, 9 : 16) |
addSubViewToPreview(subView: UIView)
Shoplive preview위에 고객사의 customView를 보여줍니다.
주의
customView를 보여줄때는 ShopLiveInAppPipConfiguration(useCloseButton: false)로 처리해주세요.
addSubViewToPreview(subView: UIView)
샘플 코드
func setCustomerPreviewCoverView() {
var previewViewCoverView = UIView()
previewViewCoverView.addSubview(someView1)
previewViewCoverView.addSubview(someView2)
NSLayoutConstraint.activate([
someView1.topAnchor.constraint(equalTo: previewViewCoverView.topAnchor),
someView1.trailingAnchor.constraint(equalTo: previewViewCoverView.trailingAnchor),
someView1.widthAnchor.constraint(equalToConstant: 70),
someView1.heightAnchor.constraint(equalToConstant: 30),
someView2.bottomAnchor.constraint(equalTo: previewViewCoverView.bottomAnchor),
someView2.leadingAnchor.constraint(equalTo: previewViewCoverView.leadingAnchor),
someView2.trailingAnchor.constraint(equalTo: previewViewCoverView.trailingAnchor),
someView2.heightAnchor.constraint(equalToConstant: 40)
])
ShopLive.addSubViewToPreview(subView: previewViewCoverView)
}
startPictureInPicture(with: , scale: )
전체 화면 모드에서 PIP 모드로 전환합니다.
startPictureInPicture(with position: ShopLive.PipPosition, scale: CGFloat)
startPictureInPicture()
매개변수 | 설명 |
---|---|
position | PIP 모드가 시작될 때 위치 기본값: default |
scale | 0.0 ~ 1.0 사이의 값 입력 |
샘플 코드
// 0.4배(기본값) 크기로 앱 내 PIP 모드 전환
ShopLive.startPictureInPicture()
// 화면 우하단에서 0.1배 크기로 앱 내 PIP 전환
ShopLive.startPictureInPicture(with: .bottomRight, scale: 0.1)
// 화면 좌상단에서 0.8배 크기로 앱 내 PIP 전환
ShopLive.startPictureInPicture(with: .topLeft, scale: 0.8)
크기 설정 예시
크기 | PIP 화면 | 크기 | PIP 화면 | 크기 | PIP 화면 |
---|---|---|---|---|---|
0.1 | 0.4 (기본) | 0.8 |
- 적용 가이드
stopPictureInPicture()
PIP 모드를 전체 화면 모드로 전환합니다.
stopPictureInPicture()
샘플 코드
ShopLive.stopPictureInPicture()
- 적용 가이드
hookNavigation(navigation: @escaping ((URL) -> Void))
상품 또는 배너를 선택할 때 매개변수에 설정한 custom
Callback 함수(매개변수로 입력한 navigation
)로 직접 이벤트를 받습니다.
hookNavigation(navigation: @escaping ((URL) -> Void))
매개변수 | 설명 |
---|---|
navigation | 상품 또는 배너를 선택할 때 호출되는 block - 선택한 상품 또는 배너의 URL 전달 |
샘플 코드
ShopLive.hookNavigation { url in
// url: 선택한 상품 또는 배너에 설정된 상세 정보 URL
print("hookNavigation \(url)")
}
- 적용 가이드
KeepWindowStyleOnReturnFromOsPip 옵션
setKeepWindowStyleOnReturnFromOsPip(_ keep: Bool)
OS PIP를 사용하는 경우 Shoplive Player가 재생중인 상태(pip, fullscreen)에서 홈화면 또는 다른 앱으로 이동(백그라운드 상태로 전환) 하면서 영상이 OS PIP로 진입된 후,
다시 앱으로 돌아오면서 마지막 재생중이던 상태(pip, fullscreen)로 전환 또는 항상 전체화면으로만 전환되도록 선택할 수 있습니다.
setKeepWindowStyleOnReturnFromOsPip(_ keep: Bool)
매개변수 | 설명 |
---|---|
keep | OS PIP상태에서 앱으로 돌아올 때 플레이어 재생중 상태를 설정 |
false : 항상 전체화면으로 전환true : 마지막 재생중이던 상태(pip, fullscreen)로 전환 (기본값) |
샘플 코드
// OS PIP로 전환 되기전 마지막 재생중 상태로 유지하도록 설정
ShopLive.setKeepWindowStyleOnReturnFromOsPip(true)
// OS PIP상태에서 앱으로 전환되면서 항상 전체화면으로 전환되도록 설정
ShopLive.setKeepWindowStyleOnReturnFromOsPip(false)
isKeepWindowStyleOnReturnFromOsPip
현재 설정된 깂을 반환합니다.
false
: 항상 전체화면으로 전환
true
: 마지막 재생중이던 상태(pip, fullscreen)로 전환 (기본값)
isKeepWindowStyleOnReturnFromOsPip() -> Bool
샘플 코드
print(ShopLive.isKeepWindowStyleOnReturnFromOsPip())
setKeepAspectOnTabletPortrait(_ keep:)
태블릿 세로모드에서 Shoplive 화면의 비율을 설정합니다.
true
: 화면 비율 유지 (기본값)
false
: 화면 가득 채움
setKeepAspectOnTabletPortrait(_ keep: Bool)
매개변수 | 설명 |
---|---|
keep | 화면 비율 유지 여부 설정 |
샘플 코드
ShopLive.setKeepAspectOnTabletPortrait(true)
- 적용 가이드
ShopLiveCommonUser
Shoplive를 사용하는 인증된 사용자입니다.
사용자를 인증하기 위해 사용자 정보를 입력합니다.
var user: ShopLiveCommonUser? { get set }
// 사용자 성별
public enum ShopliveCommonUserGender : String, CaseIterable {
case female = "f"
case male = "m"
case neutral = "n"
}
public class ShopLiveCommonUser: NSObject {
var userId: String?
var name: String?
var age: Int?
var gender: ShopliveCommonUserGender?
var userScore : Int?
var custom : [String : Any]?
- 적용 가이드
Objective-C 환경에서는 ShopLiveCommonUserObjc 객체를 사용해주시기 바랍니다.
authToken
Shoplive를 사용하는 인증된 사용자의 보안 인증토큰(JWT) string입니다.
사용자 인증을 위해 인증된 사용자의 보안 인증토큰(JWT) string을 입력합니다.
var authToken: String? { get set }
샘플 코드
let generatedJWT = "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MTA1NzA1dfadsfasfadsfasdfwO"
ShopLive.authToken = generatedJWT
- 적용 가이드
style
현재 Shoplive Player 스타일입니다.
var style: ShopLive.PresentationStyle { get }
public enum PresentationStyle: Int {
case unknown
case fullScreen
case pip
}
샘플 코드
print(ShopLive.style)
playerMode
현재 Shoplive Player의 모드입니다.
var playerMode: ShopLive.PlayerMode { get }
public enum PlayerMode: Int {
case play
case preview
case none
}
매개변수 | 설명 |
---|---|
play | play api로 Player가 실행된 상태로 영상(리허설, 라이브, 다시보기)를 재생중 |
preview | preview api로 Player가 실행된 상태로 미리보기 재생중 |
none | Player가 실행중이지 않은 상태 |
orientationMode
현재 Shoplive Platyer에서 재생중인 방송의 영상 비율 정보입니다.
var orientationMode: ShopLive.VideoOrientation { get }
public enum VideoOrientation: Int {
case portrait
case landscape
case unknown
}
매개변수 | 설명 |
---|---|
portrait | 세로 비율 모드의 방송 (비율 예 - 9:16) |
landscape | 가로 비율 모드의 방송(비율 예 - 16:9) |
unknown | 모드를 알수 없는 상태, 방송 중이지 않거나, SDK로 방송 정보 정보가 아직 업데이트 되지 않은 상태 |
playerWindow
현재 Shoplive Player가 표시되고 있는 UIWindow의 인스턴스입니다.
var playerWindow: ShopLiveWindow? { get }
playerWindow.forceAddSubView(view : UIView)
ShopLive 프레임워크 위에 고객사의 뷰를 넣고 싶은 경우 사용하는 함수입니다.
일반적인 addSubView의 경우 ShopLive 정책에 따라 고객사의 뷰가 추가되지 않을 수 있습니다.
ShopLive.playerWindow?.forceAddSubView({YOUR_VIEW})
viewController
현재 Shoplive Player가 표시되고 있는 UIViewController의 인스턴스입니다.
var viewController: ShopLiveViewController? { get }
샘플 코드
// Shoplive Player 위에 Alert를 표시
let alert = UIAlertController.init(title: "Alert on Player", message: nil, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
ShopLive.viewController?.present(alert, animated: true, completion: nil)
- 적용 가이드
setVisibleStatusBar 옵션
Shoplive Player가 전체화면으로 재생되고 있을때 앱의 상태바를 숨길 수 있습니다.
inAppPip의 경우 상태바가 자동으로 보이게 됩니다.
setVisibleStatusBar(isVisible : Bool)
setVisibleStatusBar(isVisible : Bool)
매개변수 | 설명 |
---|---|
isVisible | 상태바의 숨김 유무를 설정합니true : 상태바 보이기 (기본값)false : 상태바 숨기기 |
샘플 코드
ShopLive.setVisibleStatusBar(isVisible : Bool)
indicatorColor
로딩 인디케이터 색을 설정합니다.
var indicatorColor: UIColor { get set }
샘플 코드
ShopLive.indicatorColor = UIColor.red
- 적용 가이드
isSuccessCampaignJoin() -> Bool
방송 진입 성공 여부를 확인합니다.
관련 Callback
: handleReceivedCommand - ON_SUCCESS_CAMPAIGN_JOIN
isSuccessCampaignJoin() -> Bool
샘플 코드
print(ShopLive.isSuccessCampaignJoin())
AutoResumeVideoOnCallEnded 옵션
통화 종료 후 영상으로 돌아왔을 때, 자동 재생이 되도록 설정합니다.
setAutoResumeVideoOnCallEnded(_ autoResume: Bool)
setAutoResumeVideoOnCallEnded(_ autoResume: Bool)
매개변수 | 설명 |
---|---|
autoResume | 통화 종료 후, 영상 자동 재생true : 자동 재생false : 자동 재생되지 않음 (기본값) |
샘플 코드
ShopLive.setAutoResumeVideoOnCallEnded(true)
- 적용 가이드
isAutoResumeVideoOnCallEnded() -> Bool
현재 설정된 값을 반환합니다.
true
: 통화 종료 후 자동재생
false
: 통화종료 후 영상 정지
isAutoResumeVideoOnCallEnded() -> Bool
샘플 코드
print(ShopLive.isAutoResumeOnCallEnded())
- 적용 가이드
KeepPlayVideoOnHeadphoneUnplugged 옵션
이어폰(또는 헤드셋) 연결이 끊겼을 때, 영상을 중지하지 않고 자동 재생이 되도록 설정합니다.
setKeepPlayVideoOnHeadphoneUnplugged(_ keepPlay: Bool)
이어폰(또는 헤드셋) 연결이 끊겼을 때, 영상을 중지하지 않고 자동 재생이 되도록 설정합니다.
setKeepPlayVideoOnHeadphoneUnplugged(_ keepPlay: Bool)
매개변수 | 설명 |
---|---|
keepPlay | 이어폰(또는 헤드셋) 연결이 끊겼을 때, 계속 영상 재생true : 자동 재생false : 자동 재생되지 않음(기본값) |
샘플 코드
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged(true)
- 적용 가이드
isKeepPlayVideoOnHeadPhoneUnplugged() -> Bool
현재 설정된 값을 반환합니다.
true
: 영상 계속 재생
false
: 연결이 끊기면 영상 정지
isKeepPlayVideoOnHeadPhoneUnplugged() -> Bool
샘플 코드
print(ShopLive.isKeepPlayVideoOnHeadPhoneUnplugged())
- 적용 가이드
NextActionOnHandleNavigation 옵션
사용자가 상품, 공지사항, 배너 등 링크를 선택하였을 때, Shoplive Player의 다음 동작을 설정합니다.
public enum ActionType: Int {
case PIP
case KEEP
case CLOSE
}
매개변수 | 설명 |
---|---|
PIP | PIP 전환 |
KEEP | 상태 유지 |
CLOSE | 종료 |
setNextActionOnHandleNavigation(actionType:)
setNextActionOnHandleNavigation(actionType: ActionType)
매개변수 | 설명 |
---|---|
actionType | 사용자의 링크 선택 시 Shoplive Player의 다음 동작 |
샘플 코드
// PIP 전환
ShopLive.setNextActionOnHandleNavigation(.PIP)
// 상태 유지
ShopLive.setNextActionOnHandleNavigation(.KEEP)
// 종료
ShopLive.setNextActionOnHandleNavigation(.CLOSE)
getNextActionTypeOnHandleNavigation() -> ActionType
사용자의 링크 선택 시 설정된 Shoplive Player의 다음 동작을 확인합니다.
getNextActionTypeOnHandleNavigation() -> ActionType
샘플 코드
print(ShopLive.getNextActionTypeOnHandleNavigation())
sendCommandMessage
서버로 command와 payload를 전달합니다.
사전 정의된 형식의 command, payload 를 전달할 수 있습니다. (또는, Shoplive와 협의하여 command와 payload를 정의할 수 있습니다.)
@objc static func sendCommandMessage(command: String, payload: [String:Any]?)
매개변수 | 설명 |
---|---|
command | 사전 정의된 command |
payload | 사전 정의된 payload |
샘플 코드
let command: String = “COMMAND_NAME”
var payload: [String : Any] = [:]
payload[“Int_Data” : 1]
payload[“String_Data” : “Sample_String”]
ShopLive.sendCommandMessage(command: command, payload: payload)
setMuteWhenPlayStart(_ mute: Bool)
Shoplive Player를 시작할 때 사운드가 켜지도록 하거나 음소거하도록 설정합니다.
(기본값: 사운드가 켜진 상태로 Shoplive Player를 시작합니다.)
@objc static func setMuteWhenPlayStart(_ mute: Bool)
매개변수 | 설명 |
---|---|
mute | 음소거 설정 여부true : 음소거로 시작false : 사운드 켜진 상태로 시작 |
샘플 코드
// Shoplive Player를 시작할 때 음소거하도록 설정
ShopLive.setMuteWhenPlayStart(true)
//Shoplive Player를 시작할 때 사운드가 켜지도록 설정
ShopLive.setMuteWhenPlayStart(false)
setPictureInPicturePadding(padding: UIEdgeInsets) -> Bool
앱 내 PIP에서 PIP 패딩을 설정합니다. (top, left, right, bottom)
(기본값: top, left, right, bottom 모두 20으로 설정)
유효하지 않은 값이 설정 되면 false
를 반화하고 기본값을 적용합니다.
@objc static func setPictureInPicturePadding(padding: UIEdgeInsets) -> Bool
매개변수 | 설명 |
---|---|
padding | Top, left, right, bottom 등 padding값을 설정합니다. |
샘플 코드
// left: 20 right: 30 bottom: 10 top: 10 으로 설정
let padding: UIEdgeInsets = .init(top: 10, left: 20, bottom: 10, right: 30)
ShopLive.setPictureInPicturePadding(padding: padding)
- 적용 가이드
setPictureInPictureFloatingOffset(offset: UIEdgeInsets) -> Bool
앱 내 PIP에서 PIP가 이동할 수 있는 영역을 설정합니다.
유효하지 않은 값이 설정 되면 false
를 반화하고 기본값을 적용합니다.
@objc static func setPictureInPictureFloatingOffset(offset: UIEdgeInsets) -> Bool
매개변수 | 설명 |
---|---|
offset | top, left, right, bottom의 offset 값을 설정합니다. |
샘플 코드
// left: 20, right: 30, bottom: 10, top: 10으로 offset 값 설정
let offset: UIEdgeInsets = .init(top: 10, left: 20, bottom: 10, right: 30)
ShopLive.setPictureInPictureFloatingOffset(offset: offset)
setUsingLocalStorage(_ use: Bool)
로컬 스토리지 저장 기능 사용 여부를 설정합니다.
@objc static func setUsingLocalStorage(_ use: Bool)
매개변수 | 설명 |
---|---|
use | 로컬 스토리지 저장 기능 사용 여부true : 로컬 스토리지 저장 기능 사용false : 로컬 스토리지 저장 기능 사용 안 함 |
샘플 코드
// 로컬 스토리지 저장 기능을 사용하도록 설정
ShopLive.setUsingLocalStorage(true)
// 로컬 스토리지 저장 기능을 사용하지 않도록 설정
ShopLive.setUsingLocalStorage(false)
setAppVersion(_ appVersion: String)
앱 버전을 설정합니다.
API를 호출하지 않아도 기본으로 앱의 버전을 읽고 서버로 전달합니다.
이 기능을 사용하려면 Shoplive 담당자에게 문의하세요.
@objc static func setAppVersion(_ appVersion: String)
매개변수 | 설명 |
---|---|
appVersion | 앱 버전 |
샘플 코드
let appVersion: String = “1.0.0”
ShopLive.setAppVersion(appVersion)
setMixWithOthers(_ isMixAudio: Bool)
외부 오디오와 함께 방송을 시청할 수 있습니다.
@objc static func setMixWithOthers(_ isMixAudio: Bool)
매개변수 | 설명 |
---|---|
isMixAudio | true : 외부 오디오와 함께 방송 시청, false : 외부 오디오가 재생되면 Player는 일시정지 (기본값:true) |
샘플 코드
// 외부 오디오가 재생되면 Player는 일시정지
ShopLive.setMixWithOthers(false)
// 외부 오디오와 함께 방송 시청
ShopLive.setMixWithOthers(true)
useCloseButton(_ use: Bool)
Preview와 PIP모드에서 닫기 버튼을 활성화할 수 있습니다.
@objc static func useCloseButton(_ use: Bool)
매개변수 | 설명 |
---|---|
use | true : Preview와 PIP모드에서 닫기 버튼 사용, false : Preview와 PIP모드에서 닫기 버튼 사용하지 않음 |
샘플 코드
// Preview와 PIP모드에서 닫기 버튼 사용하지 않음
ShopLive.useCloseButton(false)
// Preview와 PIP모드에서 닫기 버튼 사용
ShopLive.useCloseButton(true)
addParameter(key: String, value: String)
플레이어를 실행하기 전에 커스텀 데이터를 추가할 수 있습니다.
@objc static func addParameter(key: String, value: String)
매개변수 | 설명 |
---|---|
key | 추가 적용할 커스텀 파라미터 key |
value | 추가 적용할 커스텀 파라미터 value |
샘플 코드
ShopLive.addParameter(key: "key", value: "value")
removeParameter(key: String, value: String)
플레이어를 실행하기 전에 addParameter로 추가했던 커스텀 데이터를 삭제합니다.
@objc static func removeParameter(key: String)
매개변수 | 설명 |
---|---|
key | 삭제할 커스텀 파라미터 key |
샘플 코드
ShopLive.removeParameter(key: "key)
setUtmSource(utmSource: String)
UTM Source를 tracking 할 수 있습니다. 데이터는 데이터 인사이트에서 확인 할 수 있습니다.
func setUtmSource(utmSource: String?)
매개변수 | 설명 |
---|---|
utmSource | 해당 유입이 어디에서 발생하였는지를 전달해줍니다. |
샘플 코드
ShopLive.setUtmSource(“{utm_source}”)
setUtmMedium(utmMedium: String)
UTM Medium를 tracking 할 수 있습니다. 데이터는 데이터 인사이트에서 확인 할 수 있습니다.
func setUtmMedium(utmMedium: String?)
매개변수 | 설명 |
---|---|
utmMedium | 해당 유입이 어떻게 발생하였는지를 전달해줍니다. 구글은 medium 파라미터를 유입이 유도된 마케팅 방식을 지칭하도록 세팅하는 것을 권장하고 있습니다. (ex. cpc, banner, email, blog, social etc.) |
샘플 코드
ShopLive.setUtmMedium(“{utm_medium}”)
setUtmCampaign(utmCampaign: String)
UTM Campaign를 tracking 할 수 있습니다. 데이터는 데이터 인사이트에서 확인 할 수 있습니다.
func setUtmCampaign(utmCampaign: String?)
매개변수 | 설명 |
---|---|
utmCampaign | 어떤 광고의 캠페인으로 유입이 발생하였는지를 전달해줍니다. Campaign Name, Campaign Term, Campaign Content로 나눠서 만들 수 있습니다. |
샘플 코드
ShopLive.setUtmCampaign(“{utm_campaign}”)
setUtmContent(utmContent: String)
UTM Content를 tracking 할 수 있습니다. 데이터는 데이터 인사이트에서 확인 할 수 있습니다.
func setUtmContent(utmContent: String?)
매개변수 | 설명 |
---|---|
utmContent | 해당 유입이 어떤 내용을 가진 포스팅/광고에 의해서 발생하였는지를 전달해줍니다. 주로 campaign 파라미터의 하위 구분으로 자주 활용됩니다. |
샘플 코드
ShopLive.setUtmContent(“{utm_content}”)
Updated 9 months ago