跟踪第三方延期深层链接

使用 iOS SDK 实施第三方延期深层链接跟踪。

经典 Adobe Mobile SDK 深层链接

Adobe Mobile SDK 当前支持深层链接,应用程序开发人员应在该链接中调用 trackAdobeDeepLink API,并传递深层链接 URL,该 URL 为配置期间在 Adobe Mobile Services 中生成的指纹 URL。该 SDK 可对指纹执行 ping 操作以获取客户获取数据,并将其作为生命周期的一部分附加到安装/启动分析调用上下文数据中。此外,SDK 还附加深层链接 URL 参数中的深层链接数据。有关深层链接的更多信息,请参阅跟踪深层链接

Facebook 深层链接

广告创建者可在 Facebook 上创建一个广告作为深层链接。当用户在 Facebook 上单击该广告时,将会直接转到应用程序中他们感兴趣的信息。深层链接​不是​指纹 URL。但是,在广告配置期间,有一个选项可提供第三方深层链接 URL。使用Experience CloudMobile 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;
      }
      

在此页面上