-
Notifications
You must be signed in to change notification settings - Fork 106
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3718941
commit bd63825
Showing
296 changed files
with
963 additions
and
1 deletion.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
--- | ||
title: Implementing the Experience Cloud in Mobile iOS Applications with Adobe Experience Platform Launch | ||
description: Implementing the Experience Cloud in Websites with Launch is the perfect starting point for mobile app developers who want to learn how to implement the Adobe Experience Cloud solutions in their mobile apps. | ||
seo-description: | ||
seo-title: Implementing the Experience Cloud in Mobile iOS Applications with Adobe Experience Platform Launch | ||
solution: Experience Cloud | ||
--- | ||
|
||
# Overview | ||
|
||
_Implementing the Experience Cloud in Mobile iOS Applications_ is the perfect starting point for mobile app developers who want to learn how to implement the Adobe Experience Cloud solutions in their iOS apps. | ||
|
||
Each lesson contains how-to exercises and foundational information to help you implement the Experience Cloud and understand its value. A demo Swift app is provided for you to complete the tutorial, so you can learn the underlying techniques in a safe environment. After completing this tutorial, you should be ready to start implementing all of your marketing solutions through Launch in your own iOS app! | ||
|
||
After completing this tutorial you will be able to: | ||
|
||
* Create a mobile Launch Property | ||
|
||
* Install a Launch Property in a mobile app | ||
|
||
* Implement the following Adobe Experience Cloud solutions: | ||
* **[Experience Cloud ID Service](id-service.md)** | ||
* **[Adobe Target](target.md)** | ||
* **[Adobe Analytics](analytics.md)** | ||
* **[Adobe Audience Manager](audience-manager.md)** | ||
|
||
<!--* ??? Create rules and data elements to send data to the Adobe solutions--> | ||
|
||
<!--* Validate the implementation using the Adobe Experience Cloud Debugger--> | ||
|
||
* Publish changes in Launch through development, staging, and production environments | ||
|
||
## Prerequisites | ||
|
||
In these lessons, it is assumed that you have an Adobe Id and the required permissions to complete the exercises. If not, you may need to reach out to your Experience Cloud Administrator to request access. | ||
|
||
* For Launch, you must have permission to Develop, Approve, Publish, Manage Extensions, and Manage Environments. For more information on Launch permissions, see [the documentation](https://docs.adobelaunch.com/administration/user-permissions). | ||
* For Adobe Target, you must to know your client code | ||
* For Adobe Analytics, you must know your tracking server and which report suites you will use to complete this tutorial | ||
* For Audience Manager, you must know your Audience Manager Subdomain (also known as the “Partner Name” “Partner ID,” or “Partner Subdomain”) | ||
|
||
Also, it is assumed that you are familiar with iOS development in Swift. You do not need to be a master of Swift to complete the lessons, but you will get more out of them if you can comfortably read and understand code. | ||
|
||
## About Launch | ||
|
||
Launch, by Adobe is the next generation of mobile SDK and website tag management capabilities from Adobe. Launch gives customers a simple way to deploy and manage all of the analytics, marketing, and advertising solutions necessary to power relevant customer experiences. There is no additional charge for Launch. It is available to any Adobe Experience Cloud customer. | ||
|
||
## About the Lessons | ||
|
||
In these lessons, you will implement the Adobe Experience Cloud into a fake bus company app called "[Bus Booking](assets/iOS_Standalone.zip)". The App has some simple capabilities that will allow you to complete an Experience Cloud mobile implementation before you move on to your own app. You will build your own Launch property, in your own Experience Cloud organization, and implement in a local copy of the Bus Booking app. | ||
|
||
[](assets/iOS_Standalone.zip) | ||
|
||
## Get the Tools | ||
|
||
1. You must be use a Mac to complete this tutorial | ||
1. Download [XCode](https://developer.apple.com/xcode/) | ||
1. Download the [Bus Booking app](assets/iOS_Standalone.zip) | ||
1. Install [Cocoapods](https://guides.cocoapods.org/using/getting-started.html) | ||
|
||
Let's get started! | ||
|
||
[Next "Create a Launch Property" >](launch-create-a-property.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
--- | ||
title: Implement Experience Cloud Integrations with Launch | ||
description: Learn how to validate the Audiences, A4T, and Customer Attributes integrations in your Adobe Experience Cloud implementation. This lesson is part of the Implementing the Experience Cloud in Websites with Launch tutorial. | ||
seo-description: | ||
seo-title: Implement Experience Cloud Integrations with Launch | ||
solution: Experience Cloud | ||
--- | ||
|
||
# Experience Cloud Integrations | ||
|
||
In this lesson, you will review the key integrations between the solutions you just implemented. The good news is that by completing the earlier lessons, you have already implemented the code-aspects of the integrations! You don't need to do any additional work in this lesson besides reading and validating. | ||
|
||
## Learning Objectives | ||
|
||
At the end of this lesson, you will be able to: | ||
|
||
1. Explain the basic use cases for Audience Sharing, Analytics for Target (A4T) and Customer Attributes integrations | ||
1. Validate the basic client-side implementation aspects of these integrations | ||
|
||
## Prerequisites | ||
|
||
You should complete all of the previous lessons in this tutorial before following the instructions in this lesson. | ||
|
||
>[!NOTE] There are many user-permissions requirements, account configurations, and provisioning steps are required to fully use these integrations and which are beyond the scope of this tutorial. If you are not already using these integrations in your current implementation of the Experience Cloud, you should consider the following: | ||
> | ||
> * Review the full requirements of the [Core Services integrations](https://marketing.adobe.com/resources/help/en_US/mcloud/core_services.html) | ||
> * Review the full requirements of the [Analytics for Target integration](https://marketing.adobe.com/resources/help/en_US/target/a4t/c_before_implement.html) | ||
> * Have an Administrator of your Experience Cloud Organization [request provisioning of these integrations](https://www.adobe.com/go/audiences) | ||
## Audiences | ||
|
||
[Audiences](https://marketing.adobe.com/resources/help/en_US/mcloud/audience_library.html) is part of the People Core Service and allows you to share audiences between solutions. For example you can create an audience in Audience Manager and use it to deliver personalized content with Target. | ||
|
||
The main requirements to implement A4T—which you have already done—are to: | ||
|
||
1. Implement the Experience Cloud Id Service | ||
1. Implement Audience Manager | ||
1. Implement other solutions which you would like to receive or create audiences, such as Target and Analytics | ||
|
||
### Validate the Audiences integration | ||
|
||
The best way to validate the Audiences integration is to actually build an audience, share it to another solution, and then fully use it in the other solution (e.g. confirm that a visitor who qualifies for an AAM segment can qualify for a Target activity targeted to that segment). However, this is beyond the scope of this tutorial. | ||
|
||
These validation steps will focus on the critical part visible in the client-side implementation--the Visitor ID. | ||
|
||
1. Open the [We.Retail site](https://aem.enablementadobe.com/content/we-retail/us/en.html) | ||
|
||
1. Make sure the Debugger is mapping the Launch property to *your* Development environment, as described in the XYZ | ||
|
||
 | ||
|
||
1. Go to the Network tab of the Debugger | ||
|
||
1. Click **[!UICONTROL Clear All Requests]** just to clean things up | ||
|
||
1. Reload the We.Retail page, making sure that you see both the Target and Analytics requests in the Debugger | ||
|
||
1. Reload the We.Retail page again | ||
|
||
1. You should now see four requests in the Network tab of the Debugger—two for Target and two for Analytics | ||
|
||
1. Look in the row labeled "Experience Cloud Visitor ID." The IDs in every request by every solution should always be the same. | ||
|
||
 | ||
|
||
1. The IDs are unique per visitor, which you can confirm by asking a co-worker to repeat these steps. | ||
|
||
## Analytics for Target (A4T) | ||
|
||
The [Analytics for Target (A4T)](https://marketing.adobe.com/resources/help/en_US/target/a4t/a4t.html) integration allows you to leverage your Analytics data as the source for reporting metrics in Target. | ||
|
||
The main requirements to implement A4T—which you have already done—are to: | ||
|
||
1. Implement the Experience Cloud Id Service | ||
1. Fire the global mbox before the Analytics page view beacon | ||
|
||
A4T works by stitching together a server-side request from Target to Analytics with the Analytics page view beacon, which we call "hit-stitching." Hit-stitching requires that the Target request which delivers the activity (or increments a Target-based goal metric) have a parameter which matches a parameter in the Analytics page view beacon. This parameter is called the supplemental data id (SDIDs). | ||
|
||
### Validate the A4T Implementation | ||
|
||
The best way to validate the A4T integration is to actually build a Target activity using A4T and validate the reporting data, however this is beyond the scope of this tutorial. This tutorial will show you how to confirm that the supplemental data ids match between the solution calls. | ||
|
||
**To validate the SDIDs** | ||
|
||
1. Open the [We.Retail site](https://aem.enablementadobe.com/content/we-retail/us/en.html) | ||
|
||
1. Make sure the Debugger is mapping the Launch property to *your* Development environment, as described in the XYZ | ||
 | ||
|
||
1. Go to the Network tab of the Debugger | ||
|
||
1. Click **[!UICONTROL Clear All Requests]** just to clean things up | ||
|
||
1. Reload the We.Retail page, making sure that you see both the Target and Analytics requests in the Debugger | ||
|
||
1. Reload the We.Retail page again | ||
|
||
1. You should now see four requests in the Network tab of the Debugger—two for Target and two for Analytics | ||
|
||
1. Look in the row labeled "Supplemental Data ID." The IDs from the first page load should match between Target and Analytics. The IDs from the second page load should also match, but be different from the first page load. | ||
|
||
 | ||
|
||
If you make additional Target requests in the scope of a page load (not including single-page apps) that are part of A4T activities, it's good to them unique names (not target-global-mbox) so that they will continue to have the same SDIDs of the initial Target and Analytics requests. | ||
|
||
## Customer Attributes | ||
|
||
[Customer Attributes](https://marketing.adobe.com/resources/help/en_US/mcloud/attributes.html) is a part of the People Core Service that allows you to upload data from your customer relationship management (CRM) database and leverage it in Adobe Analytics and Adobe Target. | ||
|
||
The main requirements to implement Customer Attributes—which you have already done—are to: | ||
|
||
1. Implement the Experience Cloud Id Service | ||
1. Set Customer Ids via the Id Service *before* Target and Analytics fire their requests (which you accomplished using the rule ordering feature in Launch) | ||
|
||
### Validate the Customer Attributes Implementation | ||
|
||
You have already validated that the Customer IDs are passed to both the ID Service and to Target. No additional steps necessary! | ||
|
||
[Next "Publish your Property" >](publish.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
--- | ||
title: General Launch Configuration & Settings | ||
description: Learn how to log into the Launch interface and create a Launch property. This lesson is part of the Implementing the Experience Cloud in Websites with Launch tutorial. | ||
seo-description: | ||
seo-title: General Adobe Launch Configuration & Settings | ||
solution: Experience Cloud | ||
--- | ||
|
||
# Add Extensions | ||
|
||
In this lesson, you will add extensions to your Launch property. | ||
|
||
An extension is a packaged set of code that extends the Launch interface and the library functionality. Extensions give you the ability to choose only the parts of the Adobe Experience Platform SDK that you need for your specific app. Since you will be implementing the Adobe solutions (e.g. Target, Analytics, and Audience Manager), you will add the necessary extensions required to support them. | ||
|
||
>[!WARNING] Adding and removing Extensions in mobile Launch properties requires you to update the embed codes in your app. This is different from web Launch properties, in which you can add or remove extensions at any time, without having to update your website. | ||
## Prerequisites | ||
|
||
Your Launch user account needs permission to "Manage Extensions in order to complete this lesson. If you are unable to complete any of these steps because the user interface options are not available to you, reach out to your Experience Cloud Administrator for access. For more information on Launch permissions, see [the documentation](https://docs.adobelaunch.com/administration/user-permissions). | ||
|
||
You will need the following solution details: | ||
|
||
* One Analytics report suite ID. If you don't have a test/dev report suite that you can use for this tutorial, please create one. If you are unsure how to do that, see [the documentation](https://marketing.adobe.com/resources/help/en_US/reference/new_report_suite.html). | ||
|
||
* Your Analytics tracking server. You can retrieve your tracking server from your current implementation, Adobe Consultant or Customer Care representative. | ||
|
||
* Your Target client code. | ||
|
||
## Learning Objectives | ||
|
||
At the end of this lesson, you will be able to: | ||
|
||
* Add Extensions to a mobile Launch property | ||
* Add the Analytics extension | ||
* Add the Target and Target VEC extensions | ||
|
||
>[!NOTE] Adobe Audience Manager is implemented via a configuration in the Analytics extension and thus you will not need to add the Audience Manager extension in this tutorial | ||
## Review the Pre-installed extensions | ||
|
||
1. Click the **[!UICONTROL Extensions]** tab to go to the extensions page | ||
1. Note that the `Mobile Core` and `Profile` are pre-installed in every mobile property | ||
1. Click the **[!UICONTROL Configure]** button for the Core extension to examine its settings | ||
|
||
 | ||
|
||
1. The `Mobile Core` extension represents the core Adobe Experience Platform SDK required for any app implementation. The core contains common set of functionality and frameworks such as a Experience Cloud Identity services, data event hub, rules engine, reusable networking, disk access routines, etc., which is required by all Adobe and third-party extensions. For more information on the Mobile Core extension, see [the documentation](https://aep-sdks.gitbook.io/docs/using-mobile-extensions/mobile-core). | ||
|
||
1. Note that your Experience Cloud Org ID is detected automatically and pre-populated | ||
1. The Experience Cloud Server field allows you to specify a custom endpoint for Visitor ID Service requests. Keep the field blank for this tutorial. | ||
1. The Session Timeout field allows you to specify when new an app session should timeout. By default, if the app is in the background for 300 seconds or more, the Lifecycle session will timeout. Use the default setting for this tutorial. | ||
|
||
1. Since you haven't changed any of the settings, click **[!UICONTROL Cancel]** to leave the extension configuration and **[!UICONTROL Discard Changes]** in the modal | ||
|
||
 | ||
|
||
1. The Profile extension allows the SDK to store data in a client-side profile. It has no configurations, so there is nothing to look at. For more information on the Mobile Core extension, see [the documentation](https://aep-sdks.gitbook.io/docs/using-mobile-extensions/profile). | ||
|
||
## Add the Solution Extensions | ||
|
||
Now it's time to get to the fun part and start adding the extensions for the solutions you will be implementing in this tutorial. When using Launch with mobile applications, the app must be updated every time an extension is added or removed. So, in order to save time later, we will add all of the extensions now. Just skip any extensions which your company has not licensed. | ||
|
||
### Add the Adobe Analytics extension | ||
|
||
>[!NOTE] If you do not have a license for Adobe Analytics, you can skip this section | ||
**To add the extension** | ||
|
||
1. Click on the Catalog tab to see the _uninstalled_ extensions | ||
|
||
1. Find the **[!UICONTROL Adobe Analytics]** extension and click **[!UICONTROL Install]** | ||
|
||
 | ||
|
||
1. Enter your **[!UICONTROL Report Suite ID]** | ||
1. Enter your **[!UICONTROL Analytics Tracking Server]** | ||
1. Check the box for **[!UICONTROL Offline Enabled]** | ||
1. Check the Box for **[!UICONTROL Audience Manager Forwarding]**, even if you have not licensed Audience Manager | ||
1. Check the box to **[!UICONTROL Backdate Previous Session Info]** | ||
1. Click the **[!UICONTROL Save]** button | ||
|
||
 | ||
|
||
### Add The Target extension | ||
|
||
Adobe Target has two official extensions, the Adobe Target extension and the Adobe Target VEC extension. The Adobe Target supports all of the API familiar to users of our earlier mobile SDKs. The Adobe Target VEC extension requires the Adobe Target extension and adds support for Target's Visual Experience Composer, which allows marketers to build simple activities that change image and text elements on the page in a What-You-See-Is-What-You-Get (WYSIWYG) interface. In this tutorial, you will use both. | ||
|
||
>[!NOTE] If you do not have a license for Adobe Target, you can skip this section | ||
**To add the extension** | ||
|
||
1. Click on the Catalog tab to see the _uninstalled_ extensions | ||
|
||
1. Find the **[!UICONTROL Adobe Target]** extension and click **[!UICONTROL Install]** | ||
|
||
 | ||
|
||
1. Enter your **[!UICONTROL Client Code]** | ||
1. Enter `busbookingapp` as the **[!UICONTROL Environment Id]** (this will create a new `host` in Target for the app) | ||
1. Leave the **[!UICONTROL Timeout]** set to 5 seconds | ||
1. Click the **[!UICONTROL Save]** button | ||
|
||
 | ||
|
||
### Add The Target VEC extension | ||
|
||
Now that the Target extension has been added, you can add the Target VEC extension. | ||
|
||
>[!NOTE] If you do not have a license for Adobe Target, you can skip this section | ||
**To add the extension** | ||
|
||
1. Click on the Catalog tab to see the _uninstalled_ extensions | ||
|
||
1. Find the **[!UICONTROL Adobe Target VEC]** extension and click **[!UICONTROL Install]** | ||
|
||
 | ||
|
||
1. Turn on **[!UICONTROL Auto-Fetch Target Campaigns]**. This will pre-fetch all of the Target activities when the app first loads, reducing the number of requests that need to be made. | ||
1. Leave the **[!UICONTROL Fetch In Background]** option off. This setting only appears when `Auto-Fetch Target Campaigns` is used. Leaving this setting off will allow you to run VEC activities on the home screen of the app, but will also add a delay to the app start up to ensure that the Target request has completed or timed out before the home screen displays. We recommend that you leave this setting `off` when you are running activities on the home screen and toggle it `on` when you are not. This setting can be changed at any time in the Launch interface without updating your app. | ||
1. Leave the **[!UICONTROL Target Workspace Property]** blank | ||
1. Click the **[!UICONTROL Save]** button | ||
|
||
 | ||
|
||
That's it! Now that you have added the extensions to your property, you can add them to a library: | ||
|
||
[Next "Create a Library" >](launch-create-a-library.md) |
Oops, something went wrong.