위치 확장

위치 확장을 사용하면 사용자의 위치에 따라 작업할 수 있습니다. 이 확장은 Places Query Service API에 대한 인터페이스입니다. GPS 좌표 및 지오펜스 영역 이벤트가 포함된 이벤트를 수신하면 이 확장은 규칙 엔진에서 처리하는 새 이벤트를 발송합니다. 위치 확장은 API에서 검색하는 앱 데이터에 가장 가까운 POI 목록을 검색하고 전달합니다. API에서 반환되는 영역은 캐시 및 지속성에 저장되며, 이는 제한된 오프라인 처리를 허용합니다.

Adobe Experience Platform Launch에 위치 확장 설치

  1. Experience Platform Launch에서 확장 탭.

  2. 설정 카탈로그 탭에서 를 찾습니다 위치 확장을 마우스로 가리킨 다음 설치.

  3. 이 속성에서 사용할 위치 라이브러리를 선택합니다. 앱에서 액세스할 수 있는 라이브러리입니다.

  4. 저장​을 클릭합니다.

    를 클릭하면 저장​를 검색하는 경우, Experience Platform SDK는 선택한 라이브러리에서 POI를 위한 위치 서비스 를 검색합니다. POI 데이터는 앱을 빌드할 때 라이브러리 다운로드에 포함되지 않지만, POI의 위치 기반 하위 집합은 런타임 시 최종 사용자의 장치에 다운로드되고 사용자의 GPS 좌표를 기반으로 합니다.

  5. 게시 프로세스를 완료하여 SDK 구성을 업데이트합니다.

    Experience Platform Launch에서 게시에 대한 자세한 내용은 게시.

위치 확장 구성

앱에 위치 확장 추가

위치 확장을 Android 및 iOS 앱에 추가할 수 있습니다. iOS 또는 Android 애플리케이션에 위치를 추가하는 단계는 아래에 나와 있습니다. 위치 확장 은 아래의 다음 플랫폼에 대해서도 사용할 수 있습니다. 이러한 플랫폼 중 하나를 사용하여 개발할 때 애플리케이션에 위치 를 추가하는 경우 함께 제공되는 링크를 참조하십시오.

Cordova Places 플러그인

React Native Places 플러그인

Flutter Places 플러그인

Xamarin Places 플러그인

Android

Java를 사용하여 앱에 위치 확장 기능을 추가하려면:

  1. 앱의 gradle 파일을 사용하여 프로젝트에 위치 확장을 추가합니다.

    implementation 'com.adobe.marketing.mobile:places:1.+'
    implementation 'com.adobe.marketing.mobile:sdk-core:1.+'
    
  2. 애플리케이션의 기본 활동에서 위치 확장을 가져옵니다.

    import com.adobe.marketing.mobile.Places;
    

iOS

Objective-C 또는 Swift를 사용하여 앱에 위치 확장 을 추가하려면 다음을 수행합니다.

  1. 위치 및 Mobile Core 라이브러리를 프로젝트에 추가합니다. 다음 pod를 Podfile:

    pod 'ACPPlaces', '~> 1.0'
    pod 'ACPCore', '~> 2.0'    # minimum Core version for Places is 2.0.3
    

    또는 Cocoapods를 사용하지 않는 경우 Adobe에서 Mobile 코어 및 위치 라이브러리를 수동으로 포함할 수 있습니다. 릴리스 페이지 설정

  2. Cocoapods를 업데이트합니다.

    pod update
    
  3. Xcode를 열고 AppDelegate 클래스에서 Core 및 Places 헤더를 가져옵니다.

    Objective-C

    #import "ACPCore.h"
    #import "ACPPlaces.h"
    

    Swift

    import ACPCore
    import ACPPlaces
    

Mobile Core에 위치 확장 등록

Android 및 iOS에서 Mobile Core에 위치 확장을 등록해야 합니다.

Android

앱의 OnCreate 메서드: Places 확장을 등록합니다.

public class PlacesTestApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        MobileCore.setApplication(this);

        try {
            Places.registerExtension();
            MobileCore.start(null);
        } catch (Exception e) {
            Log.e("PlacesTestApp", e.getMessage());
        }
    }
}

iOS

앱의 application:didFinishLaunchingWithOptions: 메서드를 사용하여 Places 확장을 다른 SDK 등록 호출에 등록합니다.

Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // make other sdk registration calls
    [ACPPlaces registerExtension];
    return YES;
}

Swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // make other sdk registration calls
    ACPPlaces.registerExtension();
    return true;
}

위치 멤버십 유지 시간 수정

특히 장치가 백그라운드 위치 업데이트를 받지 않는 경우 위치 데이터가 빠르게 부실해질 수 있습니다.

를 설정하여 장치의 Places 멤버십 데이터에 대한 유지 시간 제어 places.membershipttl 구성 설정. 전달된 값은 장치에 대해 유효한 위치 상태가 유지되는 시간(초)을 나타냅니다.

Android

의 콜백 내부 MobileCore.start() 를 호출하기 전에 필요한 변경 사항으로 구성을 업데이트합니다. lifecycleStart:

public class PlacesTestApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        MobileCore.setApplication(this);

        try {
            Places.registerExtension();
            MobileCore.start(new AdobeCallback() {
                @Override
                public void call(Object o) {
                    // switch to your App ID from Launch
                    MobileCore.configureWithAppID("my-app-id");

                    final Map<String, Object> config = new HashMap<>();
                    config.put("places.membershipttl", 30);
                    MobileCore.updateConfiguration(config);

                    MobileCore.lifecycleStart(null);
                }
            });
        } catch (Exception e) {
            Log.e("PlacesTestApp", e.getMessage());
        }
    }
}

iOS

의 콜백에서 첫 번째 줄 ACPCores start: 메서드, 호출 updateConfiguration:

Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // make other sdk registration calls

    const UIApplicationState appState = application.applicationState;
    [ACPCore start:^{
        [ACPCore updateConfiguration:@{@"places.membershipttl":@(30)}];

        if (appState != UIApplicationStateBackground) {
            [ACPCore lifecycleStart:nil];
        }
    }];

    return YES;
}

Swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // make other sdk registration calls

    let appState = application.applicationState;
    ACPCore.start {
        ACPCore.updateConfiguration(["places.membershipttl" : 30])

        if appState != .background {
            ACPCore.lifecycleStart(nil)
        }
    }

    return true;
}

구성 키

런타임 시 프로그래밍 방식으로 SDK 구성을 업데이트하려면 다음 정보를 사용하여 Places 확장 구성 값을 변경합니다. 자세한 내용은 구성 API 참조.

필수 여부 설명
places.libraries 모바일 앱용 Places 확장 라이브러리. 라이브러리 ID와 모바일 앱에서 지원하는 라이브러리 이름을 지정합니다.
places.endpoint 라이브러리 및 POI에 대한 정보를 가져오는 데 사용되는 기본 위치 쿼리 서비스 끝점입니다.
places.membershipttl 아니요 기본값은 3600(1시간 초)입니다. 장치에 대한 위치 멤버십 정보가 유효한 기간(초)을 나타냅니다.

이 페이지에서는