Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

☕[AT Community Q&A Coffee Break] 7/21/21, 8am PT: David Son, Senior Product Manager for Adobe Target☕

Amelia_Waliany
Employee
Employee

Join us for the next monthly Adobe Target Community Q&A Coffee Break

taking place Wednesday, July 21st, 2021 @ 8am PT

🗓Be sure to MARK YOUR CALENDARS with a link to this thread🗓

We'll be joined by David Sonaka @DavidSonPMSenior Product Manager for Adobe Targetwho will be signed in here to the Adobe Target Community to chat directly with you on this thread about your Adobe Target questions pertaining to his areas of expertise:

  • AEP Web SDK
  • On-device decisioning
  • At.js
  • Mobile
  • Alloy
  • APIs 

🎯REQUIREMENTS TO PARTICIPATE 🎯

  • Must be signed in to the Community during the 1-hour period 
  • Must post a Question about Adobe Target
  • THAT'S IT!  *(think of this as the Adobe Target Community equivalent of an AMA, (“Ask Me Anything”), and bring your best speed-typing game) 

🎯INSTRUCTIONS 🎯

  • Click the blue “Reply” button at the bottom right corner of this post
  • Begin your Question with @DavidSonPM 
  • When exchanging messages with Jim about your specific question, be sure to use the editor’s "QUOTE" button, which will indicate which post you're replying to, and will help contain your conversation with David

🎯**For those who have joined an Adobe Target Community Q&A Coffee Break before: please note that we are no longer using formal registration pages for these events - just be sure to Mark Your Calendars to sign in here to the Community on 7/21/21 @ 8am PT, and hop onto this thread for direct answers to your questions, from David

Screen Shot 2020-04-02 at 4.46.08 PM.png

 

 

 

 

 

 

David Son is a Senior Product Manager for Adobe Target where leads product strategy for mobile, APIs, and SDKs. He holds a B.A in Computer Science from the University of California, Berkeley and is based in San Francisco.

Curious about what an Adobe Target Community Q&A Coffee Break looks like? Be sure to check out our past 2020 Adobe Target Coffee Breaks, covering a WIDE variety of Adobe Target topics, and our latest thread from our 6/9/21 Adobe Target Coffee Break with @Moses Maxen

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

15 Replies
Jamie_Re
Level 1
Level 1

