במדריך הזה נדרשות כמה הגדרות מוקדמות שהוגדרו בשלבים הקודמים. מומלץ להתחיל במבוא, אם לא עשית זאת.
המדריך הזה משתמש גם באסימוני רענון, תהליך עבודה שבו יש למשתמשים מספיק גישה לחשבון Google Ads יכולה להעניק לאפליקציה שלך הרשאה, באופן חד-פעמי, לבצע קריאות ל-API במצב אופליין בחשבון ללא התערבות נוספת של המשתמש. שלך יכול להשתמש באסימוני רענון כדי ליצור גם תהליכי עבודה אופליין, כמו משימות cron צינורות נתונים ותהליכי עבודה אינטראקטיביים, כמו אפליקציות לאינטרנט או לנייד.
אחזור אסימון רענון
מנגנון ההרשאות ב-Google Ads API משתמש ב-OAuth 2.0. כברירת מחדל, OAuth אימות 2.0 מנפיק אסימון גישה שהתוקף שלו פג לאחר זמן מוגבל. כדי לחדש את אסימון הגישה באופן אוטומטי, צריך להנפיק אסימון רענון במקום זאת.
Oauth2l
מריצים את הכלי oauth2l כדי ליצור את אסימון הרענון:
oauth2l fetch --credentials credentials.json --scope adwords \ --output_format refresh_token ``` The `credentials.json` file is from a [previous step](/google-ads/api/docs/get-started/oauth-cloud-project#id-secret).
הפקודה
oauth2l
פותחת חלון התחברות לחשבון Google בחלון חדש חלון הדפדפן שינחה אתכם לאורך שלבי האימות מסוג OAuth 2.0.הקפידו להיכנס באמצעות כתובת האימייל מהשלב שבו לזהות את מספר הלקוח להתחברות.
אם האפליקציה לא מאומתת, יכול להיות שיוצג מסך אזהרה. בתרחישים כאלה במקרים בטוחים, ניתן ללחוץ על הקישור Show Advanced וללחוץ על עוברים אל האפשרות PROJECT_NAME (לא מאומת).
אחרי שמאמתים את היקפי ההרשאות, מעניקים את ההרשאה בלחיצה על לחצן המשך.
תופיע בקשה בדפדפן עם הטקסט הבא:
Authorization code granted. Please close this tab.
הפלט של הפקודה
oauth2l
הוא קטע ה-JSON הבא:{ "client_id": "******.apps.googleusercontent.com", "client_secret": "******", "token_uri": "https://oauth2.googleapis.com/token", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "refresh_token": "******", "type": "authorized_user" }
CLI של gcloud
יוצרים את אסימון הרענון באמצעות הכלי CLI של gcloud:
gcloud auth application-default \ login --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=<path_to_credentials.json> ``` The `credentials.json` file is from a [previous step](/google-ads/api/docs/get-started/oauth-cloud-project#id-secret).
הפקודה
gcloud
פותחת חלון התחברות לחשבון Google בחלון חדש חלון הדפדפן שינחה אתכם לאורך שלבי האימות מסוג OAuth 2.0.חשוב להיכנס באמצעות כתובת האימייל מהשלב שבו זיהית את מספר הלקוח להתחברות.
אם האפליקציה לא מאומתת, יכול להיות שיופיע מסך אזהרה. בתרחישים כאלה במקרים בטוחים, ניתן ללחוץ על הקישור Show Advanced וללחוץ על עוברים אל האפשרות PROJECT_NAME (לא מאומת).
אחרי שמאמתים את ההיקפים, לוחצים על הלחצן Continue כדי להעניק את ההרשאה.
הדפדפן עובר לכתובת https://cloud.google.com/sdk/auth_הצלחה, שמציין שהאימות בוצע בהצלחה.
Authorization code granted. Please close this tab.
הפלט של הפקודה
gcloud
נראה כך:Credentials saved to file: [/****/.config/gcloud/application_default_credentials.json]
עכשיו פותחים את הקובץ
application_default_credentials.json
. התוכן שלו אמור להיראות כך:{ "account": "", "client_id": "******.apps.googleusercontent.com", "client_secret": "******", "refresh_token": "******", "type": "authorized_user", "universe_domain": "googleapis.com" }
אחרים
אם מעדיפים להשתמש ב-curl
או בלקוח HTTP משלכם, אפשר לעיין
דוגמה למדריך OAuth 2.0 לאפליקציות לנייד ולמחשב.
ביצוע קריאה ל-API
כדי לקבל הוראות לביצוע קריאה ל-API, צריך לבחור את הלקוח הרצוי:
Java
פריטי המידע של ספריית הלקוח מתפרסמים במרכז Maven מאגר הנתונים. מוסיפים את ספריית הלקוח כיחס תלות לפרויקט באופן הבא:
התלות של Maven היא:
<dependency>
<groupId>com.google.api-ads</groupId>
<artifactId>google-ads</artifactId>
<version>33.0.0</version>
</dependency>
התלות של Gradle היא:
implementation 'com.google.api-ads:google-ads:33.0.0'
יוצרים קובץ ~/ads.properties
עם התוכן הבא:
api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
יוצרים אובייקט GoogleAdsClient
באופן הבא:
GoogleAdsClient googleAdsClient = null;
try {
googleAdsClient = GoogleAdsClient.newBuilder().fromPropertiesFile().build();
} catch (FileNotFoundException fnfe) {
System.err.printf(
"Failed to load GoogleAdsClient configuration from file. Exception: %s%n",
fnfe);
System.exit(1);
} catch (IOException ioe) {
System.err.printf("Failed to create GoogleAdsClient. Exception: %s%n", ioe);
System.exit(1);
}
בשלב הבא, מריצים דוח קמפיינים באמצעות השיטה GoogleAdsService.SearchStream
כדי לאחזר את הקמפיינים בחשבון. המדריך הזה לא מכיל פרטים על דיווח.
private void runExample(GoogleAdsClient googleAdsClient, long customerId) {
try (GoogleAdsServiceClient googleAdsServiceClient =
googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {
String query = "SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id";
// Constructs the SearchGoogleAdsStreamRequest.
SearchGoogleAdsStreamRequest request =
SearchGoogleAdsStreamRequest.newBuilder()
.setCustomerId(Long.toString(customerId))
.setQuery(query)
.build();
// Creates and issues a search Google Ads stream request that will retrieve all campaigns.
ServerStream<SearchGoogleAdsStreamResponse> stream =
googleAdsServiceClient.searchStreamCallable().call(request);
// Iterates through and prints all of the results in the stream response.
for (SearchGoogleAdsStreamResponse response : stream) {
for (GoogleAdsRow googleAdsRow : response.getResultsList()) {
System.out.printf(
"Campaign with ID %d and name '%s' was found.%n",
googleAdsRow.getCampaign().getId(), googleAdsRow.getCampaign().getName());
}
}
}
}
C#
חבילות ספריות הלקוח מתפרסמות במאגר Nuget.org. מתחילים בהוספת הפניה ל-nuget לחבילה Google.Ads.GoogleAds
.
dotnet add package Google.Ads.GoogleAds --version 18.1.0
יוצרים אובייקט GoogleAdsConfig
עם ההגדרות הרלוונטיות, ומשתמשים בו כדי ליצור אובייקט GoogleAdsClient
.
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = "APPLICATION",
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******",
LoginCustomerId = ******
};
GoogleAdsClient client = new GoogleAdsClient(config);
בשלב הבא, מריצים דוח קמפיינים באמצעות השיטה GoogleAdsService.SearchStream
כדי לאחזר את הקמפיינים בחשבון. המדריך הזה לא מכיל פרטים על דיווח.
public void Run(GoogleAdsClient client, long customerId)
{
// Get the GoogleAdsService.
GoogleAdsServiceClient googleAdsService = client.GetService(
Services.V17.GoogleAdsService);
// Create a query that will retrieve all campaigns.
string query = @"SELECT
campaign.id,
campaign.name,
campaign.network_settings.target_content_network
FROM campaign
ORDER BY campaign.id";
try
{
// Issue a search request.
googleAdsService.SearchStream(customerId.ToString(), query,
delegate (SearchGoogleAdsStreamResponse resp)
{
foreach (GoogleAdsRow googleAdsRow in resp.Results)
{
Console.WriteLine("Campaign with ID {0} and name '{1}' was found.",
googleAdsRow.Campaign.Id, googleAdsRow.Campaign.Name);
}
}
);
}
catch (GoogleAdsException e)
{
Console.WriteLine("Failure:");
Console.WriteLine($"Message: {e.Message}");
Console.WriteLine($"Failure: {e.Failure}");
Console.WriteLine($"Request ID: {e.RequestId}");
throw;
}
}
PHP
חבילות ספריות הלקוח מתפרסמות במאגר Packagist. שינוי ל-
כדי להתקין את תיקיית השורש של הפרויקט, מריצים את הפקודה הבאה
הספרייה וכל יחסי התלות שלה בספריית vendor/
בתיקיית השורש של הפרויקט.
composer require googleads/google-ads-php:25.0.0
יוצרים עותק של הקובץ google_ads_php.ini
מהמאגר ב-GitHub ומשנים אותו כך שיכלול את פרטי הכניסה.
[GOOGLE_ADS]
developerToken = "INSERT_DEVELOPER_TOKEN_HERE"
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
[OAUTH2]
clientId = "INSERT_OAUTH2_CLIENT_ID_HERE"
clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE"
refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"
יוצרים מופע של אובייקט GoogleAdsClient
.
$oAuth2Credential = (new OAuth2TokenBuilder())
->fromFile('/path/to/google_ads_php.ini')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->fromFile('/path/to/google_ads_php.ini')
->withOAuth2Credential($oAuth2Credential)
->build();
בשלב הבא, מריצים דוח קמפיינים באמצעות השיטה GoogleAdsService.SearchStream
כדי לאחזר את הקמפיינים בחשבון. המדריך הזה לא מכיל פרטים על דיווח.
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId)
{
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
// Creates a query that retrieves all campaigns.
$query = 'SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id';
// Issues a search stream request.
/** @var GoogleAdsServerStreamDecorator $stream */
$stream = $googleAdsServiceClient->searchStream(
SearchGoogleAdsStreamRequest::build($customerId, $query)
);
// Iterates over all rows in all messages and prints the requested field values for
// the campaign in each row.
foreach ($stream->iterateAllElements() as $googleAdsRow) {
/** @var GoogleAdsRow $googleAdsRow */
printf(
"Campaign with ID %d and name '%s' was found.%s",
$googleAdsRow->getCampaign()->getId(),
$googleAdsRow->getCampaign()->getName(),
PHP_EOL
);
}
}
Python
ספריית הלקוח מופצת ב-PyPI, וניתן להתקין אותה באמצעות הפקודה pip
באופן הבא:
python -m pip install google-ads==21.3.0
יוצרים עותק של הקובץ google-ads.yaml
מהמאגר ב-GitHub ומשנים אותו כך שיכלול את פרטי הכניסה שלכם.
client_id: INSERT_OAUTH2_CLIENT_ID_HERE
client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
refresh_token: INSERT_REFRESH_TOKEN_HERE
developer_token: INSERT_DEVELOPER_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
יוצרים מכונה של GoogleAdsClient
באמצעות הפקודה
GoogleAdsClient.load_from_storage
. מעבירים את הנתיב אל
google-ads.yaml
כמחרוזת ל-method כשקוראים לה:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
בשלב הבא, מריצים דוח של הקמפיין באמצעות השיטה GoogleAdsService.SearchStream
כדי לאחזר את הנתונים של
קמפיינים בחשבון. המדריך הזה לא מכיל פרטים על דיווח.
def main(client, customer_id):
ga_service = client.get_service("GoogleAdsService")
query = """
SELECT
campaign.id,
campaign.name
FROM campaign
ORDER BY campaign.id"""
# Issues a search request using streaming.
stream = ga_service.search_stream(customer_id=customer_id, query=query)
for batch in stream:
for row in batch.results:
print(
f"Campaign with ID {row.campaign.id} and name "
f'"{row.campaign.name}" was found.'
)
Ruby
הג'אמס של Ruby לספריית הלקוח מתפרסמים באתר האירוח של הג'אמס של Rubygems. הדרך המומלצת להתקנה היא באמצעות bundler. מוסיפים שורה ל-Gemfile:
gem 'google-ads-googleads', '~> 30.0.0'
לאחר מכן מריצים את הפקודה:
bundle install
יוצרים עותק של הקובץ google_ads_config.rb
מהמאגר ב-GitHub ומשנים אותו כך שיכלול את פרטי הכניסה.
Google::Ads::GoogleAds::Config.new do |c|
c.client_id = 'INSERT_CLIENT_ID_HERE'
c.client_secret = 'INSERT_CLIENT_SECRET_HERE'
c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
כדי ליצור מכונה של GoogleAdsClient
צריך להעביר את הנתיב למקום שבו שומרים
קובץ זה.
client = Google::Ads::GoogleAds::GoogleAdsClient.new('path/to/google_ads_config.rb')
בשלב הבא, מריצים דוח של הקמפיין באמצעות השיטה GoogleAdsService.SearchStream
כדי לאחזר את הנתונים של
קמפיינים בחשבון. המדריך הזה לא כולל את כל הפרטים של
דיווח.
def get_campaigns(customer_id)
# GoogleAdsClient will read a config file from
# ENV['HOME']/google_ads_config.rb when called without parameters
client = Google::Ads::GoogleAds::GoogleAdsClient.new
responses = client.service.google_ads.search_stream(
customer_id: customer_id,
query: 'SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id',
)
responses.each do |response|
response.results.each do |row|
puts "Campaign with ID #{row.campaign.id} and name '#{row.campaign.name}' was found."
end
end
end
Perl
הספרייה מופצת ב
CPAN. קודם כול, משכפלים את המאגר google-ads-perl
בספרייה הרצויה.
git clone https://github.com/googleads/google-ads-perl.git
עוברים לספרייה google-ads-perl
ומריצים את הפקודה הבאה ב-
שורת הפקודה כדי להתקין את כל יחסי התלות שדרושים לשימוש בספרייה.
cd google-ads-perl
cpan install Module::Build
perl Build.PL
perl Build installdeps
ליצור עותק של
googleads.properties
ממאגר ה-GitHub של GitHub, ומשנים אותו כך שיכלול את פרטי הכניסה שלכם.
clientId=INSERT_OAUTH2_CLIENT_ID_HERE
clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
developerToken=INSERT_DEVELOPER_TOKEN_HERE
loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
יוצרים מכונה של Client
ומעבירים את הנתיב למיקום שבו שומרים את הקובץ הזה.
my $properties_file = "/path/to/googleads.properties";
my $api_client = Google::Ads::GoogleAds::Client->new({
properties_file => $properties_file
});
בשלב הבא, מריצים דוח של הקמפיין באמצעות השיטה GoogleAdsService.SearchStream
כדי לאחזר את הנתונים של
קמפיינים בחשבון. המדריך הזה לא כולל את כל הפרטים של
דיווח.
sub get_campaigns {
my ($api_client, $customer_id) = @_;
# Create a search Google Ads stream request that will retrieve all campaigns.
my $search_stream_request =
Google::Ads::GoogleAds::V17::Services::GoogleAdsService::SearchGoogleAdsStreamRequest
->new({
customerId => $customer_id,
query =>
"SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id"
});
# Get the GoogleAdsService.
my $google_ads_service = $api_client->GoogleAdsService();
my $search_stream_handler =
Google::Ads::GoogleAds::Utils::SearchStreamHandler->new({
service => $google_ads_service,
request => $search_stream_request
});
# Issue a search request and process the stream response to print the requested
# field values for the campaign in each row.
$search_stream_handler->process_contents(
sub {
my $google_ads_row = shift;
printf "Campaign with ID %d and name '%s' was found.\n",
$google_ads_row->{campaign}{id}, $google_ads_row->{campaign}{name};
});
return 1;
}
REST
מתחילים להשתמש בלקוח HTTP כדי לאחזר אסימון גישה מסוג OAuth 2.0. במדריך הזה נעשה שימוש בפקודה curl
.
curl \
--data "grant_type=refresh_token" \
--data "client_id=CLIENT_ID" \
--data "client_secret=CLIENT_SECRET" \
--data "refresh_token=REFRESH_TOKEN" \
https://www.googleapis.com/oauth2/v3/token
בשלב הבא, מריצים דוח של הקמפיין באמצעות השיטה GoogleAdsService.SearchStream
כדי לאחזר את הנתונים של
קמפיינים בחשבון. המדריך הזה לא מכיל פרטים על דיווח.
curl -i -X POST https://googleads.googleapis.com/v18/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "developer-token: DEVELOPER_TOKEN" \
-H "login-customer-id: LOGIN_CUSTOMER_ID" \
--data-binary "@query.json"
התוכן של query.json
הוא:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}