How to Post Audience into Facebook using Paid Media Manager

I am trying to post an Facebook Ad using Paid Media Manager.

  1. I have created a Facebook manager account and Ad page.

  2. I have updated the channel with destination key in PegaV8.4.1

  3. I have scheduled NBA designer and checked the Dataset with final offers.

Can anyone help me in understanding how the syncing happen between Pega and Facebook in updating the audience.

Hi,

The following are steps involved in paid integration

  1. Configure paid destination with valid access token
  1. Enable Paid in Actions from Treatments tab

  2. Enable paid in NBA Designer

Then make sure Agents are enabled as per below article

Once the outbound is triggered you should be able to monitor the paid media sync jobs from App Studio->Settings->Channels->Paid media->Sync tracking

Paid media run gets triggered on successful completion of program run.

Could you please verify the above steps?

Thanks & Regards,

Matta

To add to the above details, you can also view the audiences that are successfully created in Facebook from App Studio → Audiences → Paid Media landing page.

Thank you Chans5 for your response. There are no audience created in this landing page. Could you please share the steps to debug this. I have viewed the code, not sure where exactly this audience rule is getting created.

PFA of my Paid Audience landing page.

Thanks in advance.

Thanks Mann1 for your reponse.

I have followed Step-1, 3 and enabled all the agents. I am unable to complete step-2, PFA of screenshot. Could you please share the steps for enabling Paid in treatments tab.

Also I have observed, all my Paid media sync job failed because of below error.

Queue Processor Failed with following error

