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.List; 026import com.restfb.Facebook; 027import com.restfb.types.AbstractFacebookType; 028import com.restfb.types.features.HasMessage; 029 030/** 031 * Represents the 032 * <a href="https://developers.facebook.com/docs/marketing-api/reference/ad-creative-link-data/">AdCreativeLinkData</a> 033 * Marketing API type 034 */ 035public class AdCreativeLinkData extends AbstractFacebookType implements HasMessage { 036 /** 037 * The index (zero based) of the image from the additionalimages array to use as the ad image for a dynamic product ad 038 */ 039 @Facebook("additional_image_index") 040 private Long additionalImageIndex; 041 /** 042 * Native deeplinks attached to the post 043 */ 044 @Facebook("app_link_spec") 045 private AdCreativeLinkDataAppLinkSpec appLinkSpec; 046 /** 047 * The style of the attachment. 048 */ 049 @Facebook("attachment_style") 050 private String attachmentStyle; 051 /** 052 * The branded content sponsor page id. 053 */ 054 @Facebook("branded_content_sponsor_page_id") 055 private String brandedContentSponsorPageId; 056 /** 057 * The branded content sponsor relationship option. 058 */ 059 @Facebook("branded_content_sponsor_relationship") 060 private String brandedContentSponsorRelationship; 061 /** 062 * An optional call to action button. If not specified, on Instagram, a default CTA would be used, 063 * <code>{"type":"LEARN_MORE","value": {"link":<LINK VALUE OF LINK_DATA>,}}</code>. 064 */ 065 @Facebook("call_to_action") 066 private AdCreativeLinkDataCallToAction callToAction; 067 /** 068 * If canvas experience is enabled post click 069 */ 070 @Facebook("canvas_enabled") 071 private Boolean canvasEnabled; 072 /** 073 * Link caption. Overwrites the caption under the title in the link on Facebook. See post for more info. This setting 074 * is not used on Instagram. 075 */ 076 @Facebook 077 private String caption; 078 /** 079 */ 080 @Facebook("child_attachments") 081 private List<AdCreativeLinkDataChildAttachment> childAttachments; 082 /** 083 * Link description. Overwrites the description in the link on Facebook. See post for more info. This setting is not 084 * used on Instagram. 085 */ 086 @Facebook 087 private String description; 088 /** 089 * The id of a Facebook event. This is only to be used if this creative is for a Website Clicks campaign, the Call To 090 * Action is Buy Tickets, and the link points to the ticketing website of this Facebook event. 091 */ 092 @Facebook("event_id") 093 private String eventId; 094 /** 095 * Whether to force the post to render in a single link format 096 */ 097 @Facebook("force_single_link") 098 private Boolean forceSingleLink; 099 /** 100 * How to the image should be cropped. Different placements use different crop specs. For example, Facebook News Feed 101 * uses the crop spec with 191x100 key, and Instagram uses 100x100 crop spec. 102 */ 103 @Facebook("image_crops") 104 private AdsImageCrops imageCrops; 105 /** 106 * Hash of an image in your image library with Facebook. Specify this field or picture but not both 107 */ 108 @Facebook("image_hash") 109 private String imageHash; 110 /** 111 * Link url. See post for more info. This field is required for a carousel ad . 112 */ 113 @Facebook 114 private String link; 115 /** 116 * The main body of the post. See post for more info. This field is required for a carousel ad . 117 */ 118 @Facebook 119 private String message; 120 /** 121 * If set to false, removes the end card which displays the page icon. Default is true. Used by carousel ads. 122 */ 123 @Facebook("multi_share_end_card") 124 private Boolean multiShareEndCard; 125 /** 126 * If set to true, automatically select and order images and links. Default is true. Used by carousel ads. 127 */ 128 @Facebook("multi_share_optimized") 129 private Boolean multiShareOptimized; 130 /** 131 * Name of the link. Overwrites the title of the link preview. See post for more info. 132 */ 133 @Facebook 134 private String name; 135 /** 136 * The id of a Facebook native offer. 137 */ 138 @Facebook("offer_id") 139 private String offerId; 140 /** 141 * A welcome text from page to user on Messenger once a user performs send message action on an ad. 142 */ 143 @Facebook("page_welcome_message") 144 private String pageWelcomeMessage; 145 /** 146 * URL of a picture to use in the post. Specify this field or image_hash but not both. See post for more info. The 147 * image specified at the URL will be saved into the ad accounts image library 148 */ 149 @Facebook 150 private String picture; 151 @Facebook("post_click_configuration") 152 private AdCreativePostClickConfiguration postClickConfiguration; 153 /** 154 * List of product IDs provided by the advertiser for Collections 155 */ 156 @Facebook("retailer_item_ids") 157 private List<String> retailerItemIds; 158 159 /** 160 * @return The index (zero based) of the image from the additionalimages array to use as the ad image for a dynamic 161 * product ad 162 */ 163 @java.lang.SuppressWarnings("all") 164 public Long getAdditionalImageIndex() { 165 return this.additionalImageIndex; 166 } 167 168 /** 169 * The index (zero based) of the image from the additionalimages array to use as the ad image for a dynamic product ad 170 */ 171 @java.lang.SuppressWarnings("all") 172 public void setAdditionalImageIndex(final Long additionalImageIndex) { 173 this.additionalImageIndex = additionalImageIndex; 174 } 175 176 /** 177 * @return Native deeplinks attached to the post 178 */ 179 @java.lang.SuppressWarnings("all") 180 public AdCreativeLinkDataAppLinkSpec getAppLinkSpec() { 181 return this.appLinkSpec; 182 } 183 184 /** 185 * Native deeplinks attached to the post 186 */ 187 @java.lang.SuppressWarnings("all") 188 public void setAppLinkSpec(final AdCreativeLinkDataAppLinkSpec appLinkSpec) { 189 this.appLinkSpec = appLinkSpec; 190 } 191 192 /** 193 * @return The style of the attachment. 194 */ 195 @java.lang.SuppressWarnings("all") 196 public String getAttachmentStyle() { 197 return this.attachmentStyle; 198 } 199 200 /** 201 * The style of the attachment. 202 */ 203 @java.lang.SuppressWarnings("all") 204 public void setAttachmentStyle(final String attachmentStyle) { 205 this.attachmentStyle = attachmentStyle; 206 } 207 208 /** 209 * @return The branded content sponsor page id. 210 */ 211 @java.lang.SuppressWarnings("all") 212 public String getBrandedContentSponsorPageId() { 213 return this.brandedContentSponsorPageId; 214 } 215 216 /** 217 * The branded content sponsor page id. 218 */ 219 @java.lang.SuppressWarnings("all") 220 public void setBrandedContentSponsorPageId(final String brandedContentSponsorPageId) { 221 this.brandedContentSponsorPageId = brandedContentSponsorPageId; 222 } 223 224 /** 225 * @return The branded content sponsor relationship option. 226 */ 227 @java.lang.SuppressWarnings("all") 228 public String getBrandedContentSponsorRelationship() { 229 return this.brandedContentSponsorRelationship; 230 } 231 232 /** 233 * The branded content sponsor relationship option. 234 */ 235 @java.lang.SuppressWarnings("all") 236 public void setBrandedContentSponsorRelationship(final String brandedContentSponsorRelationship) { 237 this.brandedContentSponsorRelationship = brandedContentSponsorRelationship; 238 } 239 240 /** 241 * @return An optional call to action button 242 */ 243 @java.lang.SuppressWarnings("all") 244 public AdCreativeLinkDataCallToAction getCallToAction() { 245 return this.callToAction; 246 } 247 248 /** 249 * An optional call to action button. If not specified, on Instagram, a default CTA would be used, 250 * <code>{"type":"LEARN_MORE","value": {"link":<LINK VALUE OF LINK_DATA>,}}</code>. 251 */ 252 @java.lang.SuppressWarnings("all") 253 public void setCallToAction(final AdCreativeLinkDataCallToAction callToAction) { 254 this.callToAction = callToAction; 255 } 256 257 /** 258 * @return If canvas experience is enabled post click 259 */ 260 @java.lang.SuppressWarnings("all") 261 public Boolean getCanvasEnabled() { 262 return this.canvasEnabled; 263 } 264 265 /** 266 * If canvas experience is enabled post click 267 */ 268 @java.lang.SuppressWarnings("all") 269 public void setCanvasEnabled(final Boolean canvasEnabled) { 270 this.canvasEnabled = canvasEnabled; 271 } 272 273 /** 274 * @return Link caption. 275 */ 276 @java.lang.SuppressWarnings("all") 277 public String getCaption() { 278 return this.caption; 279 } 280 281 /** 282 * Link caption. Overwrites the caption under the title in the link on Facebook. See post for more info. This setting 283 * is not used on Instagram. 284 */ 285 @java.lang.SuppressWarnings("all") 286 public void setCaption(final String caption) { 287 this.caption = caption; 288 } 289 290 /** 291 */ 292 @java.lang.SuppressWarnings("all") 293 public List<AdCreativeLinkDataChildAttachment> getChildAttachments() { 294 return this.childAttachments; 295 } 296 297 /** 298 */ 299 @java.lang.SuppressWarnings("all") 300 public void setChildAttachments(final List<AdCreativeLinkDataChildAttachment> childAttachments) { 301 this.childAttachments = childAttachments; 302 } 303 304 /** 305 * @return Link description. 306 */ 307 @java.lang.SuppressWarnings("all") 308 public String getDescription() { 309 return this.description; 310 } 311 312 /** 313 * Link description. Overwrites the description in the link on Facebook. See post for more info. This setting is not 314 * used on Instagram. 315 */ 316 @java.lang.SuppressWarnings("all") 317 public void setDescription(final String description) { 318 this.description = description; 319 } 320 321 /** 322 * @return The id of a Facebook event. 323 */ 324 @java.lang.SuppressWarnings("all") 325 public String getEventId() { 326 return this.eventId; 327 } 328 329 /** 330 * The id of a Facebook event. This is only to be used if this creative is for a Website Clicks campaign, the Call To 331 * Action is Buy Tickets, and the link points to the ticketing website of this Facebook event. 332 */ 333 @java.lang.SuppressWarnings("all") 334 public void setEventId(final String eventId) { 335 this.eventId = eventId; 336 } 337 338 /** 339 * @return Whether to force the post to render in a single link format 340 */ 341 @java.lang.SuppressWarnings("all") 342 public Boolean getForceSingleLink() { 343 return this.forceSingleLink; 344 } 345 346 /** 347 * Whether to force the post to render in a single link format 348 */ 349 @java.lang.SuppressWarnings("all") 350 public void setForceSingleLink(final Boolean forceSingleLink) { 351 this.forceSingleLink = forceSingleLink; 352 } 353 354 /** 355 * @return How to the image should be cropped. 356 */ 357 @java.lang.SuppressWarnings("all") 358 public AdsImageCrops getImageCrops() { 359 return this.imageCrops; 360 } 361 362 /** 363 * How to the image should be cropped. Different placements use different crop specs. For example, Facebook News Feed 364 * uses the crop spec with 191x100 key, and Instagram uses 100x100 crop spec. 365 */ 366 @java.lang.SuppressWarnings("all") 367 public void setImageCrops(final AdsImageCrops imageCrops) { 368 this.imageCrops = imageCrops; 369 } 370 371 /** 372 * @return Hash of an image in your image library with Facebook. 373 */ 374 @java.lang.SuppressWarnings("all") 375 public String getImageHash() { 376 return this.imageHash; 377 } 378 379 /** 380 * Hash of an image in your image library with Facebook. Specify this field or picture but not both 381 */ 382 @java.lang.SuppressWarnings("all") 383 public void setImageHash(final String imageHash) { 384 this.imageHash = imageHash; 385 } 386 387 /** 388 * @return Link url 389 */ 390 @java.lang.SuppressWarnings("all") 391 public String getLink() { 392 return this.link; 393 } 394 395 /** 396 * Link url. See post for more info. This field is required for a carousel ad . 397 */ 398 @java.lang.SuppressWarnings("all") 399 public void setLink(final String link) { 400 this.link = link; 401 } 402 403 /** 404 * @return The main body of the post 405 */ 406 @Override 407 @java.lang.SuppressWarnings("all") 408 public String getMessage() { 409 return this.message; 410 } 411 412 /** 413 * The main body of the post. See post for more info. This field is required for a carousel ad . 414 */ 415 @java.lang.SuppressWarnings("all") 416 public void setMessage(final String message) { 417 this.message = message; 418 } 419 420 /** 421 * @return If set to false, removes the end card which displays the page icon. 422 */ 423 @java.lang.SuppressWarnings("all") 424 public Boolean getMultiShareEndCard() { 425 return this.multiShareEndCard; 426 } 427 428 /** 429 * If set to false, removes the end card which displays the page icon. Default is true. Used by carousel ads. 430 */ 431 @java.lang.SuppressWarnings("all") 432 public void setMultiShareEndCard(final Boolean multiShareEndCard) { 433 this.multiShareEndCard = multiShareEndCard; 434 } 435 436 /** 437 * @return If set to true, automatically select and order images and links. 438 */ 439 @java.lang.SuppressWarnings("all") 440 public Boolean getMultiShareOptimized() { 441 return this.multiShareOptimized; 442 } 443 444 /** 445 * If set to true, automatically select and order images and links. Default is true. Used by carousel ads. 446 */ 447 @java.lang.SuppressWarnings("all") 448 public void setMultiShareOptimized(final Boolean multiShareOptimized) { 449 this.multiShareOptimized = multiShareOptimized; 450 } 451 452 /** 453 * @return Name of the link. 454 */ 455 @java.lang.SuppressWarnings("all") 456 public String getName() { 457 return this.name; 458 } 459 460 /** 461 * Name of the link. Overwrites the title of the link preview. See post for more info. 462 */ 463 @java.lang.SuppressWarnings("all") 464 public void setName(final String name) { 465 this.name = name; 466 } 467 468 /** 469 * @return The id of a Facebook native offer. 470 */ 471 @java.lang.SuppressWarnings("all") 472 public String getOfferId() { 473 return this.offerId; 474 } 475 476 /** 477 * The id of a Facebook native offer. 478 */ 479 @java.lang.SuppressWarnings("all") 480 public void setOfferId(final String offerId) { 481 this.offerId = offerId; 482 } 483 484 /** 485 * @return A welcome text from page to user on Messenger once a user performs send message action on an ad. 486 */ 487 @java.lang.SuppressWarnings("all") 488 public String getPageWelcomeMessage() { 489 return this.pageWelcomeMessage; 490 } 491 492 /** 493 * A welcome text from page to user on Messenger once a user performs send message action on an ad. 494 */ 495 @java.lang.SuppressWarnings("all") 496 public void setPageWelcomeMessage(final String pageWelcomeMessage) { 497 this.pageWelcomeMessage = pageWelcomeMessage; 498 } 499 500 /** 501 * @return URL of a picture to use in the post. 502 */ 503 @java.lang.SuppressWarnings("all") 504 public String getPicture() { 505 return this.picture; 506 } 507 508 /** 509 * URL of a picture to use in the post. Specify this field or image_hash but not both. See post for more info. The 510 * image specified at the URL will be saved into the ad accounts image library 511 */ 512 @java.lang.SuppressWarnings("all") 513 public void setPicture(final String picture) { 514 this.picture = picture; 515 } 516 517 @java.lang.SuppressWarnings("all") 518 public AdCreativePostClickConfiguration getPostClickConfiguration() { 519 return this.postClickConfiguration; 520 } 521 522 @java.lang.SuppressWarnings("all") 523 public void setPostClickConfiguration(final AdCreativePostClickConfiguration postClickConfiguration) { 524 this.postClickConfiguration = postClickConfiguration; 525 } 526 527 /** 528 * @return List of product IDs provided by the advertiser for Collections 529 */ 530 @java.lang.SuppressWarnings("all") 531 public List<String> getRetailerItemIds() { 532 return this.retailerItemIds; 533 } 534 535 /** 536 * List of product IDs provided by the advertiser for Collections 537 */ 538 @java.lang.SuppressWarnings("all") 539 public void setRetailerItemIds(final List<String> retailerItemIds) { 540 this.retailerItemIds = retailerItemIds; 541 } 542}