Di Google Ads, konversi adalah tindakan pengguna yang bernilai—seperti membeli produk, mengirimkan formulir prospek, menelepon bisnis Anda, atau mengunjungi toko fisik—yang mengikuti interaksi iklan. Tracking konversi mengukur interaksi pelanggan ini sehingga Anda dapat mengevaluasi performa kampanye dan mengoptimalkan bidding otomatis.
Google Ads API memungkinkan Anda mengonfigurasi tindakan konversi secara terprogram, mengimpor peristiwa konversi offline, meningkatkan atau menyesuaikan konversi yang dicatat, mengelompokkan tindakan ke dalam sasaran bidding dan siklus proses, serta memantau diagnostik upload.
Memilih alur kerja konversi
Gunakan tabel berikut untuk mengidentifikasi ConversionActionType,
layanan API, dan panduan penerapan untuk kasus penggunaan Anda:
| Tugas | Jenis tindakan konversi | Layanan atau resource API | Panduan penerapan |
|---|---|---|---|
| Memverifikasi penyiapan akun dan membuat tindakan konversi |
UPLOAD_CLICKS, WEBPAGE,
UPLOAD_CALLS, AD_CALL,
WEBSITE_CALL, GOOGLE_PLAY_,
GOOGLE_PLAY_
|
Customer
(ConversionTracking),
ConversionAction
|
Memulai dan Kategori tindakan konversi |
| Mengimpor konversi klik offline atau konversi yang disempurnakan untuk prospek | UPLOAD_CLICKS |
ConversionUploadService.
(atau
Data Manager API
untuk integrasi baru)
|
Mengimpor konversi klik offline |
| Meningkatkan konversi online (konversi yang disempurnakan untuk web) | WEBPAGE |
ConversionAdjustment
(ENHANCEMENT)
|
Mengimpor konversi klik online |
| Mengimpor konversi panggilan telepon | UPLOAD_CALLS |
ConversionUploadService.
|
Mengimpor konversi panggilan |
| Mengimpor transaksi penjualan toko |
STORE_SALES,
STORE_SALES_
|
OfflineUserData
(atau
Data Manager API)
|
Mengimpor konversi penjualan toko |
| Membatalkan atau menyatakan ulang konversi yang dicatat |
UPLOAD_CLICKS, WEBPAGE,
SALESFORCE (tidak digunakan lagi)
|
ConversionAdjustment
(RETRACTION, RESTATEMENT)
|
Menyesuaikan konversi setelah diimpor |
| Melampirkan metadata tag kustom ke konversi |
UPLOAD_CLICKS, UPLOAD_CALLS,
WEBPAGE
|
ConversionCustom
|
Variabel konversi kustom |
| Mengonfigurasi sasaran bidding, sasaran siklus proses, dan aturan nilai | Sasaran akun, kampanye, dan siklus proses |
CustomerConversion,
CampaignConversion,
CustomConversion,
ConversionGoal,
GoalService,
CampaignGoal,
ConversionValue
|
Sasaran konversi, Sasaran siklus proses, dan Aturan nilai konversi |
| Memantau kondisi impor dan diagnostik error |
UPLOAD_CLICKS, WEBPAGE,
UPLOAD_CALLS
|
offline_conversion_upload_,
offline_conversion_upload_
|
Memantau diagnostik data offline |
| Membuat kueri metrik konversi dan memecahkan masalah error | Semua jenis konversi |
GoogleAdsService.
(customer, campaign,
conversion_action)
|
Mengambil statistik konversi dan Memecahkan masalah impor konversi |
Siklus proses konversi menyeluruh
Integrasi pengelolaan konversi yang lengkap di Google Ads API mengikuti empat tahap:
- Verifikasi penyiapan akun dan buat tindakan konversi: Buat kueri
Customer.conversion_tracking_settinguntuk mengonfirmasi akun konversi yang efektif (google_ads_conversion_customer), verifikasi bahwa tracking konversi aktif, konfigurasikan izin pengguna, dan buatConversionActiondengan targetConversionActionTypedanConversionActionCategory. - Mengimpor peristiwa konversi: Alirkan konversi klik atau panggilan offline menggunakan
ConversionUploadServicedenganpartial_failureditetapkan ketrue, lengkapi konversi situs dengan penyesuaianENHANCEMENTmenggunakanConversionAdjustmentUploadService, atau upload penjualan toko secara massal menggunakanOfflineUserDataJobService. - Sesuaikan dan optimalkan konversi: Batalkan atau nyatakan kembali konversi yang dicatat
menggunakan
ConversionAdjustmentUploadService, lampirkan metadataConversionCustomVariable, terapkan aturan nilai konversi, dan atur tindakan ke dalam sasaran konversi dan sasaran siklus proses untuk mengontrol pengoptimalan bidding. - Memantau diagnostik dan melaporkan performa: Buat kueri
offline_conversion_upload_client_summarydanoffline_conversion_upload_conversion_action_summaryuntuk memeriksa status pemrosesan upload dan pemberitahuan kegagalan parsial. Buat kueri resourcecustomerataucampaign(secara opsional disegmentasikan menurutsegments.conversion_action) untuk membandingkan metrikmetrics.conversionsdanmetrics.all_conversions, atau buat kueri resourceconversion_actionuntuk memeriksametrics.all_conversionsdan stempel waktu konversi terakhir.
Panduan memulai: Memverifikasi penyiapan, membuat tindakan, dan memeriksa kondisi
Contoh berikut menunjukkan tiga kueri dan mutasi paling umum yang diperlukan untuk melakukan inisialisasi dan memantau tracking konversi.
1. Memverifikasi setelan tracking konversi dengan GAQL
Sebelum membuat ConversionAction atau mengupload peristiwa, buat kueri resource customer menggunakan GoogleAdsService.SearchStream untuk menentukan akun mana yang mengelola konversi (google_ads_conversion_customer), apakah persyaratan data pelanggan disetujui, dan apakah konversi yang disempurnakan di tingkat akun diaktifkan (EnhancedConversionsConfig):
SELECT
customer.conversion_tracking_setting.conversion_tracking_id,
customer.conversion_tracking_setting.conversion_tracking_status,
customer.conversion_tracking_setting.cross_account_conversion_tracking_id,
customer.conversion_tracking_setting.google_ads_conversion_customer,
customer.conversion_tracking_setting.accepted_customer_data_terms,
customer.conversion_tracking_setting.enablement_setting,
customer.conversion_tracking_setting.effective_enablement_setting
FROM customer
Ekstrak {customer_id} dari nama resource customers/{customer_id}
yang ditampilkan di google_ads_conversion_customer, dan kirimkan semua permintaan
ConversionActionService dan
ConversionUploadService berikutnya terhadap
ID pelanggan tersebut. Untuk mengetahui detail penyiapan lengkap dan hierarki lintas akun, lihat Memulai.
2. Buat tindakan konversi
Gunakan ConversionActionService.MutateConversionActions untuk membuat ConversionAction. Contoh berikut membuat
tindakan konversi UPLOAD_CLICKS dengan setelan nilai kustom dan periode lihat balik:
Java
private void runExample(GoogleAdsClient googleAdsClient, long customerId) { // Creates a ConversionAction. ConversionAction conversionAction = ConversionAction.newBuilder() // Note that conversion action names must be unique. If a conversion action already // exists with the specified conversion_action_name the create operation will fail with // a ConversionActionError.DUPLICATE_NAME error. .setName("Earth to Mars Cruises Conversion #" + getPrintableDateTime()) .setCategory(ConversionActionCategory.DEFAULT) .setType(ConversionActionType.WEBPAGE) .setStatus(ConversionActionStatus.ENABLED) .setViewThroughLookbackWindowDays(15L) .setValueSettings( ValueSettings.newBuilder() .setDefaultValue(23.41) .setAlwaysUseDefaultValue(true) .build()) .build(); // Creates the operation. ConversionActionOperation operation = ConversionActionOperation.newBuilder().setCreate(conversionAction).build(); try (ConversionActionServiceClient conversionActionServiceClient = googleAdsClient.getLatestVersion().createConversionActionServiceClient()) { MutateConversionActionsResponse response = conversionActionServiceClient.mutateConversionActions( Long.toString(customerId), Collections.singletonList(operation)); System.out.printf("Added %d conversion actions:%n", response.getResultsCount()); for (MutateConversionActionResult result : response.getResultsList()) { System.out.printf( "New conversion action added with resource name: '%s'%n", result.getResourceName()); } } }
C#
public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V26.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction( [ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings( [ 'default_value' => 23.41, 'always_use_default_value' => true ] ) ] ); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** * @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client: GoogleAdsClient, customer_id: str) -> None: conversion_action_service: ConversionActionServiceClient = ( client.get_service("ConversionActionService") ) # Create the operation. conversion_action_operation: ConversionActionOperation = client.get_type( "ConversionActionOperation" ) # Create conversion action. conversion_action: ConversionAction = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings: ConversionAction.ValueSettings = ( conversion_action.value_settings ) value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response: MutateConversionActionsResponse = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(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 # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V26::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V26::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V26::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
curl
Permintaan REST
Untuk membuat ConversionAction yang sama melalui REST, kirim permintaan POST ke ConversionActionService.MutateConversionActions:
POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate
{
"operations": [
{
"create": {
"name": "Earth to Mars Cruise Conversion",
"type": "UPLOAD_CLICKS",
"category": "DEFAULT",
"status": "ENABLED",
"primaryForGoal": true,
"countingType": "ONE_PER_CLICK",
"clickThroughLookbackWindowDays": "60",
"valueSettings": {
"defaultValue": 23.41,
"defaultCurrencyCode": "USD",
"alwaysUseDefaultValue": true
}
}
}
]
}
Setelah tindakan konversi Anda ENABLED, impor peristiwa konversi atau
peningkatan menggunakan alur kerja untuk sumber konversi Anda (lihat Mengimpor
peristiwa konversi).
3. Memantau kondisi upload konversi offline
Setelah mengupload konversi klik, konversi panggilan, atau penyesuaian konversi, buat kueri offline_conversion_upload_client_summary untuk memeriksa status tugas secara keseluruhan, rasio keberhasilan dan tertunda, serta perincian error di seluruh upload terbaru Anda:
SELECT
offline_conversion_upload_client_summary.client,
offline_conversion_upload_client_summary.status,
offline_conversion_upload_client_summary.total_event_count,
offline_conversion_upload_client_summary.successful_event_count,
offline_conversion_upload_client_summary.success_rate,
offline_conversion_upload_client_summary.pending_event_count,
offline_conversion_upload_client_summary.pending_rate,
offline_conversion_upload_client_summary.last_upload_date_time,
offline_conversion_upload_client_summary.alerts
FROM offline_conversion_upload_client_summary
Buat kueri
offline_conversion_upload_conversion_action_summary
untuk diagnostik tingkat tindakan konversi (lihat Memantau diagnostik data
offline), dan lihat Memecahkan masalah impor
konversi untuk menyelesaikan kode error tertentu.
Direktori panduan berdasarkan tahap siklus proses
Pelajari kumpulan lengkap panduan pengelolaan konversi yang diatur berdasarkan tahap siklus proses:
1. Penyiapan akun dan tindakan konversi
- Kategori tindakan konversi: Pilih sumber konversi yang tepat—situs (
WEBPAGE), panggilan telepon (UPLOAD_CALLS,AD_CALL,WEBSITE_CALL), aplikasi seluler (GOOGLE_PLAY_DOWNLOAD,GOOGLE_PLAY_IN_APP_PURCHASE, Firebase,SKAdNetwork), Google Analytics 4 (GOOGLE_ANALYTICS_4_CUSTOM,GOOGLE_ANALYTICS_4_PURCHASE), offline (UPLOAD_CLICKS), atau toko fisik (STORE_SALES)—dan petakan keConversionActionTypedan alur kerja API yang sesuai. - Memulai: Konfigurasikan izin
pengguna, verifikasi
ConversionTrackingSetting, siapkan tracking konversi lintas-akun, dan buat tindakan konversi menggunakan library klien atau REST.
2. Mengimpor peristiwa konversi
- Mengimpor konversi klik offline: Upload konversi offline (
GCLID,GBRAID,WBRAID) dan konversi yang disempurnakan untuk lead (email dan nomor telepon pihak pertama yang di-hash) untuk mengukur transaksi di dunia nyata. - Mengimpor konversi klik online: Lengkapi tag konversi situs dengan data pengguna pihak pertama—seperti alamat email, nama, alamat rumah, dan nomor telepon—menggunakan konversi yang disempurnakan untuk web (penyesuaian
ENHANCEMENT). - Impor konversi panggilan: Upload peristiwa konversi untuk panggilan telepon yang dilacak melalui nomor penerusan Google atau sistem tracking panggilan Anda sendiri.
- Mengimpor konversi penjualan toko: Upload banyak data transaksi dalam toko menggunakan
OfflineUserDataJobService.
3. Menyesuaikan dan mengoptimalkan konversi
- Sesuaikan konversi setelah impor: Batalkan pesanan yang dibatalkan (
RETRACTION) atau nyatakan kembali nilai konversi yang diubah (RESTATEMENT) untuk tindakan konversiUPLOAD_CLICKS,WEBPAGE, danSALESFORCE(tidak digunakan lagi). - Mengelola aturan nilai konversi: Sesuaikan nilai konversi secara dinamis pada waktu lelang berdasarkan kriteria audiens, perangkat, lokasi geografis, atau itinerari.
- Variabel konversi kustom: Tentukan dan lampirkan
tag nilai kunci kustom (
ConversionCustomVariable) ke konversi klik, panggilan, dan web untuk pelaporan tersegmentasi. - Sasaran konversi: Kelompokkan tindakan konversi menurut kolom
category(ConversionActionCategory) danorigin(ConversionOrigin), lalu konfigurasikan sasaran pelanggan, sasaran kampanye dan kustom, serta sasaran siklus proses pelanggan (akuisisi pelanggan baru, retensi pelanggan, dan retensi loyalitas). Anda juga dapat mengambil dan menerapkanOPTIMIZE_FOR_NEW_CUSTOMERSrekomendasi untuk nilai konversi pelanggan baru inkremental.
4. Memantau, melaporkan, dan memecahkan masalah
- Memantau diagnostik data offline: Buat kueri diagnostik data offline di tingkat akun (
offline_conversion_upload_client_summary) dan tingkat tindakan konversi (offline_conversion_upload_conversion_action_summary) untuk melacak rasio keberhasilan, peristiwa yang tertunda, dan pemberitahuan upload. - Mengambil statistik konversi: Buat kueri metrik performa konversi di GAQL dan petakan kolom UI Google Ads ke kolom Google Ads API.
- Memecahkan masalah impor konversi: Diagnosis dan selesaikan
kode
ConversionUploadErrordanConversionAdjustmentUploadErrorumum.