<?xml version="1.0"?> 1 false 58a9b850-1db4-4c94-b3dc-3d1b08247e13 System-Queue-PaidMediaSync 20200922T063746.877 GMT PegaNBAM:Agents SYSTEM-QUEUE-PAIDMEDIASYNC PM-5DKF4C2751D-2 20200922T063746.877 GMT 0 58A9B850-1DB4-4C94-B3DC-3D1B08247E13 20200922T063746.878 GMT NONE September 23, 2020 1:25:21 AM UTC _pa991918772292194pz SYSTEM-MESSAGE-QUEUEPROCESSOR-BROKENITEM 58A9B850-1DB4-4C94-B3DC-3D1B08247E13 0 D_GetPaidMediaBrokenItem PaidMediaSync 0 System-Message-QueueProcessor-BrokenItem shared 11 dataflow-i-0201dcdac7f17c0f8 true valid Embed-DataSource GetBrokenPaidMediaItem 1 Activity System-Message-QueueProcessor-BrokenItem Embed-QueueErrorDetails util-i-0b73b0db287d1b650 com.pega.pegarules.pub.PRRuntimeException: Error while processing AudienceSyncRequest Audience Sync Exception at com.pegarules.generated.activity.ra_action_processpaidmediasync_7bd662e768b30486ca98c8d001d7765e.step21_circum0(ra_action_processpaidmediasync_7bd662e768b30486ca98c8d001d7765e.java:1810) at com.pegarules.generated.activity.ra_action_processpaidmediasync_7bd662e768b30486ca98c8d001d7765e.perform(ra_action_processpaidmediasync_7bd662e768b30486ca98c8d001d7765e.java:466) at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:2793) at com.pega.dsm.dnode.impl.dataflow.asyncexecutor.QueueProcessorExecutor.runUserActivity(QueueProcessorExecutor.java:233) at com.pega.dsm.dnode.impl.dataflow.asyncexecutor.QueueProcessorExecutor.execute(QueueProcessorExecutor.java:97) at com.pega.dsm.dnode.impl.dataflow.asyncexecutor.QueueProcessorOnlyOnceExecutionStrategy.run(QueueProcessorOnlyOnceExecutionStrategy.java:103) at com.pega.dsm.dnode.impl.dataflow.asyncexecutor.IQueueProcessorExecutionStrategy.execute(IQueueProcessorExecutionStrategy.java:27) at com.pega.dsm.dnode.impl.dataflow.asyncexecutor.QueueProcessorDataFlowFactory$1$1.onNext(QueueProcessorDataFlowFactory.java:86) at com.pega.dsm.dnode.impl.dataflow.asyncexecutor.QueueProcessorDataFlowFactory$1$1.onNext(QueueProcessorDataFlowFactory.java:77) at com.pega.dsm.dnode.api.dataflow.DataFlowStage$StageInputSubscriber.onNext(DataFlowStage.java:449) at com.pega.dsm.dnode.api.dataflow.DataFlowStage$StageInputSubscriber.onNext(DataFlowStage.java:382) at com.pega.dsm.dnode.api.dataflow.DataFlowExecutor$QueueBasedDataFlowExecutor$2.process(DataFlowExecutor.java:325) at com.pega.dsm.dnode.api.dataflow.DataFlowExecutor$QueueBasedDataFlowExecutor.runEventLoop(DataFlowExecutor.java:216) at com.pega.dsm.dnode.api.dataflow.DataFlow$2.emit(DataFlow.java:325) at com.pega.dsm.dnode.impl.stream.DataObservableImpl.subscribe(DataObservableImpl.java:59) at com.pega.dsm.dnode.impl.dataflow.task.strategy.ExecutionStrategy.executeDataFlow(ExecutionStrategy.java:124) at com.pega.dsm.dnode.impl.dataflow.task.strategy.MultiplePartitionExecution.executePartitions(MultiplePartitionExecution.java:87) at com.pega.dsm.dnode.impl.dataflow.service.run.ExecutePartitionsRunnable$1.run(ExecutePartitionsRunnable.java:64) at com.pega.dsm.dnode.impl.dataflow.service.run.ExecutePartitionsRunnable$1.run(ExecutePartitionsRunnable.java:56) at com.pega.dsm.dnode.util.PrpcRunnable.execute(PrpcRunnable.java:67) at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeInPrpcContextInternal(ServiceHelper.java:301) at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeInPrpcContext(ServiceHelper.java:146) at com.pega.dsm.dnode.impl.dataflow.service.run.ExecutePartitionsRunnable.call(ExecutePartitionsRunnable.java:56) at com.pega.dsm.dnode.impl.dataflow.service.run.ExecutePartitionsRunnable.call(ExecutePartitionsRunnable.java:33) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:108) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:41) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at com.pega.dsm.dnode.util.PrpcRunnable$1.run(PrpcRunnable.java:59) at com.pega.dsm.dnode.util.PrpcRunnable$1.run(PrpcRunnable.java:56) at com.pega.dsm.dnode.util.PrpcRunnable.execute(PrpcRunnable.java:67) at com.pega.dsm.dnode.impl.prpc.PrpcThreadFactory$PrpcThread.run(PrpcThreadFactory.java:124) Caused by: com.pega.mkt.paidmedia.sync.AudienceSyncException@63e55dd0[paidMediaErrors=[com.pega.mkt.paidmedia.error.PaidMediaError@49ef11fc[paidRunId=PM-5,dataFlowRunId=N/A,code=2635,message=(#2635) You are calling a deprecated version of the Ads API. Please update to the latest version: v8.0.,severity=CRITICAL,occurredOn=Tue Sep 22 06:37:46 UTC 2020,platform=Facebook,destination=331943724731869,syncType=OUTBOUND]]] at com.pega.mkt.paidmedia.facebook.FacebookErrorUtilities.buildAudienceSyncException(FacebookErrorUtilities.java:148) at com.pega.mkt.paidmedia.sync.facebook.FacebookAudienceSyncService.createAudiences(FacebookAudienceSyncService.java:461) at com.pega.mkt.paidmedia.sync.facebook.FacebookAudienceSyncService.createAudiencesWithLock(FacebookAudienceSyncService.java:170) at com.pega.mkt.paidmedia.sync.facebook.FacebookAudienceSyncService.processAudienceSyncRequest(FacebookAudienceSyncService.java:218) at com.pega.mkt.paidmedia.sync.facebook.FacebookAudienceSyncService.startSync(FacebookAudienceSyncService.java:89) at com.pegarules.generated.activity.ra_action_processpaidmediasync_7bd662e768b30486ca98c8d001d7765e.step6_circum0(ra_action_processpaidmediasync_7bd662e768b30486ca98c8d001d7765e.java:893) at com.pegarules.generated.activity.ra_action_processpaidmediasync_7bd662e768b30486ca98c8d001d7765e.perform(ra_action_processpaidmediasync_7bd662e768b30486ca98c8d001d7765e.java:180) ... 31 more 20200922T063746.877 GMT Error while processing AudienceSyncRequest Audience Sync Exception [PM-NBADTests:01-01|PM-Artifacts:01-01|PM-Rules:01-01|PM:01-01|PMInt:01-01|CBA:01-01|CBAInt:01-01|PegaMarketing_FW-HealthCheck:08-04|PegaMKT-Configuration:08-04|PegaMKT-Install:08-04|PegaMKT-MarketingProfile:08-04|PegaMKT-Portal:08-04|PegaMKT-Desktop:08-04|PegaMKT-RevisionManagement:08-04|PegaMKT-Engine:08-04|PegaMKT-Integration:08-04|PegaMKT-MailUtilities:08-04|PegaMKT-Passbook:08-04|PegaMKT-PushNotification:08-04|PegaMKT-Security:08-04|PegaMKT-Cloud:08-04|PegaFW-DashboardCharts:01-01|Pega-IAC:08-04|UI-Kit-7:15-01-01|Pega-DecisionManager:08-04|PegaFW-NPS:08-01|PDCClient:01-01|Pega-ProcessCommander:08-04|Pega-DeploymentDefaults:08-04|Pega-DecisionScience:08-04|Pega-DecisionArchitect:08-04|Pega-LP-Mobile:08-04|Pega-LP-ProcessAndRules:08-04|Pega-LP-Integration:08-04|Pega-LP-Reports:08-04|Pega-LP-SystemSettings:08-04|Pega-LP-UserInterface:08-04|Pega-LP-OrgAndSecurity:08-04|Pega-LP-DataModel:08-04|Pega-LP-Application:08-04|Pega-LP:08-04|Pega-SystemOperations:08-04|Pega-UpdateManager:08-04|Pega-SecurityVA:08-04|Pega-Feedback:08-04|Pega-HealthCheck:08-04|Pega-AutoTest:08-04|Pega-AppDefinition:08-04|Pega-ImportExport:08-04|Pega-LocalizationTools:08-04|Pega-RuleRefactoring:08-04|Pega-ProcessArchitect:08-04|Pega-Portlet:08-04|Pega-Content:08-04|Pega-BigData:08-04|Pega-NLP:08-04|Pega-DecisionEngine:08-04|Pega-IntegrationArchitect:08-04|Pega-SystemArchitect:08-04|Pega-Desktop:08-04|Pega-EndUserUI:08-04|Pega-Survey:08-04|Pega-Social:08-04|Pega-SharedData:08-04|Pega-API:08-04|Pega-EventProcessing:08-04|Pega-Reporting:08-04|Pega-UIDesign:08-04|Pega-Gadgets:08-04|Pega-UIComponents:08-04|Pega-UIEngine:08-04|Pega-ProcessEngine:08-04|Pega-SearchEngine:08-04|Pega-IntegrationEngine:08-04|Pega-RulesEngine:08-04|Pega-Engine:08-04|PegaLegacyRules:01-01|Pega-ProCom:08-04|Pega-IntSvcs:08-04|Pega-WB:08-04|Pega-RULES:08-04|] [PegaRULES:Batch, PegaRULES:SysAdm4, PegaNBAM_FW:Batch] PegaNBAM:Agents DKf4c2751d PM-5 System-Queue-PaidMediaSync DKf4c2751d OUTBOUND SYSTEM-QUEUE-PAIDMEDIASYNC PM-5DKF4C2751D-2 PM-5 PM-5DKf4c2751d-2

Based on the error captured. It is saying to upgrade the Ads API to v8.

com.pega.mkt.paidmedia.sync.AudienceSyncException@6e30f047[paidMediaErrors=[com.pega.mkt.paidmedia.error.PaidMediaError@14fe1dfa[paidRunId=PM-1,dataFlowRunId=N/A,code=2635,message=(#2635) You are calling a deprecated version of the Ads API. Please update to the latest version: v8.0.,severity=CRITICAL,occurredOn=Fri Sep 18 06:45:22 UTC.

I have checked this in my Facebook developer account. It is currently V8. PFA of screenshot of this. Please let me know, if you need any other configuration screenshot.

Is this application newly created? Do you have an option to change the version to V7? We have a hot fix(HFix-63751) to support upgrading to V7 as it is available until 2022. We will be raising the support request to FB to get it clarified on why are we not able to create application with V7.

Thanks & Regards,

Matta

Sorry for the confusion. The question was on version of Facebook Ad application.

Thanks for your Response Matta.

Yes @MANNM1 , Pega Engineer is helping me in identifying this issue. Will share the root cause and solution here, it may be useful for others who are trying PMM.

Thanks for your response.

This is a POC, I am doing in 8.4.1 Pega Cloud Env. New application created on top of Marketing to enable NBA designer and Paid Media Manager.

Thanks for the clarification Matta,

We dont have an option to change the Facebook Ad API version to 7, by default it got created to v8. Can we downgrade to v7?

Yes it’s similar issue which occured when Facebook deprecated previous Marketing API and enforced upgrading to new version. The solution is pega to provide a hot fix to support latest marketing API version. Please find the change log of Facebook @ https://developers.facebook.com/docs/graph-api/changelog/

In the past, it was not mandatory that one should upgrade immediately to new version. Until the previous version is available we should be able to create applications with older version. In your case we should be able to create Facebook App with V7 for which we already provided a hot fix as I mentioned in previous response.

The issue here, we are not able to create app with V7 even though it is not deprecated yet. We have raised a ticket with Facebook to confirm on this. If Facebook confirms it’s strategical change then we will go ahead and provide hotfix to support V8.

https://developers.facebook.com/community/threads/829113874574453/?post_id=829113881241119

I hope that clarifies your question.

Thanks & Regards,

Matta

Thanks for the clarification Matta, This clears most of my questions.

I would also like to check some other configuration settings from API Side before making the request from Pega.

  1. Do we need to change the App mode to “Live Status” from “In Development” in Facebook API?

  2. Do we need to add any server IP address allow list in the App to get the Pega API calls passed?

  3. Do we need to get “Ads Management Standard Access” for the App? To get this permission, we need to submit a request to Facebook with all the business use case.

  1. Once you get the standard access for production usage we should make the app live

  2. No, we do not use oAuth for Facebook. So not required for Facebook

  3. Pre-requisite for 1. For production usage we should go for app approval process which provides the standard access. Once you get standard access you can make your app live

Please refer https://community.pega.com/knowledgebase/articles/pega-marketing/submitting-facebook-app-review for app approval process.

Thanks & Regards,

Matta

Hi Matta,

Even I have the same issue with configuring Paid Media Channel in Pega 8.4. Could you please advise once the HotFix for Facebook API v8 is available.

Thanks,

Prerna

Hi Matta,

I found similar issue being faced in Pega 7.4. They had a hotfix for this. Can I relate the same in my case.

Please advise.

We have HFix-67007 (DL-119681) to support Facebook API v8 for Pega Marketing/Pega 8.4 now. Please reach out to Pega support.

Thanks & Regards,

Matta

No, it won’t override, the patch date will vary for classes in latest jar. Class loader takes care of picking the correct version. I hope you are discussing on this in the support request.

Thanks & Regards,

Matta

@NAVAKANTHM

Can you please send your contact ,as I have facing the same issue

Hi Matta,

I have installed this hotfix. But still I am getting the same error. I have checked whether all the libraries have been successfully installed. Do you want me to removed old classes (v7/v6) with same ? Ideally these new classes should override the old one.

Could you please advise on this.