Unable to receive an offer when using Node.js SDK | Community
Skip to main content
September 29, 2025
Question

Unable to receive an offer when using Node.js SDK

  • September 29, 2025
  • 1 reply
  • 432 views

Hello, everyone! Would somebody mind helping me with the SDK implementation?

 

I'm trying to integrate Adobe Target from the server but I'm not receiving the experiment when using the Node.js package on a Next.js app...

 

import TargetClient from '@adobe/target-nodejs-sdk'; const CONFIG = { client: '*****', organizationId: '*****@AdobeOrg', events: { clientReady: () => console.log('Adobe Target client is ready.'), }, }; const targetClient = TargetClient.create(CONFIG); export async function getTargetAttributes(mboxNames, cookies) { const targetCookie = cookies[TargetClient.TargetCookieName]; try { const response = await targetClient.getAttributes(mboxNames, { targetCookie }); return { attributes: response.asObject(mboxNames[0]), targetCookie: response.getResponse().targetCookie, }; } catch (error) { console.error('Error fetching Target attributes:', error); return { attributes: {}, targetCookie: null }; } }export const getServerSideProps: GetServerSideProps = async (context) => { const allCookies = context.req.cookies; const mboxNames = ['server-side-mbox']; const { attributes, targetCookie } = await getTargetAttributes(mboxNames, allCookies); console.log({ attributes, targetCookie }); return { props: { offersResponse: attributes ?? null, }, }; };

This is the full response:

{ visitorState: { '*****@AdobeOrg': { sdid: [Object] } }, request: { requestId: 'fe5150c61f1742b69c824d67aea7f16c', id: { tntId: 'b1798ab729674bf69e23704f390d17a2.37_0', thirdPartyId: undefined, marketingCloudVisitorId: undefined, customerIds: undefined }, context: { channel: 'web', mobilePlatform: undefined, application: undefined, screen: undefined, window: undefined, browser: undefined, address: undefined, geo: undefined, timeOffsetInMinutes: undefined, userAgent: undefined, clientHints: undefined, beacon: undefined }, experienceCloud: { audienceManager: undefined, analytics: [Object] }, execute: { pageLoad: undefined, mboxes: [Array] } }, targetCookie: { name: 'mbox', value: 'session#34323609087608251634124214122594614259-NSKwEX#1759165204|PC#b1798ab729674bf69e23704f390d17a2.37_0#1822408144', maxAge: 63244801 }, targetLocationHintCookie: { name: 'mboxEdgeCluster', value: '37', maxAge: 1860 }, meta: { decisioningMethod: 'server-side', remoteMboxes: [], remoteViews: [] }, response: { status: 200, requestId: 'fe5150c61f1742b69c824d67aea7f16c', id: { tntId: 'b1798ab729674bf69e23704f390d17a2.37_0', thirdPartyId: undefined, marketingCloudVisitorId: undefined, customerIds: undefined }, client: '*****', edgeHost: 'mboxedge37.tt.omtrdc.net', execute: { pageLoad: undefined, mboxes: [ { '$type': undefined, index: 1, name: 'server-side-mbox', options: undefined, metrics: undefined, analytics: undefined, trace: undefined } ] }, prefetch: undefined, notifications: undefined, telemetryServerToken: 'cJWuCgDiaU1IgPqDGhBbFCzJjYT5KcJQavNWbBgQ1eQ=' } }

When hitting the API directly, it works. Any idea? Many thanks!

 
 
 
 
 
 

1 reply

Adobe Employee
September 29, 2025

The code looks correct, is the activity live inside target UI? Is the same mbox server-side-mbox used in your activity?

September 29, 2025

Hi, @sarthakbh! Thanks for your support. Yes, the activity is active and the mbox name is also correct... I'm looking at this demo with NextJS https://github.com/adobe/target-nodejs-sdk-samples/blob/master/next-server-side-rendering-demo  and I see they're using some static files and inserting some other scripts, should I do the same? Thanks in advance

<Html> <Head> <script src="static/VisitorAPI.js" /> <script dangerouslySetInnerHTML={{ __html: Target.visitorInit(this.props) }} /> <script dangerouslySetInnerHTML={{ __html: Target.targetInit(this.props) }} /> <script src="static/at.js"></script> </Head> <body> <Main /> <NextScript /> <script src="static/AppMeasurement.js"></script> <script dangerouslySetInnerHTML={{ __html: Target.analyticsBeacon() }} /> </body> </Html>