Are there limits on how many Target Activities can send to Analytics? We ran into an issue where our Target Activities were live and displaying the customization but none of the reporting was tracking in Target or in Analytics. I saw the Limits Doc (https://experienceleague.adobe.com/docs/target/using/troubleshoot/target-limits.html) but wasn't able to see how many activities I have in Target. It only says "More than 100"

DavidSonPM
Employee
Employee

Hi Jamie, could you show me exactly where you are seeing the More than 100 limitation for activities? I am not seeing that anywhere on the page. But with that said, I am not aware of any limitations in terms of Target activities for A4T reporting.

J2_2
Level 2
Level 2

When could we potentially see the opportunity to use other statistical methods relating to hypothesis testing in Adobe Target?

DavidSonPM
Employee
Employee

Hi, we don't have any plans to add other statistical methods. Do you have any other ones you would like for us to consider?

DavidSonPM
Employee
Employee

Hello! Good morning, good afternoon, and good evening. Excited for the coffee break this hour and the conversations we will have. Feel free to add questions / comments to kick things off!

shelbygoff
Employee
Employee

Hi @DavidSonPM, this question was posted in the community by @rjb45443778 

 

Is there a way to enable/disable on-device decisionings in the Java server side SDK?

DavidSonPM
Employee
Employee

Yes, there are a couple of ways you can turn on / off on-device decisioning for the Java SDK

1. When you initialize the Java SDK you can set the default decisioningMethod variable for all decisions. You can set it to ON_DEVICE or HYBRID. Setting it to ON_DEVICE will have all requests execute on-device while HYBRID will ask the SDK to make the decision for you whether it may be server-side or on-device depending on the activity that is created.

2. You can override at the getOffers() method to choose which decisioningMethod you want to use request by request.

doris_liu
Level 1
Level 1

Hi David! I have two questions about Adobe Target on Mobile App:

1. If the app is in hybrid-mode, like half native and half web, will this be a challenge for Adobe Target to work smoothly on app?

2. Could you please recommend some client success stories or use cases of Target on mobile apps? We want to prove the value and get buy-ins from the stakeholders to let us put Adobe Target on mobile apps. 

Thank you so much in advance!

 

 

DavidSonPM
Employee
Employee

@doris_liu wrote:

Hi David! I have two questions about Adobe Target on Mobile App:

1. If the app is in hybrid-mode, like half native and half web, will this be a challenge for Adobe Target to work smoothly on app?

2. Could you please recommend some client success stories or use cases of Target on mobile apps? We want to prove the value and get buy-ins from the stakeholders to let us put Adobe Target on mobile apps. 

Thank you so much in advance!

 

 


1. Yes since we have a Mobile SDK for a native app and At.js for web. Another alternative would be to directly integrate with our delivery api which powers all of our SDKs - https://developers.adobetarget.com/api/delivery-api/ 

2. Yes, we do have customers using Target on mobile apps, but I won't be able to share them here. Please reach out to your customer success manager.

shelbygoff
Employee
Employee

Hi @DavidSonPM, this question was posted in the community by @yaboytomc 

 

 

Hi! We have set up an experiment on our server-side using Target Java SDK. We are returning an experience for users, however 2 things are happening:

  1. The experience isn't sticky. If a user logs out and then back in, they will be randomly assigned a new experience. We are currently using our company mboxthirdpartyId to keep this sticky, however not working as it should.
  2. We are not seeing any visitors, visits, impressions and conversions in reporting.

Is there a data point that the reporting dashboard hooks up to specifically in a request/response?

 

We're only logging empty responses, no offer, (to control log volume), but here's an example request/response...please help and thanks! If there's anything here that might tell you that this data will not be sent to Adobe Target, please let me know and thanks!  

 

CLIENT_ID: 000726153
   IP_ADDRESS: 71.233.1.76
   LOGGER_NAME: com.fmr.pwi.hades.api.common.service.AdobeTargetService
   LOG_LEVEL: WARN
   LOG_SESSION_ID: 602ea62b0ad213cf200010b7000eaa33
   LOG_TRACKING_ID: REQ602eac9fd7d6c430859c264d592faa33
   MESSAGE: Invalid Adobe Target response. Ensure the request and experiment are configured correctly. Request: TargetDeliveryRequest{sessionId='602ea62b0ad213cf200010b7000eaa33', locationHint='null', visitor=com.adobe.experiencecloud.ecid.visitor.Visitor@239ac86f, decisioningMethod=null, deliveryRequest=class DeliveryRequest {
    requestId: null
    impressionId: null
    id: class VisitorId {
        tntId: null
        thirdPartyId: (some unique id)
        marketingCloudVisitorId: null
        customerIds: []
    }
    environmentId: null
    property: null
    trace: null
    context: class Context {
        channel: web
        mobilePlatform: null
        application: null
        screen: null
        window: null
        browser: class Browser {
            host: retiretxn.fidelity.com
            language: null
            webGLRenderer: null
        }
        address: class Address {
            url: https://retiretxn.fidelity.com/mybenefits/wellness/app/learn
            referringUrl: null
        }
        geo: null
        timeOffsetInMinutes: 330.0
        userAgent: Fidelity/WI/LearnHub
        beacon: false
    }
    experienceCloud: class ExperienceCloud {
        audienceManager: null
        analytics: class AnalyticsRequest {
            supplementalDataId: 14DFDE42C4C38B32-29E83A95E4DBE708
            logging: server_side
            trackingServer: null
            trackingServerSecure: null
        }
    }
    execute: class ExecuteRequest {
        pageLoad: null
        mboxes: [class MboxRequest {
            class RequestDetails {
                address: class Address {
                    url: https://retiretxn.fidelity.com/mybenefits/wellness/app/learn
                    referringUrl: null
                }
                parameters: {}
                profileParameters: {}
                order: null
                product: null
            }
            index: 0
            name: learn-hub-mbox
        }]
    }
    prefetch: null
    notifications: []
    qaMode: null
}} Response: TargetDeliveryResponse{request=TargetDeliveryRequest{sessionId='602ea62b0ad213cf200010b7000eaa33', locationHint='null', visitor=com.adobe.experiencecloud.ecid.visitor.Visitor@239ac86f, decisioningMethod=null, deliveryRequest=class DeliveryRequest {
    requestId: null
    impressionId: null
    id: class VisitorId {
        tntId: null
        thirdPartyId: (some unique id)
        marketingCloudVisitorId: null
        customerIds: []
    }
    environmentId: null
    property: null
    trace: null
    context: class Context {
        channel: web
        mobilePlatform: null
        application: null
        screen: null
        window: null
        browser: class Browser {
            host: retiretxn.fidelity.com
            language: null
            webGLRenderer: null
        }
        address: class Address {
            url: https://retiretxn.fidelity.com/mybenefits/wellness/app/learn
            referringUrl: null
        }
        geo: null
        timeOffsetInMinutes: 330.0
        userAgent: Fidelity/WI/LearnHub
        beacon: false
    }
    experienceCloud: class ExperienceCloud {
        audienceManager: null
        analytics: class AnalyticsRequest {
            supplementalDataId: 14DFDE42C4C38B32-29E83A95E4DBE708
            logging: server_side
            trackingServer: null
            trackingServerSecure: null
        }
    }
    execute: class ExecuteRequest {
        pageLoad: null
        mboxes: [class MboxRequest {
            class RequestDetails {
                address: class Address {
                    url: https://retiretxn.fidelity.com/mybenefits/wellness/app/learn
                    referringUrl: null
                }
                parameters: {}
                profileParameters: {}
                order: null
                product: null
            }
            index: 0
            name: learn-hub-mbox
        }]
    }
    prefetch: null
    notifications: []
    qaMode: null
}}, response=class DeliveryResponse {
    status: 200
    requestId: beaa26f8-f6ef-4cd9-ab34-29a1170df575
    id: class VisitorId {
        tntId: 602ea62b0ad213cf200010b7000eaa33.34_0
        thirdPartyId: (some unique id)
        marketingCloudVisitorId: null
        customerIds: []
    }
    client: fidelitywi
    edgeHost: mboxedge34.tt.omtrdc.net
    execute: class ExecuteResponse {
        pageLoad: null
        mboxes: [class MboxResponse {
            index: 0
            name: learn-hub-mbox
            options: []
            metrics: []
            analytics: null
            trace: {}
        }]
    }
    prefetch: null
}, status=ResponseStatus{status=200, message='', globalMbox='null', remoteMboxes=null, remoteViews=null}}
   PART_ID: 3563
   PART_MID: (some unique id)
   PART_WID: 518392
   REALM: /mybenefits
   REQUEST_METHOD: GET
   THREAD_ID: tomcat-http--6
   TIMESTAMP: 2021-02-18T13:06:23.689-05:00
   URI: /wellness/api/help-hub
   USER_ID: 3563
   USER_ROLE: SELF
}

 

 

