001// Generated by delombok at Tue Dec 10 13:42:03 UTC 2024 002/* 003 * Copyright (c) 2010-2024 Mark Allen, Norbert Bartels. 004 * 005 * Permission is hereby granted, free of charge, to any person obtaining a copy 006 * of this software and associated documentation files (the "Software"), to deal 007 * in the Software without restriction, including without limitation the rights 008 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 009 * copies of the Software, and to permit persons to whom the Software is 010 * furnished to do so, subject to the following conditions: 011 * 012 * The above copyright notice and this permission notice shall be included in 013 * all copies or substantial portions of the Software. 014 * 015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 021 * THE SOFTWARE. 022 */ 023package com.restfb.types.ads; 024 025import java.util.ArrayList; 026import java.util.List; 027import com.restfb.Facebook; 028 029/** 030 * Represents the <a href="https://developers.facebook.com/docs/marketing-api/reference/custom-audience">Custom 031 * Audience</a> Marketing API type 032 */ 033public class CustomAudience extends NamedAdsObject { 034 /** 035 * Ad Account ID 036 */ 037 @Facebook("account_id") 038 private String accountId; 039 /** 040 * Approximate number of people in this audience 041 */ 042 @Facebook("approximate_count") 043 private Long approximateCount; 044 /** 045 * JSON dictionary of type, sub_type to indicate by which method the custom audience was created. 046 */ 047 @Facebook("data_source") 048 private CustomAudienceDataSource dataSource; 049 /** 050 * JSON dictionary of code and description. 051 * 052 * Indicates whether or not an audience can be used in ads. There are two situations that an audience will make ads 053 * not deliverable. First, if the size is smaller than 20 people, the audience can't be delivered. Second, if for some 054 * reason the audience is disabled (such as violation of policy, expired), validation will fail when it is used in 055 * ads. 056 */ 057 @Facebook("delivery_status") 058 private CustomAudienceStatus deliveryStatus; 059 /** 060 * Custom audience description 061 */ 062 @Facebook 063 private String description; 064 @Facebook("excluded_custom_audiences") 065 private List<CustomAudience> excludedCustomAudiences = new ArrayList<>(); 066 /** 067 * Read-only JSON dictionary with key id containing the pixel id whose traffic generated this custom audience 068 */ 069 @Facebook("external_event_source") 070 private AdsPixel externalEventSource; 071 @Facebook("included_custom_audiences") 072 private List<CustomAudience> includedCustomAudiences = new ArrayList<>(); 073 /** 074 * last used time of this object by the current viewer 075 */ 076 @Facebook("last_used_time") 077 private String lastUsedTime; 078 /** 079 * The IDs of the lookalike audiences generated from this audience 080 */ 081 @Facebook("lookalike_audience_ids") 082 private List<String> lookalikeAudienceIds = new ArrayList<>(); 083 /** 084 * Generated only when the subtype is LOOKALIKE. 085 */ 086 @Facebook("lookalike_spec") 087 private LookalikeSpec lookalikeSpec; 088 /** 089 * JSON dictionary of code to int value and description to a description string. 090 * 091 * The operation status represents the status of the last operation performed on an audience. In general, it will have 092 * following states: 093 * <ul> 094 * <li>0: Status not available</li> 095 * <li>200: Normal: there is no updating or issues found</li> 096 * <li>400: Warning: there is some message we would like advertisers to know</li> 097 * <li>410: No upload: no file has been uploaded</li> 098 * <li>411: Low match rate: low rate of matched people</li> 099 * <li>412: High invalid rate: high rate of invalid people</li> 100 * <li>421: No pixel: Your Facebook pixel hasn't been installed on your website yet</li> 101 * <li>422: Pixel not firing: Your Facebook pixel isn't firing</li> 102 * <li>423: Invalid pixel: Your Facebook pixel is invalid</li> 103 * <li>431: Lookalike Audience refresh failed</li> 104 * <li>432: Lookalike Audience build failed</li> 105 * <li>433: Lookalike Audience build failed</li> 106 * <li>434: Lookalike Audience build retrying</li> 107 * <li>500: Error: there is some error and advertisers need to take action items to fix the error</li> 108 * </ul> 109 */ 110 @Facebook("operation_status") 111 private CustomAudienceStatus operationStatus; 112 /** 113 * Your opt-out URL so people can choose not to be targeted 114 */ 115 @Facebook("opt_out_link") 116 private String optOutLink; 117 /** 118 * The ID of origin Custom Audience. The origin audience you create must have a minimum size of 100. 119 */ 120 @Facebook("origin_audience_id") 121 private Long originAudienceId; 122 /** 123 * owner business of this object 124 */ 125 @Facebook("owner_business") 126 private Business ownerBusiness; 127 /** 128 * JSON dictionary of permissions (string) to boolean value if the custom audience has that permission 129 */ 130 @Facebook("permission_for_actions") 131 private CustomAudiencePermission permissionForActions; 132 /** 133 * ID of the pixel which is collecting events for this Website Custom audience 134 */ 135 @Facebook("pixel_id") 136 private String pixelId; 137 /** 138 * Number of days to keep the user in this cluster. You can use any value between 1 and 180 days. Defaults to 14 days 139 * if not specified 140 */ 141 @Facebook("retention_days") 142 private Long retentionDays; 143 /** 144 * Audience rules to be applied on the referrer URL 145 */ 146 @Facebook 147 private String rule; 148 /** 149 * Type of custom audience, derived from original data source 150 */ 151 @Facebook 152 private String subtype; 153 /** 154 * Last update of people in this custom audience 155 */ 156 @Facebook("time_content_updated") 157 private Long timeContentUpdated; 158 /** 159 * Creation time 160 */ 161 @Facebook("time_created") 162 private Long timeCreated; 163 /** 164 * Last time this audience metadata was updated 165 */ 166 @Facebook("time_updated") 167 private Long timeUpdated; 168 169 /** 170 * @return Ad Account ID 171 */ 172 @java.lang.SuppressWarnings("all") 173 public String getAccountId() { 174 return this.accountId; 175 } 176 177 /** 178 * Ad Account ID 179 */ 180 @java.lang.SuppressWarnings("all") 181 public void setAccountId(final String accountId) { 182 this.accountId = accountId; 183 } 184 185 /** 186 * @return Approximate number of people in this audience 187 */ 188 @java.lang.SuppressWarnings("all") 189 public Long getApproximateCount() { 190 return this.approximateCount; 191 } 192 193 /** 194 * Approximate number of people in this audience 195 */ 196 @java.lang.SuppressWarnings("all") 197 public void setApproximateCount(final Long approximateCount) { 198 this.approximateCount = approximateCount; 199 } 200 201 /** 202 * @return JSON dictionary of type, sub_type to indicate by which method the custom audience was created. 203 */ 204 @java.lang.SuppressWarnings("all") 205 public CustomAudienceDataSource getDataSource() { 206 return this.dataSource; 207 } 208 209 /** 210 * JSON dictionary of type, sub_type to indicate by which method the custom audience was created. 211 */ 212 @java.lang.SuppressWarnings("all") 213 public void setDataSource(final CustomAudienceDataSource dataSource) { 214 this.dataSource = dataSource; 215 } 216 217 /** 218 * @return dictionary of code and description 219 */ 220 @java.lang.SuppressWarnings("all") 221 public CustomAudienceStatus getDeliveryStatus() { 222 return this.deliveryStatus; 223 } 224 225 /** 226 * JSON dictionary of code and description. 227 * 228 * Indicates whether or not an audience can be used in ads. There are two situations that an audience will make ads 229 * not deliverable. First, if the size is smaller than 20 people, the audience can't be delivered. Second, if for some 230 * reason the audience is disabled (such as violation of policy, expired), validation will fail when it is used in 231 * ads. 232 */ 233 @java.lang.SuppressWarnings("all") 234 public void setDeliveryStatus(final CustomAudienceStatus deliveryStatus) { 235 this.deliveryStatus = deliveryStatus; 236 } 237 238 /** 239 * @return Custom audience description 240 */ 241 @java.lang.SuppressWarnings("all") 242 public String getDescription() { 243 return this.description; 244 } 245 246 /** 247 * Custom audience description 248 */ 249 @java.lang.SuppressWarnings("all") 250 public void setDescription(final String description) { 251 this.description = description; 252 } 253 254 @java.lang.SuppressWarnings("all") 255 public List<CustomAudience> getExcludedCustomAudiences() { 256 return this.excludedCustomAudiences; 257 } 258 259 @java.lang.SuppressWarnings("all") 260 public void setExcludedCustomAudiences(final List<CustomAudience> excludedCustomAudiences) { 261 this.excludedCustomAudiences = excludedCustomAudiences; 262 } 263 264 /** 265 * @return Read-only JSON dictionary with key id containing the pixel id whose traffic generated this custom audience 266 */ 267 @java.lang.SuppressWarnings("all") 268 public AdsPixel getExternalEventSource() { 269 return this.externalEventSource; 270 } 271 272 /** 273 * Read-only JSON dictionary with key id containing the pixel id whose traffic generated this custom audience 274 */ 275 @java.lang.SuppressWarnings("all") 276 public void setExternalEventSource(final AdsPixel externalEventSource) { 277 this.externalEventSource = externalEventSource; 278 } 279 280 @java.lang.SuppressWarnings("all") 281 public List<CustomAudience> getIncludedCustomAudiences() { 282 return this.includedCustomAudiences; 283 } 284 285 @java.lang.SuppressWarnings("all") 286 public void setIncludedCustomAudiences(final List<CustomAudience> includedCustomAudiences) { 287 this.includedCustomAudiences = includedCustomAudiences; 288 } 289 290 /** 291 * @return last used time of this object by the current viewer 292 */ 293 @java.lang.SuppressWarnings("all") 294 public String getLastUsedTime() { 295 return this.lastUsedTime; 296 } 297 298 /** 299 * last used time of this object by the current viewer 300 */ 301 @java.lang.SuppressWarnings("all") 302 public void setLastUsedTime(final String lastUsedTime) { 303 this.lastUsedTime = lastUsedTime; 304 } 305 306 /** 307 * @return The IDs of the lookalike audiences generated from this audience 308 */ 309 @java.lang.SuppressWarnings("all") 310 public List<String> getLookalikeAudienceIds() { 311 return this.lookalikeAudienceIds; 312 } 313 314 /** 315 * The IDs of the lookalike audiences generated from this audience 316 */ 317 @java.lang.SuppressWarnings("all") 318 public void setLookalikeAudienceIds(final List<String> lookalikeAudienceIds) { 319 this.lookalikeAudienceIds = lookalikeAudienceIds; 320 } 321 322 /** 323 * @return Generated only when the subtype is LOOKALIKE. 324 */ 325 @java.lang.SuppressWarnings("all") 326 public LookalikeSpec getLookalikeSpec() { 327 return this.lookalikeSpec; 328 } 329 330 /** 331 * Generated only when the subtype is LOOKALIKE. 332 */ 333 @java.lang.SuppressWarnings("all") 334 public void setLookalikeSpec(final LookalikeSpec lookalikeSpec) { 335 this.lookalikeSpec = lookalikeSpec; 336 } 337 338 /** 339 * @return dictionary of code to int value and description to a description string 340 */ 341 @java.lang.SuppressWarnings("all") 342 public CustomAudienceStatus getOperationStatus() { 343 return this.operationStatus; 344 } 345 346 /** 347 * JSON dictionary of code to int value and description to a description string. 348 * 349 * The operation status represents the status of the last operation performed on an audience. In general, it will have 350 * following states: 351 * <ul> 352 * <li>0: Status not available</li> 353 * <li>200: Normal: there is no updating or issues found</li> 354 * <li>400: Warning: there is some message we would like advertisers to know</li> 355 * <li>410: No upload: no file has been uploaded</li> 356 * <li>411: Low match rate: low rate of matched people</li> 357 * <li>412: High invalid rate: high rate of invalid people</li> 358 * <li>421: No pixel: Your Facebook pixel hasn't been installed on your website yet</li> 359 * <li>422: Pixel not firing: Your Facebook pixel isn't firing</li> 360 * <li>423: Invalid pixel: Your Facebook pixel is invalid</li> 361 * <li>431: Lookalike Audience refresh failed</li> 362 * <li>432: Lookalike Audience build failed</li> 363 * <li>433: Lookalike Audience build failed</li> 364 * <li>434: Lookalike Audience build retrying</li> 365 * <li>500: Error: there is some error and advertisers need to take action items to fix the error</li> 366 * </ul> 367 */ 368 @java.lang.SuppressWarnings("all") 369 public void setOperationStatus(final CustomAudienceStatus operationStatus) { 370 this.operationStatus = operationStatus; 371 } 372 373 /** 374 * @return Your opt-out URL so people can choose not to be targeted 375 */ 376 @java.lang.SuppressWarnings("all") 377 public String getOptOutLink() { 378 return this.optOutLink; 379 } 380 381 /** 382 * Your opt-out URL so people can choose not to be targeted 383 */ 384 @java.lang.SuppressWarnings("all") 385 public void setOptOutLink(final String optOutLink) { 386 this.optOutLink = optOutLink; 387 } 388 389 /** 390 * @return The ID of origin Custom Audience. The origin audience you create must have a minimum size of 100. 391 */ 392 @java.lang.SuppressWarnings("all") 393 public Long getOriginAudienceId() { 394 return this.originAudienceId; 395 } 396 397 /** 398 * The ID of origin Custom Audience. The origin audience you create must have a minimum size of 100. 399 */ 400 @java.lang.SuppressWarnings("all") 401 public void setOriginAudienceId(final Long originAudienceId) { 402 this.originAudienceId = originAudienceId; 403 } 404 405 /** 406 * @return owner business of this object 407 */ 408 @java.lang.SuppressWarnings("all") 409 public Business getOwnerBusiness() { 410 return this.ownerBusiness; 411 } 412 413 /** 414 * owner business of this object 415 */ 416 @java.lang.SuppressWarnings("all") 417 public void setOwnerBusiness(final Business ownerBusiness) { 418 this.ownerBusiness = ownerBusiness; 419 } 420 421 /** 422 * @return JSON dictionary of permissions (string) to boolean value if the custom audience has that permission 423 */ 424 @java.lang.SuppressWarnings("all") 425 public CustomAudiencePermission getPermissionForActions() { 426 return this.permissionForActions; 427 } 428 429 /** 430 * JSON dictionary of permissions (string) to boolean value if the custom audience has that permission 431 */ 432 @java.lang.SuppressWarnings("all") 433 public void setPermissionForActions(final CustomAudiencePermission permissionForActions) { 434 this.permissionForActions = permissionForActions; 435 } 436 437 /** 438 * @return ID of the pixel which is collecting events for this Website Custom audience 439 */ 440 @java.lang.SuppressWarnings("all") 441 public String getPixelId() { 442 return this.pixelId; 443 } 444 445 /** 446 * ID of the pixel which is collecting events for this Website Custom audience 447 */ 448 @java.lang.SuppressWarnings("all") 449 public void setPixelId(final String pixelId) { 450 this.pixelId = pixelId; 451 } 452 453 /** 454 * @return Number of days to keep the user in this cluster. 455 */ 456 @java.lang.SuppressWarnings("all") 457 public Long getRetentionDays() { 458 return this.retentionDays; 459 } 460 461 /** 462 * Number of days to keep the user in this cluster. You can use any value between 1 and 180 days. Defaults to 14 days 463 * if not specified 464 */ 465 @java.lang.SuppressWarnings("all") 466 public void setRetentionDays(final Long retentionDays) { 467 this.retentionDays = retentionDays; 468 } 469 470 /** 471 * @return Audience rules to be applied on the referrer URL 472 */ 473 @java.lang.SuppressWarnings("all") 474 public String getRule() { 475 return this.rule; 476 } 477 478 /** 479 * Audience rules to be applied on the referrer URL 480 */ 481 @java.lang.SuppressWarnings("all") 482 public void setRule(final String rule) { 483 this.rule = rule; 484 } 485 486 /** 487 * @return Type of custom audience, derived from original data source 488 */ 489 @java.lang.SuppressWarnings("all") 490 public String getSubtype() { 491 return this.subtype; 492 } 493 494 /** 495 * Type of custom audience, derived from original data source 496 */ 497 @java.lang.SuppressWarnings("all") 498 public void setSubtype(final String subtype) { 499 this.subtype = subtype; 500 } 501 502 /** 503 * @return Last update of people in this custom audience 504 */ 505 @java.lang.SuppressWarnings("all") 506 public Long getTimeContentUpdated() { 507 return this.timeContentUpdated; 508 } 509 510 /** 511 * Last update of people in this custom audience 512 */ 513 @java.lang.SuppressWarnings("all") 514 public void setTimeContentUpdated(final Long timeContentUpdated) { 515 this.timeContentUpdated = timeContentUpdated; 516 } 517 518 /** 519 * @return Creation time 520 */ 521 @java.lang.SuppressWarnings("all") 522 public Long getTimeCreated() { 523 return this.timeCreated; 524 } 525 526 /** 527 * Creation time 528 */ 529 @java.lang.SuppressWarnings("all") 530 public void setTimeCreated(final Long timeCreated) { 531 this.timeCreated = timeCreated; 532 } 533 534 /** 535 * @return Last time this audience metadata was updated 536 */ 537 @java.lang.SuppressWarnings("all") 538 public Long getTimeUpdated() { 539 return this.timeUpdated; 540 } 541 542 /** 543 * Last time this audience metadata was updated 544 */ 545 @java.lang.SuppressWarnings("all") 546 public void setTimeUpdated(final Long timeUpdated) { 547 this.timeUpdated = timeUpdated; 548 } 549}