001// Generated by delombok at Thu Aug 13 13:56:43 UTC 2026
002/*
003 * Copyright (c) 2010-2026 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.Collections;
027import java.util.List;
028import com.restfb.Facebook;
029
030/**
031 */
032public class AdKeywordStats extends NamedAdsObject {
033  private static final long serialVersionUID = 1L;
034  /**
035   * The number of times your ad was served. On our mobile apps an ad is counted as served the first time it's viewed.
036   * On all other Facebook interfaces, an ad is served the first time it's placed in a person's News Feed or each time
037   * it's placed in the right column.
038   */
039  @Facebook
040  private Integer impressions;
041  /**
042   * The number of people your ad was served to.
043   */
044  @Facebook("unique_impressions")
045  private Integer uniqueImpressions;
046  /**
047   * The number of people your ad was served to.
048   */
049  @Facebook
050  private Integer reach;
051  /**
052   * The total number of clicks on your ad. Depending on what you're promoting, this can include Page likes, event
053   * responses or app installs.
054   */
055  @Facebook
056  private Integer clicks;
057  /**
058   * The total number of unique people who have clicked on your ad. For example, if 3 people click on the same ad 5
059   * times, it will count as 3 unique clicks.
060   */
061  @Facebook("unique_clicks")
062  private Integer uniqueClicks;
063  /**
064   * The number of actions taken on your ad, Page, app or event after your ad was served to someone, even if they didn't
065   * click on it. Actions include Page likes, app installs, conversions, event responses and more. For example, 2 Page
066   * likes and 2 comments would be counted as 4 actions.
067   */
068  @Facebook("total_actions")
069  private Integer totalActions;
070  /**
071   * The number of unique people who took an action such as liking your Page or installing your app as a result of your
072   * ad. For example, if the same person likes and comments on a post, they will be counted as 1 unique person.
073   */
074  @Facebook("total_unique_actions")
075  private Integer totalUniqueActions;
076  /**
077   * The number of actions taken on your ad, Page, app or event after your ad was served to someone, even if they didn't
078   * click on it. Actions include Page likes, app installs, conversions, event responses and more. For example, 2 Page
079   * likes and 2 comments would be counted as 4 actions.
080   */
081  @Facebook
082  private List<AdsActionStats> actions = new ArrayList<>();
083
084  public List<AdsActionStats> getActions() {
085    return Collections.unmodifiableList(actions);
086  }
087
088  public boolean addAction(AdsActionStats action) {
089    return actions.add(action);
090  }
091
092  public boolean removeAction(AdsActionStats action) {
093    return actions.remove(action);
094  }
095
096  /**
097   * The number of unique people who took an action such as liking your Page or installing your app as a result of your
098   * ad. For example, if the same person likes and comments on a post, they will be counted as 1 unique person.
099   */
100  @Facebook("unique_actions")
101  private List<AdsActionStats> uniqueActions = new ArrayList<>();
102
103  public List<AdsActionStats> getUniqueActions() {
104    return Collections.unmodifiableList(uniqueActions);
105  }
106
107  public boolean addUniqueAction(AdsActionStats uniqueAction) {
108    return uniqueActions.add(uniqueAction);
109  }
110
111  public boolean removeUniqueAction(AdsActionStats uniqueAction) {
112    return uniqueActions.remove(uniqueAction);
113  }
114
115  /**
116   * The total amount you've spent so far.
117   */
118  @Facebook
119  private Double spend;
120  /**
121   * The number of clicks you received divided by the number of impressions.
122   */
123  @Facebook
124  private Double ctr;
125  /**
126   * The number of people who clicked on your ad divided by the number of people you reached. For example, if you
127   * received 20 unique clicks and your ad was served to 1,000 unique people, your unique click-through rate would be
128   * 2%.
129   */
130  @Facebook("unique_ctr")
131  private Double uniqueCtr;
132  /**
133   * The average cost you've paid to have 1,000 impressions on your ad.
134   */
135  @Facebook
136  private Double cpm;
137  /**
138   * The average cost you've paid to have your ad served to 1,000 unique people.
139   */
140  @Facebook
141  private Double cpp;
142  /**
143   * The average cost per click for these ads, calculated as the amount spent divided by the number of clicks received.
144   */
145  @Facebook
146  private Double cpc;
147  /**
148   * The average you've spent on actions. For example, if you spent $20 and you got 10 Page likes, each one cost an
149   * average of $2.
150   */
151  @Facebook("cost_per_total_action")
152  private Double costPerTotalAction;
153  /**
154   * The average cost per unique click for these ads, calculated as the amount spent divided by the number of unique
155   * clicks received.
156   */
157  @Facebook("cost_per_unique_click")
158  private Double costPerUniqueClick;
159  /**
160   * The average number of times your ad was served to each person.
161   */
162  @Facebook
163  private Double frequency;
164
165  /**
166   * The number of times your ad was served. On our mobile apps an ad is counted as served the first time it's viewed.
167   * On all other Facebook interfaces, an ad is served the first time it's placed in a person's News Feed or each time
168   * it's placed in the right column.
169   */
170  @java.lang.SuppressWarnings("all")
171  @lombok.Generated
172  public Integer getImpressions() {
173    return this.impressions;
174  }
175
176  /**
177   * The number of times your ad was served. On our mobile apps an ad is counted as served the first time it's viewed.
178   * On all other Facebook interfaces, an ad is served the first time it's placed in a person's News Feed or each time
179   * it's placed in the right column.
180   */
181  @java.lang.SuppressWarnings("all")
182  @lombok.Generated
183  public void setImpressions(final Integer impressions) {
184    this.impressions = impressions;
185  }
186
187  /**
188   * The number of people your ad was served to.
189   */
190  @java.lang.SuppressWarnings("all")
191  @lombok.Generated
192  public Integer getUniqueImpressions() {
193    return this.uniqueImpressions;
194  }
195
196  /**
197   * The number of people your ad was served to.
198   */
199  @java.lang.SuppressWarnings("all")
200  @lombok.Generated
201  public void setUniqueImpressions(final Integer uniqueImpressions) {
202    this.uniqueImpressions = uniqueImpressions;
203  }
204
205  /**
206   * The number of people your ad was served to.
207   */
208  @java.lang.SuppressWarnings("all")
209  @lombok.Generated
210  public Integer getReach() {
211    return this.reach;
212  }
213
214  /**
215   * The number of people your ad was served to.
216   */
217  @java.lang.SuppressWarnings("all")
218  @lombok.Generated
219  public void setReach(final Integer reach) {
220    this.reach = reach;
221  }
222
223  /**
224   * The total number of clicks on your ad. Depending on what you're promoting, this can include Page likes, event
225   * responses or app installs.
226   */
227  @java.lang.SuppressWarnings("all")
228  @lombok.Generated
229  public Integer getClicks() {
230    return this.clicks;
231  }
232
233  /**
234   * The total number of clicks on your ad. Depending on what you're promoting, this can include Page likes, event
235   * responses or app installs.
236   */
237  @java.lang.SuppressWarnings("all")
238  @lombok.Generated
239  public void setClicks(final Integer clicks) {
240    this.clicks = clicks;
241  }
242
243  /**
244   * The total number of unique people who have clicked on your ad. For example, if 3 people click on the same ad 5
245   * times, it will count as 3 unique clicks.
246   */
247  @java.lang.SuppressWarnings("all")
248  @lombok.Generated
249  public Integer getUniqueClicks() {
250    return this.uniqueClicks;
251  }
252
253  /**
254   * The total number of unique people who have clicked on your ad. For example, if 3 people click on the same ad 5
255   * times, it will count as 3 unique clicks.
256   */
257  @java.lang.SuppressWarnings("all")
258  @lombok.Generated
259  public void setUniqueClicks(final Integer uniqueClicks) {
260    this.uniqueClicks = uniqueClicks;
261  }
262
263  /**
264   * The number of actions taken on your ad, Page, app or event after your ad was served to someone, even if they didn't
265   * click on it. Actions include Page likes, app installs, conversions, event responses and more. For example, 2 Page
266   * likes and 2 comments would be counted as 4 actions.
267   */
268  @java.lang.SuppressWarnings("all")
269  @lombok.Generated
270  public Integer getTotalActions() {
271    return this.totalActions;
272  }
273
274  /**
275   * The number of actions taken on your ad, Page, app or event after your ad was served to someone, even if they didn't
276   * click on it. Actions include Page likes, app installs, conversions, event responses and more. For example, 2 Page
277   * likes and 2 comments would be counted as 4 actions.
278   */
279  @java.lang.SuppressWarnings("all")
280  @lombok.Generated
281  public void setTotalActions(final Integer totalActions) {
282    this.totalActions = totalActions;
283  }
284
285  /**
286   * The number of unique people who took an action such as liking your Page or installing your app as a result of your
287   * ad. For example, if the same person likes and comments on a post, they will be counted as 1 unique person.
288   */
289  @java.lang.SuppressWarnings("all")
290  @lombok.Generated
291  public Integer getTotalUniqueActions() {
292    return this.totalUniqueActions;
293  }
294
295  /**
296   * The number of unique people who took an action such as liking your Page or installing your app as a result of your
297   * ad. For example, if the same person likes and comments on a post, they will be counted as 1 unique person.
298   */
299  @java.lang.SuppressWarnings("all")
300  @lombok.Generated
301  public void setTotalUniqueActions(final Integer totalUniqueActions) {
302    this.totalUniqueActions = totalUniqueActions;
303  }
304
305  /**
306   * The total amount you've spent so far.
307   */
308  @java.lang.SuppressWarnings("all")
309  @lombok.Generated
310  public Double getSpend() {
311    return this.spend;
312  }
313
314  /**
315   * The total amount you've spent so far.
316   */
317  @java.lang.SuppressWarnings("all")
318  @lombok.Generated
319  public void setSpend(final Double spend) {
320    this.spend = spend;
321  }
322
323  /**
324   * The number of clicks you received divided by the number of impressions.
325   */
326  @java.lang.SuppressWarnings("all")
327  @lombok.Generated
328  public Double getCtr() {
329    return this.ctr;
330  }
331
332  /**
333   * The number of clicks you received divided by the number of impressions.
334   */
335  @java.lang.SuppressWarnings("all")
336  @lombok.Generated
337  public void setCtr(final Double ctr) {
338    this.ctr = ctr;
339  }
340
341  /**
342   * The number of people who clicked on your ad divided by the number of people you reached. For example, if you
343   * received 20 unique clicks and your ad was served to 1,000 unique people, your unique click-through rate would be
344   * 2%.
345   */
346  @java.lang.SuppressWarnings("all")
347  @lombok.Generated
348  public Double getUniqueCtr() {
349    return this.uniqueCtr;
350  }
351
352  /**
353   * The number of people who clicked on your ad divided by the number of people you reached. For example, if you
354   * received 20 unique clicks and your ad was served to 1,000 unique people, your unique click-through rate would be
355   * 2%.
356   */
357  @java.lang.SuppressWarnings("all")
358  @lombok.Generated
359  public void setUniqueCtr(final Double uniqueCtr) {
360    this.uniqueCtr = uniqueCtr;
361  }
362
363  /**
364   * The average cost you've paid to have 1,000 impressions on your ad.
365   */
366  @java.lang.SuppressWarnings("all")
367  @lombok.Generated
368  public Double getCpm() {
369    return this.cpm;
370  }
371
372  /**
373   * The average cost you've paid to have 1,000 impressions on your ad.
374   */
375  @java.lang.SuppressWarnings("all")
376  @lombok.Generated
377  public void setCpm(final Double cpm) {
378    this.cpm = cpm;
379  }
380
381  /**
382   * The average cost you've paid to have your ad served to 1,000 unique people.
383   */
384  @java.lang.SuppressWarnings("all")
385  @lombok.Generated
386  public Double getCpp() {
387    return this.cpp;
388  }
389
390  /**
391   * The average cost you've paid to have your ad served to 1,000 unique people.
392   */
393  @java.lang.SuppressWarnings("all")
394  @lombok.Generated
395  public void setCpp(final Double cpp) {
396    this.cpp = cpp;
397  }
398
399  /**
400   * The average cost per click for these ads, calculated as the amount spent divided by the number of clicks received.
401   */
402  @java.lang.SuppressWarnings("all")
403  @lombok.Generated
404  public Double getCpc() {
405    return this.cpc;
406  }
407
408  /**
409   * The average cost per click for these ads, calculated as the amount spent divided by the number of clicks received.
410   */
411  @java.lang.SuppressWarnings("all")
412  @lombok.Generated
413  public void setCpc(final Double cpc) {
414    this.cpc = cpc;
415  }
416
417  /**
418   * The average you've spent on actions. For example, if you spent $20 and you got 10 Page likes, each one cost an
419   * average of $2.
420   */
421  @java.lang.SuppressWarnings("all")
422  @lombok.Generated
423  public Double getCostPerTotalAction() {
424    return this.costPerTotalAction;
425  }
426
427  /**
428   * The average you've spent on actions. For example, if you spent $20 and you got 10 Page likes, each one cost an
429   * average of $2.
430   */
431  @java.lang.SuppressWarnings("all")
432  @lombok.Generated
433  public void setCostPerTotalAction(final Double costPerTotalAction) {
434    this.costPerTotalAction = costPerTotalAction;
435  }
436
437  /**
438   * The average cost per unique click for these ads, calculated as the amount spent divided by the number of unique
439   * clicks received.
440   */
441  @java.lang.SuppressWarnings("all")
442  @lombok.Generated
443  public Double getCostPerUniqueClick() {
444    return this.costPerUniqueClick;
445  }
446
447  /**
448   * The average cost per unique click for these ads, calculated as the amount spent divided by the number of unique
449   * clicks received.
450   */
451  @java.lang.SuppressWarnings("all")
452  @lombok.Generated
453  public void setCostPerUniqueClick(final Double costPerUniqueClick) {
454    this.costPerUniqueClick = costPerUniqueClick;
455  }
456
457  /**
458   * The average number of times your ad was served to each person.
459   */
460  @java.lang.SuppressWarnings("all")
461  @lombok.Generated
462  public Double getFrequency() {
463    return this.frequency;
464  }
465
466  /**
467   * The average number of times your ad was served to each person.
468   */
469  @java.lang.SuppressWarnings("all")
470  @lombok.Generated
471  public void setFrequency(final Double frequency) {
472    this.frequency = frequency;
473  }
474}