From 197c393acf129aa2a81db5dc3effbe9bd2c5ff9d Mon Sep 17 00:00:00 2001 From: gsing35 Date: Wed, 14 Jan 2026 02:09:59 -0500 Subject: [PATCH] Inital Commit --- .../facebook/ads/sdk/serverside/UserData.java | 64 ++++++++++++--- .../ads/utils/ServerSideApiConstants.java | 2 + .../ads/sdk/serverside/UserDataTest.java | 82 +++++++++++++++++++ 3 files changed, 136 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/facebook/ads/sdk/serverside/UserData.java b/src/main/java/com/facebook/ads/sdk/serverside/UserData.java index c0d861a1..c8dbbb20 100644 --- a/src/main/java/com/facebook/ads/sdk/serverside/UserData.java +++ b/src/main/java/com/facebook/ads/sdk/serverside/UserData.java @@ -17,20 +17,19 @@ */ package com.facebook.ads.sdk.serverside; -import com.facebook.ads.utils.ServerSideApiConstants; -import com.facebook.ads.sdk.serverside.utils.Sha256GenderEnumListAdaptor; -import com.facebook.ads.sdk.serverside.utils.Sha256StringAdaptor; -import com.facebook.ads.sdk.serverside.utils.Sha256StringListAdaptor; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; - import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.Set; -import java.util.stream.Collectors; + +import com.facebook.ads.sdk.serverside.utils.Sha256GenderEnumListAdaptor; +import com.facebook.ads.sdk.serverside.utils.Sha256StringAdaptor; +import com.facebook.ads.sdk.serverside.utils.Sha256StringListAdaptor; +import com.facebook.ads.utils.ServerSideApiConstants; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; /** * UserData is a set of identifiers Facebook can use for targeted attribution. @@ -137,6 +136,9 @@ public class UserData { @SerializedName(ServerSideApiConstants.PAGE_ID) private String pageId = null; + @SerializedName(ServerSideApiConstants.WHATSAPP_BUSINESS_ACCOUNT_ID) + private String whatsappBusinessAccountId = null; + /** * Default Constructor. */ @@ -174,12 +176,13 @@ public UserData() { * @param anonId ID of a person who has installed the app anonymously * @param ctwaClid ID of a conversation that was started on WhatsApp * @param pageId ID of the page that the ad is associated with + * @Param whatsappBusinessAccountId ID of the WhatsApp Business account associated with the User */ public UserData(String email, String phone, GenderEnum gender, String dateOfBirth, String lastName, String firstName, String city, String state, String zipcode, String countryCode, String externalId, String clientIpAddress, String clientUserAgent, String fbc, String fbp, String subscriptionId, String fbLoginId, String leadId, - String f5first, String f5last, String fi, String dobd, String dobm, String doby, String madid, String anonId, String ctwaClid, String pageId) { + String f5first, String f5last, String fi, String dobd, String dobm, String doby, String madid, String anonId, String ctwaClid, String pageId, String whatsappBusinessAccountId) { this.emails = Arrays.asList(email); this.phones = Arrays.asList(phone); this.genders = Arrays.asList(gender); @@ -205,7 +208,9 @@ public UserData(String email, String phone, GenderEnum gender, String dateOfBirt this.dobm = dobm; this.doby = doby; this.madid = madid; - this.anonId = anonId; + this.anonId = anonId; + this.pageId = pageId; + this.whatsappBusinessAccountId = whatsappBusinessAccountId; } /** @@ -1461,6 +1466,37 @@ public void setPageId(String pageId) { this.pageId = pageId; } + /** + * Id of the WhatsApp Business Account assciated with the User + * + * @param whatsappBusinessAccountId + * @returns UserData + */ + public UserData whatsappBusinessAccountId(String whatsappBusinessAccountId) { + setWhatsappBusinessAccountId(whatsappBusinessAccountId); + return this; + } + + /** + * Get the Id of the WhatsApp Business Account assciated with the User + * + * @return whatsappBusinessAccountId + */ + public String getWhatsappBusinessAccountId() { + return this.whatsappBusinessAccountId; + } + + /** + * Set the Id of the WhatsApp Business Account assciated with the User + * + * @param whatsappBusinessAccountId + */ + public void setWhatsappBusinessAccountId(String whatsappBusinessAccountId) { + this.whatsappBusinessAccountId = whatsappBusinessAccountId; + } + + + @Override public boolean equals(Object o) { if (this == o) { @@ -1497,7 +1533,8 @@ public boolean equals(Object o) { && Objects.equals(this.madid, userData.madid) && Objects.equals(this.anonId, userData.anonId) && Objects.equals(this.ctwaClid, userData.ctwaClid) - && Objects.equals(this.pageId, userData.pageId); + && Objects.equals(this.pageId, userData.pageId) + && Objects.equals(this.whatsappBusinessAccountId, userData.whatsappBusinessAccountId); } @Override @@ -1530,7 +1567,9 @@ public int hashCode() { madid, anonId, ctwaClid, - pageId); + pageId, + whatsappBusinessAccountId); + } @Override @@ -1566,6 +1605,7 @@ public String toString() { sb.append(" anonId: ").append(toIndentedString(anonId)).append("\n"); sb.append(" ctwaClid: ").append(toIndentedString(ctwaClid)).append("\n"); sb.append(" pageId: ").append(toIndentedString(pageId)).append("\n"); + sb.append(" whatsappBusinessAccountId: ").append(toIndentedString(whatsappBusinessAccountId)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/com/facebook/ads/utils/ServerSideApiConstants.java b/src/main/java/com/facebook/ads/utils/ServerSideApiConstants.java index bda6bbed..cc1cef0d 100644 --- a/src/main/java/com/facebook/ads/utils/ServerSideApiConstants.java +++ b/src/main/java/com/facebook/ads/utils/ServerSideApiConstants.java @@ -76,4 +76,6 @@ public class ServerSideApiConstants { public static final String CTWA_CLID = "ctwa_clid"; public static final String PAGE_ID = "page_id"; + + public static final String WHATSAPP_BUSINESS_ACCOUNT_ID = "waba_id"; } diff --git a/src/test/java/com/facebook/ads/sdk/serverside/UserDataTest.java b/src/test/java/com/facebook/ads/sdk/serverside/UserDataTest.java index 46e6d5bd..0a15d2f3 100644 --- a/src/test/java/com/facebook/ads/sdk/serverside/UserDataTest.java +++ b/src/test/java/com/facebook/ads/sdk/serverside/UserDataTest.java @@ -196,4 +196,86 @@ public void EqualsAndHashCodeNotSameTest() { assertNotEquals(userData1, userData2); assertNotEquals(userData1.hashCode(), userData2.hashCode()); } + + @Test + public void WhatsAppFieldsTest() { + UserData userData = new UserData(); + userData + .ctwaClid("ctwa-clid-123") + .pageId("page-id-456") + .whatsappBusinessAccountId("whatsapp-biz-account-789"); + + assertEquals(userData.getCtwaClid(), "ctwa-clid-123"); + assertEquals(userData.getPageId(), "page-id-456"); + assertEquals(userData.getWhatsappBusinessAccountId(), "whatsapp-biz-account-789"); + } + + @Test + public void WhatsAppFieldsWithSettersTest() { + UserData userData = new UserData(); + userData.setCtwaClid("ctwa-clid-123"); + userData.setPageId("page-id-456"); + userData.setWhatsappBusinessAccountId("whatsapp-biz-account-789"); + + assertEquals(userData.getCtwaClid(), "ctwa-clid-123"); + assertEquals(userData.getPageId(), "page-id-456"); + assertEquals(userData.getWhatsappBusinessAccountId(), "whatsapp-biz-account-789"); + } + + @Test + public void WhatsAppFieldsEqualsTest() { + UserData userData1 = new UserData(); + userData1 + .ctwaClid("ctwa-clid-123") + .pageId("page-id-456") + .whatsappBusinessAccountId("whatsapp-biz-account-789"); + + UserData userData2 = new UserData(); + userData2 + .ctwaClid("ctwa-clid-123") + .pageId("page-id-456") + .whatsappBusinessAccountId("whatsapp-biz-account-789"); + + assertEquals(userData1, userData2); + assertEquals(userData1.hashCode(), userData2.hashCode()); + } + + @Test + public void WhatsAppFieldsInConstructorTest() { + UserData userData = new UserData( + "email@example.com", + "1234567890", + GenderEnum.MALE, + "20000101", + "lastname", + "firstname", + "city", + "state", + "12345", + "US", + "external-id", + "192.168.1.1", + "Chrome", + "fbc-value", + "fbp-value", + "subscription-id", + "fb-login-id", + "lead-id", + "first5", + "last5", + "f", + "01", + "01", + "2000", + "madid-value", + "anon-id", + "ctwa-clid-123", + "page-id-456", + "whatsapp-biz-account-789" + ); + + assertEquals(userData.getCtwaClid(), "ctwa-clid-123"); + assertEquals(userData.getPageId(), "page-id-456"); + assertEquals(userData.getWhatsappBusinessAccountId(), "whatsapp-biz-account-789"); + } }