shelbygoff
Employee
Employee

Hi @DavidSonPM this question was posted in the community by @LordOfTheRings 

 

Hi Team,


I have created an A/B activity on Mobile app and have a query regarding the experience delivery


If the app user sees experience A,they close the app and come back ,do they still see experience A or is it possible that target puts them in B?

Amelia_Waliany
Employee
Employee

Hi @DavidSonPM thank you so much for taking the time this morning to answer our questions!

I saw that on-device decisioning was released in at.js recently. Could you talk about the benefits of using on-device decisioning?

DavidSonPM
Employee
Employee

@Amelia_Waliany wrote:

Hi @DavidSonPM thank you so much for taking the time this morning to answer our questions!

I saw that on-device decisioning was released in at.js recently. Could you talk about the benefits of using on-device decisioning?


Yes, on-device decisioning is a new way of decisioning where we download a JSON file with all of your activities and cache it locally on the user's browser. At.js will use the JSON file to make a decision on which experience to show your end user - all on the browser which means that latency is reduced drastically. This ensures that your users are seeing snappy experiences which should help with your business KPIs like conversion, revenue, and retention. 

 

We offer different decisioning methods in at.js now - on-device, server-side, and hybrid

 

1. For on-device the artifact will be downloaded on first visit and then a decision will be made. 

2. For server-side the decision will come from Adobe Target's server every single time.

3. For hybrid, on first visit we use a server call to retrieve the experience but in parallel download the artifact to optimize for return visits. This is the recommended approach and is the most optimal after doing research from our side.

shelbygoff
Employee
Employee

Hi @DavidSonPM this question was posted in the community by @lmckechnie 

 

I am new to Adobe Target and have been trying to follow the Above Target API documentation.  On the surface this looks very straightforward, but I have been unsuccessful when trying to perform any requests from the postman collection on any of our existing activities.  Although I get 200 response status, there is never any content.

It is not clear to me what should go in host, url and in mbox name.  I have tried many combinations with what I think are the obvious answers to these, but obvious has resulted in an incorrect response.

I have chosen an activity which has a at_property in order to understand authentication, but it is quite clear where we put the token value.  Another part of the problem is our activity uses the global mbox and the response for example from the https://*******.tt.omtrdc.net/rest/v1/delivery endpoint is 

{
"status"400,
"message""Errors: field - [execute.mboxes] - global mbox is not allowed in mboxes.;"
}
 
I have read that use of global mboxes has been the norm for several years.  Please could somebody advise where I am going wrong.
Thank you.
DavidSonPM
Employee
Employee

@shelbygoff wrote:

Hi @DavidSonPM this question was posted in the community by @lmckechnie 

 

I am new to Adobe Target and have been trying to follow the Above Target API documentation.  On the surface this looks very straightforward, but I have been unsuccessful when trying to perform any requests from the postman collection on any of our existing activities.  Although I get 200 response status, there is never any content.

It is not clear to me what should go in host, url and in mbox name.  I have tried many combinations with what I think are the obvious answers to these, but obvious has resulted in an incorrect response.

I have chosen an activity which has a at_property in order to understand authentication, but it is quite clear where we put the token value.  Another part of the problem is our activity uses the global mbox and the response for example from the https://*******.tt.omtrdc.net/rest/v1/delivery endpoint is 

{
"status"400,
"message""Errors: field - [execute.mboxes] - global mbox is not allowed in mboxes.;"
}
 
I have read that use of global mboxes has been the norm for several years.  Please could somebody advise where I am going wrong.
Thank you.

Would you be able to show us the full request you are making, so we can understand what might be going wrong. Try not using a global mbox (target-global-mbox) but rather a mbox you created through form-based composer.