Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syncing #1

Merged
merged 40 commits into from
Dec 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
6ac2b2a
Auto-generated java SDK code update
jingping2015 May 20, 2019
8228265
Auto-generated java SDK code update
jingping2015 May 29, 2019
4914459
Adding Travis CI configuration (#240)
joesus Jun 14, 2019
86f4330
Create .travis.yml
jingping2015 Jun 14, 2019
a0427eb
Auto-generated java SDK code update
jingping2015 Jul 10, 2019
dcaef5a
Auto-generated java SDK code update
jingping2015 Jul 16, 2019
84b5562
Auto-generated java SDK code update
jingping2015 Jul 26, 2019
b586b0c
Auto-generated java SDK code update
jingping2015 Jul 29, 2019
82f5d5b
Auto-generated java SDK code update
jingping2015 Aug 7, 2019
8997b9d
Update .travis.yml
jingping2015 Aug 8, 2019
3135237
Fix the different ID fields SerializeName
jingping2015 Aug 8, 2019
31931e6
Auto-generated java SDK code update
jingping2015 Aug 16, 2019
bd2679e
Auto-generated java SDK code update
jingping2015 Aug 21, 2019
c4b2356
Auto-generated java SDK code update
jingping2015 Aug 28, 2019
2eb8370
Improve the CHANGELOG
jingping2015 Sep 6, 2019
844fed1
Auto-generated java SDK code update
jingping2015 Sep 11, 2019
7186200
Fix video upload
jingping2015 Sep 18, 2019
20de862
Auto-generated java SDK code update
jingping2015 Sep 20, 2019
34c19b8
Remove null from enum class
jingping2015 Sep 20, 2019
4cd2e50
Auto-generated java SDK code update
Oct 11, 2019
03f603d
Strongly typed Server-Side API for web (Java business SDK)
Oct 16, 2019
3ed37ee
Java Server-Side API doc fix
Oct 18, 2019
0bc33c4
1/n add CrashReporter
jingping2015 Oct 21, 2019
1d77db0
2/n Implement CrashReporter
jingping2015 Oct 21, 2019
68d81b6
Normalization for Business SDK(JAVA)
HeyMultiverse Oct 23, 2019
9514be0
Auto-generated java SDK code update
Oct 23, 2019
a063389
Auto-generated java SDK code update
Oct 29, 2019
71fad10
Add changelog for 5.0
jingping2015 Oct 29, 2019
3a5c6af
Enable CrashReporter in APIContext
jingping2015 Nov 4, 2019
85a9294
Auto-generated java SDK code update
Nov 5, 2019
c8d6f0c
Server-Side Java API example.
Nov 7, 2019
de3084a
Server-Side API convert primitive types to objects
Nov 8, 2019
6b9d500
Auto-generated java SDK code update
Nov 12, 2019
75a5b34
Server side java api adding parameterized constructor to all model ob…
Nov 15, 2019
2501d25
Fill getHeader() in APIException class (#262)
kongxinzhu Nov 19, 2019
cd32d0d
Fix typo in CrashReporter class
kongxinzhu Nov 20, 2019
a57e99a
Make omit_response_on_success configurable for batch requests
kongxinzhu Dec 6, 2019
211e71d
Auto-generated java SDK code update
Dec 11, 2019
ffd2df2
1/n Add Junit Test
kongxinzhu Dec 18, 2019
5226059
Server-side Java API added search_string to CustomData.
Dec 23, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
language: java
jdk:
- oraclejdk8

dist: trusty

branches:
only:
- master

install: mvn package
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,33 @@ All notable changes to this project will be documented in this file.


## Unreleased
- Server-side API added search_string to CustomData.

## v5.0.3

- Added function `getHeader()` in APIException class which provides header information
- Made `omit_response_on_success` configurable for addToBatch method in APIRequest
## v5.0.1

### Added
- Added `CrashRepoter`, more context available [here](https://developers.facebook.com/docs/business-sdk/guides/crash-reports)

## v5.0.0
### Changed
- Graph API call upgrade to [v5.0](https://developers.facebook.com/docs/graph-api/changelog/version5.0)

## v4.0.8

- Added strongly typed Server-Side API with normalization for Web (https://developers.facebook.com/docs/marketing-api/facebook-pixel/server-side-api/using-the-api)

## v4.0.6

### Fixed
- Add back `source` param in `APIRequestCreateAdVideo`.

## v4.0.0
### Changed
- Graph API call upgrade to [v4.0](https://developers.facebook.com/docs/graph-api/changelog/version4.0)

## v3.3.1
### Changed
Expand Down
60 changes: 60 additions & 0 deletions examples/AdAccountAdSetsPost2CreateMAIA.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/**
* Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to
* use, copy, modify, and distribute this software in source code or binary
* form for use in connection with the web services and APIs provided by
* Facebook.
*
* As with any software that integrates with the Facebook platform, your use
* of this software is subject to the Facebook Developer Principles and
* Policies [http://developers.facebook.com/policy/]. This copyright notice
* shall be included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/

import com.facebook.ads.sdk.*;
import java.io.File;
import java.util.Arrays;

public class AdAccountAdSetsPost2CreateMAIA {
public static void main (String args[]) throws APIException {

String access_token = "<ACCESS_TOKEN>";
String app_secret = "<APP_SECRET>";
String app_id = "<APP_ID>";
String id = "<AD_ACCOUNT_ID>";
APIContext context = new APIContext(access_token).enableDebug(true);

new AdAccount(id, context).createAdSet()
.setName("Mobile App Installs Ad Set")
.setDailyBudget(1000L)
.setBidAmount(2L)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_APP_INSTALLS)
.setCampaignId("<adCampaignAppInstallsID>")
.setPromotedObject("{\"application_id\":\"<appID>\",\"object_store_url\":\"<appLink>\"}")
.setTargeting(
new Targeting()
.setFieldDevicePlatforms(Arrays.asList(Targeting.EnumDevicePlatforms.VALUE_MOBILE))
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
)
.setFieldPublisherPlatforms(Arrays.asList("facebook", "audience_network"))
.setFieldUserOs(Arrays.asList("IOS"))
)
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.execute();

}
}
5 changes: 3 additions & 2 deletions examples/AdAccountAdSetsPostAdSetCreateCpa.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,15 @@ public static void main (String args[]) throws APIException {
.setName("A CPA Ad Set")
.setCampaignId("<adCampaignLinkClicksID>")
.setDailyBudget(5000L)
.setStartTime("2019-05-06T08:46:40-0700")
.setEndTime("2019-05-13T08:46:40-0700")
.setStartTime("2019-12-12T23:42:39-0800")
.setEndTime("2019-12-19T23:42:39-0800")
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_REACH)
.setBidAmount(1000L)
.setPromotedObject("{\"page_id\":\"<pageID>\"}")
.setTargeting(
new Targeting()
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
5 changes: 3 additions & 2 deletions examples/AdAccountAdSetsPostAdSetCreateCpaAppEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,16 @@ public static void main (String args[]) throws APIException {
.setName("A CPA Ad Set optimized for App Events")
.setCampaignId("<adCampaignAppInstallsID>")
.setDailyBudget(300L)
.setStartTime("2019-05-06T08:48:58-0700")
.setEndTime("2019-05-13T08:48:58-0700")
.setStartTime("2019-12-12T23:43:36-0800")
.setEndTime("2019-12-19T23:43:36-0800")
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_OFFSITE_CONVERSIONS)
.setBidAmount(100L)
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.setPromotedObject("{\"application_id\":\"<appID>\",\"object_store_url\":\"<appLink>\",\"custom_event_type\":\"PURCHASE\"}")
.setTargeting(
new Targeting()
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
1 change: 1 addition & 0 deletions examples/AdAccountAdSetsPostBehaviorTargeting.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public static void main (String args[]) throws APIException {
.setFieldId(6004386044572L)
.setFieldName("Android Owners (All)")
))
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
1 change: 1 addition & 0 deletions examples/AdAccountAdSetsPostBidMultiplier.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public static void main (String args[]) throws APIException {
.setPromotedObject("{\"product_set_id\":\"<productSetID>\",\"custom_event_type\":\"ADD_TO_CART\"}")
.setTargeting(
new Targeting()
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
10 changes: 3 additions & 7 deletions examples/AdAccountAdSetsPostCreateAdSet.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ public static void main (String args[]) throws APIException {
new AdAccount(id, context).createAdSet()
.setName("My First AdSet")
.setLifetimeBudget(20000L)
.setStartTime("2019-05-06T08:44:23-0700")
.setEndTime("2019-05-13T08:44:23-0700")
.setStartTime("2019-12-12T23:41:41-0800")
.setEndTime("2019-12-19T23:41:41-0800")
.setCampaignId("<adCampaignLinkClicksID>")
.setBidAmount(500L)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
Expand All @@ -52,6 +52,7 @@ public static void main (String args[]) throws APIException {
.setFieldId(6002714895372L)
.setFieldName("All travelers")
))
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGenders(Arrays.asList(1L))
.setFieldGeoLocations(
new TargetingGeoLocation()
Expand All @@ -67,11 +68,6 @@ public static void main (String args[]) throws APIException {
.setFieldKey("4081")
))
)
.setFieldHomeOwnership(Arrays.asList(
new IDName()
.setFieldId(6006371327132L)
.setFieldName("Renters")
))
.setFieldInterests(Arrays.asList(
new IDName()
.setFieldId("<adsInterestID>")
Expand Down
1 change: 1 addition & 0 deletions examples/AdAccountAdSetsPostCreateAudienceNetwork.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public static void main (String args[]) throws APIException {
.setTargeting(
new Targeting()
.setFieldDevicePlatforms(Arrays.asList(Targeting.EnumDevicePlatforms.VALUE_MOBILE))
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
5 changes: 3 additions & 2 deletions examples/AdAccountAdSetsPostDailyBudget20.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,15 @@ public static void main (String args[]) throws APIException {
new AdAccount(id, context).createAdSet()
.setName("My First Adset")
.setDailyBudget(2000L)
.setStartTime("2019-04-29T08:47:49-0700")
.setEndTime("2019-05-06T08:47:49-0700")
.setStartTime("2019-12-05T23:43:07-0800")
.setEndTime("2019-12-12T23:43:07-0800")
.setCampaignId("<adCampaignLinkClicksID>")
.setBidAmount(100L)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_LINK_CLICKS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_LINK_CLICKS)
.setTargeting(
new Targeting()
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
87 changes: 87 additions & 0 deletions examples/AdAccountAdSetsPostDemographicTargeting.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
/**
* Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to
* use, copy, modify, and distribute this software in source code or binary
* form for use in connection with the web services and APIs provided by
* Facebook.
*
* As with any software that integrates with the Facebook platform, your use
* of this software is subject to the Facebook Developer Principles and
* Policies [http://developers.facebook.com/policy/]. This copyright notice
* shall be included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/

import com.facebook.ads.sdk.*;
import java.io.File;
import java.util.Arrays;

public class AdAccountAdSetsPostDemographicTargeting {
public static void main (String args[]) throws APIException {

String access_token = "<ACCESS_TOKEN>";
String app_secret = "<APP_SECRET>";
String app_id = "<APP_ID>";
String id = "<AD_ACCOUNT_ID>";
APIContext context = new APIContext(access_token).enableDebug(true);

new AdAccount(id, context).createAdSet()
.setName("My First AdSet")
.setDailyBudget(10000L)
.setBidAmount(300L)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_REACH)
.setCampaignId("<adCampaignLinkClicksID>")
.setPromotedObject("{\"page_id\":\"<pageID>\"}")
.setTargeting(
new Targeting()
.setFieldAgeMax(24L)
.setFieldAgeMin(20L)
.setFieldBehaviors(Arrays.asList(
new IDName()
.setFieldId(6002714895372L)
.setFieldName("All travelers")
))
.setFieldDevicePlatforms(Arrays.asList(Targeting.EnumDevicePlatforms.VALUE_MOBILE))
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGenders(Arrays.asList(1L))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCities(Arrays.asList(
new TargetingGeoLocationCity()
.setFieldDistanceUnit("mile")
.setFieldKey(777934L)
.setFieldRadius(10L)
))
.setFieldCountries(Arrays.asList("US"))
.setFieldRegions(Arrays.asList(
new TargetingGeoLocationRegion()
.setFieldKey("4081")
))
)
.setFieldInterests(Arrays.asList(
new IDName()
.setFieldId("<adsInterestID>")
.setFieldName("<adsInterestName>")
))
.setFieldLifeEvents(Arrays.asList(
new IDName()
.setFieldId(6002714398172L)
.setFieldName("Newlywed (1 year)")
))
.setFieldPublisherPlatforms(Arrays.asList("facebook", "audience_network"))
)
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.execute();

}
}
1 change: 1 addition & 0 deletions examples/AdAccountAdSetsPostInterestTargeting.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public static void main (String args[]) throws APIException {
.setFieldAgeMax(24L)
.setFieldAgeMin(20L)
.setFieldDevicePlatforms(Arrays.asList(Targeting.EnumDevicePlatforms.VALUE_MOBILE))
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldFlexibleSpec(Arrays.asList(
new FlexibleTargeting()
.setFieldInterests(Arrays.asList(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ public static void main (String args[]) throws APIException {
new AdAccount(id, context).createAdSet()
.setName("My First Adset")
.setLifetimeBudget(20000L)
.setStartTime("2019-04-29T08:48:12-0700")
.setEndTime("2019-05-09T08:48:12-0700")
.setStartTime("2019-12-05T23:43:17-0800")
.setEndTime("2019-12-15T23:43:17-0800")
.setCampaignId("<adCampaignLinkClicksID>")
.setBidAmount(100L)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_LINK_CLICKS)
Expand Down
5 changes: 3 additions & 2 deletions examples/AdAccountAdSetsPostOfferClaim.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ public static void main (String args[]) throws APIException {
new AdAccount(id, context).createAdSet()
.setName("My Offer Claim AdSet")
.setLifetimeBudget(56000L)
.setStartTime("2019-04-29T08:47:26-0700")
.setEndTime("2019-05-06T08:47:26-0700")
.setStartTime("2019-12-05T23:42:58-0800")
.setEndTime("2019-12-12T23:42:58-0800")
.setCampaignId("<adCampaignLinkClicksID>")
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_LINK_CLICKS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_LINK_CLICKS)
Expand All @@ -48,6 +48,7 @@ public static void main (String args[]) throws APIException {
new Targeting()
.setFieldAgeMax(55L)
.setFieldAgeMin(25L)
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGenders(Arrays.asList(1L))
.setFieldGeoLocations(
new TargetingGeoLocation()
Expand Down
10 changes: 3 additions & 7 deletions examples/AdAccountAdSetsPostOptimizePostEngagement.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ public static void main (String args[]) throws APIException {
new AdAccount(id, context).createAdSet()
.setName("My First Adset")
.setLifetimeBudget(20000L)
.setStartTime("2019-04-29T08:48:35-0700")
.setEndTime("2019-05-09T08:48:35-0700")
.setStartTime("2019-12-05T23:43:27-0800")
.setEndTime("2019-12-15T23:43:27-0800")
.setCampaignId("<adCampaignLinkClicksID>")
.setBidAmount(500L)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
Expand All @@ -53,6 +53,7 @@ public static void main (String args[]) throws APIException {
.setFieldName("All travelers")
))
.setFieldDevicePlatforms(Arrays.asList(Targeting.EnumDevicePlatforms.VALUE_DESKTOP))
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGenders(Arrays.asList(1L))
.setFieldGeoLocations(
new TargetingGeoLocation()
Expand All @@ -68,11 +69,6 @@ public static void main (String args[]) throws APIException {
.setFieldKey("4081")
))
)
.setFieldHomeOwnership(Arrays.asList(
new IDName()
.setFieldId(6006371327132L)
.setFieldName("Renters")
))
.setFieldLifeEvents(Arrays.asList(
new IDName()
.setFieldId(6002714398172L)
Expand Down
1 change: 1 addition & 0 deletions examples/AdAccountAdSetsPostPageLikes.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public static void main (String args[]) throws APIException {
.setCampaignId("<adCampaignLinkClicksID>")
.setTargeting(
new Targeting()
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
1 change: 1 addition & 0 deletions examples/AdAccountAdSetsPostPlacementTargeting.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public static void main (String args[]) throws APIException {
.setCampaignId("<adCampaignLinkClicksID>")
.setTargeting(
new Targeting()
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
1 change: 1 addition & 0 deletions examples/AdAccountAdSetsPostReach.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public static void main (String args[]) throws APIException {
.setFieldKey("3847")
))
)
.setFieldFacebookPositions(Arrays.asList("feed"))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
Expand Down
Loading