サードパーティのディファードディープリンクの追跡

iOS SDK を使用して、サードパーティのディファードディープリンクの追跡を実装します。

従来の Adobe Mobile SDK ディープリンク

現在、Adobe Mobile SDK がサポートしているディープリンクでは、アプリ開発者が trackAdobeDeepLink API を呼び出し、ディープリンクの URL(設定時に Adobe Mobile Services で生成されるフィンガープリンター URL)を渡すことが求められます。SDK はフィンガープリンターに Ping を発行して、獲得データを取得し、ライフサイクルの一部としてインストール/起動分析コールのコンテキストデータに追加します。さらに、SDK は、ディープリンク URL のパラメーターからのディープリンクデータも追加します。ディープリンクについて詳しくは、ディープリンクの追跡を参照してください。

Facebook ディープリンク

広告作成者は、Facebook 上に広告をディープリンクとして作成することができます。ユーザーが Facebook 上の広告をクリックすると、アプリに興味を持った情報に直接移動します。ディープリンクはフィンガープリンターの URL では​ありません。ただし、広告の設定時にサードパーティのディープリンク URL を指定するオプションがあります。Experience Cloudの Mobile SDK およびサービスを使用しているアプリ開発者は、このフィールドに Mobile Services で設定されたフィンガープリンターの URL を入力する必要があります。 すべてが正しく設定されている場合、Facebook SDK は、アプリがインストールまたは起動されたときにこの URL をアプリケーションに渡します。

SDK の設定

  1. Facebook SDK を設定します。

    詳しくは、以下を参照してください。

  2. SDK を設定するには、trackAdobeDeepLink を呼び出して URL を SDK に渡します。

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
    { 
      [ADBMobile trackAdobeDeepLink:url]; 
      return YES; 
    }
    
    ヒント

    ディープリンク URL に a.deeplink.id という名前のキーがあることを確認してください。URL に a.deeplink.id パラメーターがない場合、コンテキストデータに URL パラメーターは追加されません。

アプリケーションが上記のように設定されている場合、現在の AMSDK バージョンは正常に機能し、ディープリンクデータがインストール/起動分析コールに正しく追加されます。

サンプルアプリケーションでの機能の有効化

  1. URL スキームを登録します。

    ディープリンク URL と同じ URL スキームを登録したことを確認します。

    <key>CFBundleURLTypes</key> 
        <array> 
            <dict> 
                <key>CFBundleURLSchemes</key> 
                <array> 
                    <string>sampleapptest</string> 
                </array> 
            </dict> 
        </array>
    
  2. Facebook SDK をリンクします。

    Facebook アセット

  3. AppDelegate を編集します。

    1. ヘッダーを読み込みます。

      /************************************************************************* 
      ADOBE SYSTEMS INCORPORATED 
      Copyright 2015 Adobe Systems Incorporated 
      All Rights Reserved. 
      NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the 
      terms of the Adobe license agreement accompanying it.  If you have received this file from a 
      source other than Adobe, then your use, modification, or distribution of it requires the prior 
      written permission of Adobe. 
      
      **************************************************************************/ 
      
      #import "AppDelegate.h" 
      #import "GalleryViewController.h" 
      #import "SimpleTrackingController.h" 
      #import "PostbackController.h" 
      #import "InAppMessageViewController.h" 
      #import "LifetimeValueController.h" 
      #import "LocationTargetingController.h" 
      #import "MediaViewController.h" 
      #import "TimedActionController.h"
      
      // Uncomment after including the facebook sdks. 
      @import FBSDKCoreKit; 
      @import Bolts;
      
    2. ディファードディープリンクにハンドルを追加します。

      - (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
          /* 
           * Adobe Tracking - Analytics 
           * 
           * turn on debug logging for the ADBMobile SDK 
           * enable the collection of lifecycle data 
           */ 
              if (launchOptions[UIApplicationLaunchOptionsURLKey] == nil) { 
                  if (NSClassFromString(@"FBSDKAppLinkUtility") != nil) 
                  { 
                      [NSClassFromString(@"FBSDKAppLinkUtility") performSelector:@selector(fetchDeferredAppLink:) withObject:^(NSURL *url, NSError *error) { 
                          if (error) { 
                              NSLog(@"Received error while fetching deferred app link %@", error); 
                          } 
                          if (url) { 
                              [[UIApplication sharedApplication] openURL:url]; 
                          } 
                      }]; 
                  } 
          } 
          ..... 
          ..... 
          return YES; 
      }
      
    3. trackAdobeDeepLink API を呼び出してディープリンク URL を SDK に渡します。

      - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)options { 
          [self handleDeepLink:url]; 
      
          return YES; 
      }
      

このページ