設定方法

以下為 iOS 資料庫所提供的方法清單。

SDK 目前已支援多個 Adobe Experience Cloud 解決方案,包括 Analytics、Target、Audience Manager 以及 Adobe Experience Platform Identity Service。

  • setAppExtensionType

    設定 Adobe Mobile SDK 以確認目前執行的擴充功能類型。

    設定為下列任一值:

    • ADBMobileAppExtensionTypeRegular - 擴充功能與容納應用程式搭配。
    • ADBMobileAppExtensionTypeStandAlone - 擴充功能並未與容納應用程式搭配。
    秘訣

    此方法​**「僅」**​在您的應用程式具有擴充功能,或為獨立擴充功能時,才可使用。如需詳細資訊,請參閱下方的 ADBMobileAppExtensionType

    • 此方法的語法如下:

      + (void) setAppExtensionType:(ADBMobileAppExtensionType)type;
      
    • 此方法的程式碼範例如下:

      [ADBMobile setAppExtensionType:ADBMobileAppExtensionTypeStandAlone]; 
      
  • 版本

    傳回 Adobe Mobile 程式庫的目前版本。

    • 此方法的語法如下:

      +(NSString*) version;
      
    • 此方法的程式碼範例如下:

      NSString*libraryVersion = [ADBMobileversion];
      
  • privacyStatus

    傳回目前使用者之隱私權狀態的列舉表示法:

    • ADBMobilePrivacyStatusOptIn – 會立即傳送點擊。

    • ADBMobilePrivacyStatusOptOut – 會捨棄點擊。

    • ADBMobilePrivacyStatusUnknown – 如果已啟用離線追蹤,會儲存點擊直到隱私權狀態變更為選擇加入 (屆時會傳送點擊) 或選擇退出 (屆時會捨棄點擊) 為止。如果沒有啟用離線追蹤,則會捨棄點擊,直到隱私權狀態變更為選擇加入為止。預設值設定在 ADBMobileConfig.json 檔案中。

    • 此方法的語法如下:

      + (ADBMobilePrivacyStatus) privacyStatus;
      
    • 此方法的程式碼範例如下:

      ADBMobilePrivacyStatus privacyStatus = [ADBMobileprivacyStatus];
      
  • setPrivacyStatus

    將目前使用者的隱私權狀態設為 status

    設定為下列其中一值:

    • ADBMobilePrivacyStatusOptIn – 會立即傳送點擊。

    • ADBMobilePrivacyStatusOptOut – 會捨棄點擊。

    • ADBMobilePrivacyStatusUnknown – 如果已啟用離線追蹤,會儲存點擊直到隱私權狀態變更為選擇加入 (屆時會傳送點擊) 或選擇退出 (屆時會捨棄點擊) 為止。如果沒有啟用離線追蹤,則會捨棄點擊,直到隱私權狀態變更為選擇加入為止。

    • 此方法的語法如下:

      + (void) setPrivacyStatus:(ADBMobilePrivacyStatus)status;
      
    • 此方法的程式碼範例如下:

      [ADBMobile setPrivacyStatus:ADBMobilePrivacyStatusOptIn];
      
  • lifetimeValue

    傳回目前使用者的期限值。預設值為 0

    • 此方法的語法如下:

      + (NSDecimalNumber *) lifetimeValue;
      
    • 此方法的程式碼範例如下:

      NSDecimalNumber *lifeValue = [ADBMobile lifetimeValue];
      
  • trackingIdentifier

    傳回自動產生的訪客識別碼。這是 Adobe 伺服器產生的應用程式專屬訪客 ID,此 ID 不會重複。如果產生 ID 時無法連線 Adobe 伺服器,則會使用 Apple 的 CFUUID 來產生。值會在初次啟動時產生並儲存,此後便一律使用此值。此 ID 會在應用程式升級時保留、在標準應用程式備份程序期間儲存及還原,並在解除安裝時移除。

    秘訣

    如果您的應用程式從 Experience Cloud 3.x 升級至 4.x SDK,應用程式會擷取先前的訪客 ID (自訂或自動產生) 並將其儲存為自訂使用者識別碼。如需詳細資訊,請參閱下方的 userIdentifier 列。這樣在 SDK 升級之後即可保留訪客資料。若為全新安裝的 4.x SDK,則使用者識別碼為 nil,且會使用追蹤識別碼。

    • 此方法的語法如下:

      + (NSString *) trackingIdentifier;
      
    • 此方法的程式碼範例如下:

      NSString *tid = [ADBMobile trackingIdentifier];
      
  • userIdentifier

    若已設定自訂識別碼,將會傳回使用者識別碼。如果未設定自訂識別碼,則會傳回 nil。預設值為 nil

    秘訣

    如果您的應用程式從 Experience Cloud 3.x 升級至 4.x SDK,應用程式會擷取先前的訪客 ID (自訂或自動產生) 並將其儲存為自訂使用者識別碼。這樣在 SDK 升級之後即可保留訪客資料。

    若為全新安裝的 4.x SDK,則使用者識別碼為 nil,直到設定完成為止。

    • 此方法的語法如下:

      +(NSString *) userIdentifier;
      
    • 此方法的程式碼範例如下:

      NSString *uid = [ADBMobileuserIdentifier];
      
  • setUserIdentifier

    將使用者識別碼設為 identifier

    • 此方法的語法如下:

      +(void)setUserIdentifier:(NSString*)identifier;
      
    • 此方法的程式碼範例如下:

      [ADBMobile setUserIdentifier:@"billybob"]; 
      
  • debugLogging

    傳回目前的偵錯記錄偏好設定。預設值為 NO

    • 此方法的語法如下:

      + (BOOL) debugLogging;
      
    • 此方法的程式碼範例如下:

      BOOL debugging = [ADBMobile debugLogging];
      
  • setDebugLogging

    將偵錯記錄偏好設定設為 debug

    • 此方法的語法如下:

      + (void) setDebugLogging:(BOOL)debug;
      
    • 此方法的程式碼範例如下:

      [ADBMobile setDebugLogging:YES];
      
  • keepLifecycleSessionAlive

    向 SDK 指出不論設定檔案中的生命週期工作階段逾時值為何,您下次從背景恢復時都不應啟動新的工作階段。

    秘訣

    此方法旨在用於在背景中註冊接收通知的應用程式,且只有當應用程式於背景執行時,才應從此時執行的程式碼中呼叫此方法。

    • 此方法的語法如下:

      + (void) keepLifecycleSessionAlive;
      
    • 此方法的程式碼範例如下:

      [ADBMobile keepLifecycleSessionAlive]; 
      
  • collectLifecycleData

    向 SDK 指出應在 SDK 的所有解決方案中收集、使用其生命週期資料。如需詳細資訊,請參閱生命週期量度

    秘訣

    叫用此方法的慣用位置位於 application:didFinishLaunchingWithOptions:

    • 此方法的語法如下:

      + (void) collectLifecycleData;
      
    • 此方法的程式碼範例如下:

      [ADBMobile collectLifecycleData];
      
  • collectLifecycleDataWithAdditionalData:

    可讓您在收集生命週期量度時傳遞其他資料。

    您必須從應用程式的進入點呼叫此方法。若適用,您的 AppDelegate 類別中可能會包含下列兩種方法其中之一或兩者皆包含 application:didFinishLaunchingWithOptions: 和/或 applicationWillEnterForeground:

    重要

    任何透過 collectLifecycleDataWithAdditionalData: 傳遞至 SDK 的資料將會由 SDK 保存在 NSUserDefaults。SDK 會拆解任何不屬於 NSDictionaryNSString 類型之 NSNumber 參數的值。若要使用 collectLifecycleDataWithAdditionalData:,您必須有 SDK 4.4 版​或更新版本。

    • 此方法的語法如下:

      + (void) collectLifecycleDataWithAdditionalData:(nullableNSDictionary*)data; 
      
    • 此方法的程式碼範例如下:

      [ADBMobile collectLifecycleDataWithAdditionalData:@{@"entryType":@"appShortcutIcon"}]; 
      
  • pauseCollectingLifecycleData

    此 API 可暫停生命週期資料的收集作業。如需詳細資訊,請參閱生命週期量度

    重要

    applicationDidEnterBackground 委派方法中,您必須先呼叫 pauseCollectingLifecycleData 方法。

    提供 API 是為了緩解搭載 iOS 13 之 iPhone7/7s 或舊版裝置上作業長度量度異常的問題。這是因為 iOS 13 發生了某些未知變更,使得應用程式在背景中運作時,iOS 並未預留充足的時間讓背景工作完成。

    • 此方法的語法如下:

      + (void) pauseCollectingLifecycleData;
      
    • 此方法的程式碼範例如下:

      - (void)applicationDidEnterBackground:(UIApplication *)application{
          // manually stop the lifecycle of SDK
          // important: do NOT call any track state or track action after this line
          [ADBMobile pauseCollectingLifecycleData];   
      
      
          // the following code is optional, may help to mitigate the issue a bit more. If you have other logic to run here that probably takes more than 10ms, then there is no need to add this line of code.
          [NSThread sleepForTimeInterval:0.01];
      
      
          // app's code to handle applicationDidEnterBackground
      }
      
  • overrideConfigPath

    可讓您在應用程式啟動時,載入另一個 ADBMobile JSON 設定檔。應用程式會使用另一個設定,直到關閉為止。

    重要

    若要使用 overrideConfigPath,您必須有 SDK 4.2 版或更新版本。

    • 此方法的語法如下:

       + (void) overrideConfigPath: (nullableNSString *) path;
      
    • 此方法的程式碼範例如下:

      NSString *filePath = [[NSBundle mainBundle] pathForResource:@"ExampleJSONFile" ofType:@"json"]; 
      [ADBMobile overrideConfigPath:filePath];
      
  • setPushIdentifier

    設定用於推送通知的裝置代號。

    重要

    此方法只應在 application:didRegisterForRemoteNotificationsWithDeviceToken: 方法中使用。

    • 此方法的語法如下:

      + (void) setPushIdentifier:(NSData *)deviceToken;
      
    • 此方法的程式碼範例如下:

      - (void) application:(UIApplication *) application  didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 
      [ADBMobile setPushIdentifier:deviceToken];  
      }
      
  • setAdvertisingIdentifier

    在 SDK 中設定 IDFA。如果已於 SDK 設定 IDFA,系統會在生命週期中傳送 IDFA。您也可在「訊號」(回傳) 中存取 IDFA。

    秘訣

    「只有」****​在您使用廣告服務時,才能從 Apple API 擷取 IDFA。若您擷取了 IDFA 卻不當使用,您的應用程式可能會遭到拒絕。

    如果您的應用程式需要 IDFA,請查看 Apple 文件,查詢使用者的廣告追蹤偏好設定並擷取 IDFA 值。

    您必須在 iOS 14 以上版本的系統中實作新的應用程式追蹤透明度框架,才能成功擷取 IDFA 值。

    • 此方法的語法如下:

      +(void) setAdvertisingIdentifier:(NSString*)identifier;
      
    • 此方法的程式碼範例如下:

      NSString *idfa = // retrieve IDFA using AdSupport (before iOS 14.0) and/or AppTrackingTransparency (iOS 14.0+)
      [ADBMobile setAdvertisingIdentifier:idfa]; 
      

ADBMobileAppExtensionType 列舉

/** 
 * @brief An enum type. 
 * The possible types of app extension you might use 
 * @see setAppExtensionType 
 */ 
typedef NS_ENUM(NSUInteger, ADBMobileAppExtensionType) { 
    ADBMobileAppExtensionTypeRegular = 0, /*!< Enum value ADBMobileAppExtensionTypeRegular. */ 
    ADBMobileAppExtensionTypeStandAlone = 1 /*!< Enum value ADBMobileAppExtensionTypeStandAlone. */ 
};

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now