Bu kılavuzda, Google Ads API'yi kullanmaya nasıl başlayacağınıza dair kısa bir genel bakış sunulmaktadır. .NET kitaplığını kullanabilirsiniz.
Kurulum
İstemci kitaplığı ikili programları, NuGet kullanılarak dağıtılır. NuGet referansı ekleme
Google.Ads.GoogleAds
paketinizi ekleyebilirsiniz.
kullanır.
Yetkilendirme kurulumu
API çağrılarınızı yetkilendirmek için istemci kimliğinizi, istemci sırrınızı ve yenileme jetonunu ve geliştirici simgesini kitaplığa ekleyin.
Kimlik bilgisi oluşturmanız gerekiyorsa
- Aşağıdaki adımları uygulayarak Geliştirici jetonu kılavuzundaki henüz yoksa geliştirici jetonunuzu ekleyin.
- OAuth masaüstü uygulaması akışını izleyin istemci kimliği, istemci gizli anahtarı ve yenileme jetonu oluşturma rehberini inceleyin.
Zaten kimlik bilgileriniz varsa
GoogleAdsApi
düğümünü veGoogleAdsApi
bölümünü Şu konumdakiApp.config
dosyasındanconfigSections
düğüm: GitHubApp.config
/Web.config
dosyanıza yapıştırın. bu düğümler otomatik olarakApp.config
/Web.config
dosya- Geliştirici jetonunu, istemci kimliğini, istemci gizli anahtarını ve yenileme jetonunu ekleyin
uygulamanızın
App.config
/Web.config
arasında.
App.config
iyi dokümanlar bulunsa da aynı zamanda
Yapılandırma kılavuzu
ve istemci kitaplığını yapılandırmak için alternatif yöntemler kullanmayı
dahil etmektir.
API çağrısı yapma
İstemci kitaplığının temel kullanımı şu şekildedir:
// Create a Google Ads client.
GoogleAdsClient client = new GoogleAdsClient();
// Create the required service.
CampaignServiceClient campaignService =
client.GetService(Services.V17.CampaignService);
// Make more calls to service class.
GoogleAdsClient örneği oluşturma
Google Ads API .NET kitaplığındaki en önemli sınıflar
GoogleAdsClient
sınıf. Önceden yapılandırılmış hizmet sınıfı oluşturmanıza olanak tanır
. GoogleAdsClient
, bir varsayılan sağlar
oluşturucuda belirtilen ayarları kullanarak bir kullanıcı nesnesi oluşturur
uygulamanın App.config
/ Web.config
. Yapılandırma
rehberini inceleyin
seçenekleri vardır.
// Create a new GoogleAdsClient with the App.config settings.
GoogleAdsClient user = new GoogleAdsClient();
Hizmet oluştur
GoogleAdsClient
,GetService
Reklam hizmeti.
CampaignServiceClient campaignService = client.GetService(Services.V17.CampaignService);
// Now make calls to CampaignService.
Desteklenen tüm API sürümlerini ve API sürümlerini listeleyen bir Services
sınıfı sağlarız.
kullanıma sunuyoruz. GetService
yöntemi, bu numaralandırma nesnelerini bağımsız değişken olarak kabul eder
bahsedeceğiz. Örneğin,
Google Ads API'nin V17
sürümü için CampaignServiceClient
,
şununla GoogleAdsClient.GetService
yöntemini çağırmalısınız:
Gösterildiği gibi, bağımsız değişken olarak Services.V17.CampaignService
ele alalım.
İş parçacığı güvenliği
Bir GoogleAdsClient
örneğini birden fazla iş parçacığı arasında paylaşmak güvenli değildir.
bir iş parçacığındaki örnekte yaptığınız yapılandırma değişiklikleri
diğer ileti dizilerinde oluşturduğunuz hizmetleri de etkileyebilir. Müşteri edinme,
GoogleAdsClient
örneğinden yeni hizmet örnekleri ve
iş parçacığı açısından güvenlidir.
Çok iş parçacıklı bir uygulama aşağıdaki gibi görünür:
GoogleAdsClient client1 = new GoogleAdsClient();
GoogleAdsClient client2 = new GoogleAdsClient();
Thread userThread1 = new Thread(addAdGroups);
Thread userThread2 = new Thread(addAdGroups);
userThread1.start(client1);
userThread2.start(client2);
userThread1.join();
userThread2.join();
public void addAdGroups(object data) {
GoogleAdsClient client = (GoogleAdsClient) data;
// Do more operations here.
...
}
.NET Framework uygulamalarında donmayı önleme
Eşzamanlı yöntemler, bazı .NET Framework uygulamalarınızın dondurun. Bunun yaygın bir örneği, etkinlik işleyici yönteminden API çağrıları yapmaktır. olabilir.
Bu sorunu çözmenin iki yolu vardır:
Eski Grpc kitaplığını kullan.
GoogleAdsConfig
öğesininUseGrpcCore
özelliğini eskiGrpc.Core
kitaplığını kullanmanız gerekir.Grpc.Net.Client
Bu yöntem .NET Framework uygulamalarında kapsamlı olarak test edilmemiştir, Bu nedenle sorunu çözmeyebilir. Aşağıda örnek bir snippet verilmiştir:GoogleAdsConfig config = new GoogleAdsConfig(); config.UseGrpcCore = true; GoogleAdsClient client = new GoogleAdsClient(config);
gRPC destek sayfasında daha fazla bilgi eski
Grpc.Core
kitaplığı ile varsayılanGrpc.Net.Client
kitaplığı.Eşzamansız yöntemleri kullanın.
Donma durumlarını önlemek için eşzamansız yöntemler kullanabilirsiniz. Aşağıda bazı örnekler verilmiştir:
SearchStream
SearchStream()
çağrısı yapılır ve sonuçlar gösterilir bir liste görünümünde doldurulabilir.private async void button1_Click(object sender, EventArgs e) { // 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"; List
items = new List (); Task t = googleAdsService.SearchStreamAsync(customerId.ToString(), query, delegate (SearchGoogleAdsStreamResponse resp) { foreach (GoogleAdsRow googleAdsRow in resp.Results) { ListViewItem item = new ListViewItem(); item.Text = googleAdsRow.Campaign.Id.ToString(); item.SubItems.Add(googleAdsRow.Campaign.Name); items.Add(item); } } ); await t; listView1.Items.AddRange(items.ToArray()); } Kampanya Bütçesi
Bir CampaignBudget çağrısı oluşturulur ve yeni bütçenin kaynak adı
MessageBox
uyarısı kullanılarak gösterilir.private async void button2_Click(object sender, EventArgs e) { // Get the BudgetService. CampaignBudgetServiceClient budgetService = client.GetService( Services.V17.CampaignBudgetService); // Create the campaign budget. CampaignBudget budget = new CampaignBudget() { Name = "Interplanetary Cruise Budget #" + ExampleUtilities.GetRandomString(), DeliveryMethod = BudgetDeliveryMethod.Standard, AmountMicros = 500000 }; // Create the operation. CampaignBudgetOperation budgetOperation = new CampaignBudgetOperation() { Create = budget }; // Create the campaign budget. Task
t = budgetService.MutateCampaignBudgetsAsync( customerId.ToString(), new CampaignBudgetOperation[] { budgetOperation }); await t; MutateCampaignBudgetsResponse response = t.Result; MessageBox.Show(response.Results[0].ResourceName); }
Hata işleme
Her API çağrısı başarılı olmaz. API'niz çağrılıyorsa sunucu hata verebilir başka nedenlerle de başarısız olabilir. API hatalarının yakalanıp ele alınması önemlidir. sağlayabilir.
Bir API hatası oluştuğunda GoogleAdsException
örneği atılır. İçinde
ayrıntılara dikkat edin:
// Get the CampaignService.
CampaignServiceClient campaignService = client.GetService(Services.V17.CampaignService);
// Create a campaign for update.
Campaign campaignToUpdate = new Campaign()
{
ResourceName = ResourceNames.Campaign(customerId, campaignId),
// More fields to update.
// ...
};
// Create the operation.
CampaignOperation operation = new CampaignOperation()
{
Update = campaignToUpdate,
UpdateMask = FieldMasks.AllSetFieldsOf(campaignToUpdate)
};
try
{
// Update the campaign.
MutateCampaignsResponse response = campaignService.MutateCampaigns(
customerId.ToString(), new CampaignOperation[] { operation });
// Display the results.
// ...
}
catch (GoogleAdsException e)
{
Console.WriteLine("Failure:");
Console.WriteLine($"Message: {e.Message}");
// Can examine to get more error details.
Console.WriteLine($"Failure: {e.Failure}");
// Can be shared with Google for further troubleshooting.
Console.WriteLine($"Request ID: {e.RequestId}");
}