4.1.5 تتبُّع الإحالات الناجحة

القيمة وتأثير الأنشطة التجارية


لتقديم نظام تعلُّم الآلة الفعّال في منظومة Google المتكاملة إحصاءات للحملات الإعلانية لعملاء التجّار، يجب إجراء إحالة ناجحة علامات التتبع وتجديد النشاط التسويقي على مواقع العملاء الإلكترونية.

تحدث الإحالة الناجحة في "إعلانات Google" عندما ينفِّذ مستخدم إجراءً محدّدًا. بعد النقر على الإعلان، مثل شراء منتج، أو تثبيت تطبيق للأجهزة الجوّالة، أو الاشتراك في قائمة عناوين بريد إلكتروني. توفّر ميزة تتبُّع الإحالات الناجحة إحصاءات رئيسية في حسابات المستخدمين الإجراءات بعد مشاهدة الإعلان أو النقر عليه، بما في ذلك معلومات حساب ومقارنة عائد الاستثمار (ROI) لمساعدة عملائك لاتخاذ قرارات بشأن الجوانب التي يجب تركيز الإنفاق الإعلاني عليها. يساعد التتبع أيضًا في ضمان أن البيانات متوفّرة لأغراض التسوية. تختلف الطلبات حسب المنتج أو الفئة، وبالتالي يمكن أن يكون تتبع الإحالة الناجحة مفيدًا أيضًا لإظهار مدى يتم تحويل مجموعات بيانات محددة إلى مبيعات.

هدف الإحالة الناجحة هو مجموعة من إجراءات الإحالات الناجحة التي لها الأساسي. على سبيل المثال، "شراء" هدف إحالة ناجحة حقّق "عمليات الشراء من الموقع الإلكتروني" و"المبيعات في المتاجر" إجراءات إحالات ناجحة

لا تزال إجراءات الإحالات الناجحة تُستخدَم لتتبُّع الإحالات الناجحة وتحسين . أنت تنشئ إجراءات إحالات ناجحة وتجمع Google هذه الإجراءات في الإحالة الناجحة. الأهداف.

إجراء الإحالة الناجحة المتمثّل بعملية شراء

يؤدي تنفيذ ميزة تتبُّع الإحالات الناجحة الموضّحة هنا إلى تفعيل حساب "إعلانات Google" لقياس عدد الإحالات الناجحة المتمثّلة بعملية شراء وقيمتها من هذه الإحالات الناجحة. بدون تتبُّع الإحالات الناجحة، لن تتمكن من قياس قيمة النشاط التجاري التي تحقّقها الحملة من حيث عائد الإنفاق الإعلاني (ROAS) الإنفاق الإعلاني). ويتم أيضًا إرسال إشارات بيانات إضافية تمكّن الحملة من تحسين الأداء.

إجراءات الإحالات الناجحة الأخرى

وفي حين أن إجراء الإحالة الناجحة المتمثّل بعملية شراء مطلوب فقط، إلا أنّ تتبُّع إجراءات الإحالات الناجحة إلى إحصاءات إضافية للتجّار أر وأوصي بتسجيل كل شيء ممكن، أثناء تنفيذ أكبر عدد ممكن من إجراءات الإحالات الناجحة الأساسية تتضمّن القائمة الكاملة إجراءات الإحالات الناجحة المقترَحة. الموضحة في قسم إرشادات Tech API.

بوجه عام، ننصح بتحديد ما يلي:

  • أي حدث نجاح مرتبط مباشرةً بالقيمة
  • أحداث النجاح التي تساهم في الإحالات الناجحة الأساسية مثل add_to_cart الاشتراك.
  • التفاعلات وتفاعلات المستخدمين التي تساعد المعلنين على فهم إشراك المستخدمين النهائيين

تكون إجراءات الإحالات الناجحة الثانوية مخصّصة للملاحظة وإعداد التقارير فقط تؤثّر في عروض الأسعار.مزيد من المعلومات عن إجراءات الإحالات الناجحة الأساسية والثانوية

إرشادات تجربة المستخدم


للحدّ من خطر الأخطاء، ننصحك بتنفيذ الإحالة الناجحة. التتبع آليًا بدون إدخال من التاجر، ولكن عليك التأكد من إعلام التجّار بأنّه تم إعداد ميزة تتبُّع الإحالات الناجحة

عندما يربط التجّار حسابًا حاليًا على "إعلانات Google"، ننصحك بعرض إشعار بأنّ حسابهم قد يتضمّن ميزة تتبُّع الإحالات الناجحة الإعداد، حيث قد تكون هناك نزاعات يجب حلها. يتم عرض مثال أدناه.

connect_your_google_ads_account

الإرشادات الفنية


في ما يلي طريقة عمل ميزة تتبُّع الإحالات الناجحة. يوضح هذا القسم المزيد عن كل الخطوة:

  1. تنشئ "إحالة ناجحة" في حساب "إعلانات Google" للتاجر من أجل تتبع عمليات الشراء (وإجراء اختياري من إجراءات العملاء الأخرى) التي تتم على موقعهم الإلكتروني.

  2. تُضيف العلامة أو مقتطف الرمز لإجراء الإحالة الناجحة هذا إلى موقع إلكتروني تطبيق للأجهزة الجوّالة. وللاطّلاع على التفاصيل، راجِع إعداد ميزة تتبُّع الإحالات الناجحة لموقعك الإلكتروني.

  3. وعندما ينقر عميل على الإعلان، يُوضع ملف تعريف ارتباط مؤقت في جهاز الكمبيوتر أو الجوّال الخاص بالعميل.

  4. عند إكمال العميل الإجراء المحدّد للمعلِن، تستخدم Google يتعرف على ملف تعريف الارتباط (من خلال مقتطف الرمز المضاف)، ويسجل إحالة ناجحة مع معلمات أخرى مثل "value" إذا كان ذلك مناسبًا.

المتطلّبات الأساسية

قبل البدء، تأكَّد من أنّ لديك رقم تعريف مطوِّر علامة Google. إذا لم تحدد رقم تعريف مطوِّر علامة Google، يُرجى ملء نموذج طلب رقم تعريف مطوِّر علامة Google رقم تعريف المطوّر مختلف من أرقام التعريف الأخرى، مثل رقم تعريف القياس أو رقم تعريف الإحالة الناجحة، الذي إضافة المستخدِمين إلى رمز القياس لموقعك الإلكتروني

إنشاء إجراءات الإحالات الناجحة وضبطها

توضّح الأمثلة التالية كيفية إنشاء إجراء إحالة ناجحة وإضافته إلى. حساب على "إعلانات Google" يتعامل كل نموذج مع جميع مهام المصادقة في الخلفية ويرشدك خلال إنشاء إجراء إحالة ناجحة:

Java

// Copyright 2018 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.ads.googleads.examples.remarketing;

import static com.google.ads.googleads.examples.utils.CodeSampleHelper.getPrintableDateTime;

import com.beust.jcommander.Parameter;
import com.google.ads.googleads.examples.utils.ArgumentNames;
import com.google.ads.googleads.examples.utils.CodeSampleParams;
import com.google.ads.googleads.lib.GoogleAdsClient;
import com.google.ads.googleads.v17.enums.ConversionActionCategoryEnum.ConversionActionCategory;
import com.google.ads.googleads.v17.enums.ConversionActionStatusEnum.ConversionActionStatus;
import com.google.ads.googleads.v17.enums.ConversionActionTypeEnum.ConversionActionType;
import com.google.ads.googleads.v17.errors.GoogleAdsError;
import com.google.ads.googleads.v17.errors.GoogleAdsException;
import com.google.ads.googleads.v17.resources.ConversionAction;
import com.google.ads.googleads.v17.resources.ConversionAction.ValueSettings;
import com.google.ads.googleads.v17.services.ConversionActionOperation;
import com.google.ads.googleads.v17.services.ConversionActionServiceClient;
import com.google.ads.googleads.v17.services.MutateConversionActionResult;
import com.google.ads.googleads.v17.services.MutateConversionActionsResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Collections;

/** Adds a conversion action. */
public class AddConversionAction {

  private static class AddConversionActionParams extends CodeSampleParams {

    @Parameter(names = ArgumentNames.CUSTOMER_ID, required = true)
    private Long customerId;
  }

  public static void main(String[] args) {
    AddConversionActionParams params = new AddConversionActionParams();
    if (!params.parseArguments(args)) {

      // Either pass the required parameters for this example on the command line, or insert them
      // into the code here. See the parameter class definition above for descriptions.
      params.customerId = Long.parseLong("INSERT_CUSTOMER_ID_HERE");
    }

    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);
    }

    try {
      new AddConversionAction().runExample(googleAdsClient, params.customerId);
    } catch (GoogleAdsException gae) {
      // GoogleAdsException is the base class for most exceptions thrown by an API request.
      // Instances of this exception have a message and a GoogleAdsFailure that contains a
      // collection of GoogleAdsErrors that indicate the underlying causes of the
      // GoogleAdsException.
      System.err.printf(
          "Request ID %s failed due to GoogleAdsException. Underlying errors:%n",
          gae.getRequestId());
      int i = 0;
      for (GoogleAdsError googleAdsError : gae.getGoogleAdsFailure().getErrorsList()) {
        System.err.printf("  Error %d: %s%n", i++, googleAdsError);
      }
      System.exit(1);
    }
  }

  /**
   * Runs the example.
   *
   * @param googleAdsClient the Google Ads API client.
   * @param customerId the client customer ID.
   * @throws GoogleAdsException if an API request failed with one or more service errors.
   */
  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

// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using CommandLine;
using Google.Ads.Gax.Examples;
using Google.Ads.GoogleAds.Lib;
using Google.Ads.GoogleAds.V17.Errors;
using Google.Ads.GoogleAds.V17.Resources;
using Google.Ads.GoogleAds.V17.Services;
using System;
using static Google.Ads.GoogleAds.V17.Enums.ConversionActionCategoryEnum.Types;
using static Google.Ads.GoogleAds.V17.Enums.ConversionActionStatusEnum.Types;
using static Google.Ads.GoogleAds.V17.Enums.ConversionActionTypeEnum.Types;

namespace Google.Ads.GoogleAds.Examples.V17
{
    /// <summary>
    /// This code example illustrates adding a conversion action.
    /// </summary>
    public class AddConversionAction : ExampleBase
    {
        /// <summary>
        /// Command line options for running the <see cref="AddConversionAction"/> example.
        /// </summary>
        public class Options : OptionsBase
        {
            /// <summary>
            /// The Google Ads customer ID for which the conversion action is added.
            /// </summary>
            [Option("customerId", Required = true, HelpText =
                "The Google Ads customer ID for which the conversion action is added.")]
            public long CustomerId { get; set; }
        }

        /// <summary>
        /// Main method, to run this code example as a standalone application.
        /// </summary>
        /// <param name="args">The command line arguments.</param>
        public static void Main(string[] args)
        {
            Options options = ExampleUtilities.ParseCommandLine<Options>(args);

            AddConversionAction codeExample = new AddConversionAction();
            Console.WriteLine(codeExample.Description);
            codeExample.Run(new GoogleAdsClient(), options.CustomerId);
        }

        /// <summary>
        /// Returns a description about the code example.
        /// </summary>
        public override string Description =>
            "This code example illustrates adding a conversion action.";

        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="client">The Google Ads client.</param>
        /// <param name="customerId">The Google Ads customer ID for which the conversion action is
        /// added.</param>
        public void Run(GoogleAdsClient client, long customerId)
        {
            // Get the ConversionActionService.
            ConversionActionServiceClient conversionActionService =
                client.GetService(Services.V17.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

<?php

/**
 * Copyright 2018 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

namespace Google\Ads\GoogleAds\Examples\Remarketing;

require __DIR__ . '/../../vendor/autoload.php';

use GetOpt\GetOpt;
use Google\Ads\GoogleAds\Examples\Utils\ArgumentNames;
use Google\Ads\GoogleAds\Examples\Utils\ArgumentParser;
use Google\Ads\GoogleAds\Examples\Utils\Helper;
use Google\Ads\GoogleAds\Lib\V17\GoogleAdsClient;
use Google\Ads\GoogleAds\Lib\V17\GoogleAdsClientBuilder;
use Google\Ads\GoogleAds\Lib\V17\GoogleAdsException;
use Google\Ads\GoogleAds\Lib\OAuth2TokenBuilder;
use Google\Ads\GoogleAds\V17\Enums\ConversionActionCategoryEnum\ConversionActionCategory;
use Google\Ads\GoogleAds\V17\Enums\ConversionActionStatusEnum\ConversionActionStatus;
use Google\Ads\GoogleAds\V17\Enums\ConversionActionTypeEnum\ConversionActionType;
use Google\Ads\GoogleAds\V17\Errors\GoogleAdsError;
use Google\Ads\GoogleAds\V17\Resources\ConversionAction;
use Google\Ads\GoogleAds\V17\Resources\ConversionAction\ValueSettings;
use Google\Ads\GoogleAds\V17\Services\ConversionActionOperation;
use Google\Ads\GoogleAds\V17\Services\MutateConversionActionsRequest;
use Google\ApiCore\ApiException;

/** This example illustrates adding a conversion action. */
class AddConversionAction
{
    private const CUSTOMER_ID = 'INSERT_CUSTOMER_ID_HERE';

    public static function main()
    {
        // Either pass the required parameters for this example on the command line, or insert them
        // into the constants above.
        $options = (new ArgumentParser())->parseCommandArguments([
            ArgumentNames::CUSTOMER_ID => GetOpt::REQUIRED_ARGUMENT
        ]);

        // Generate a refreshable OAuth2 credential for authentication.
        $oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();

        // Construct a Google Ads client configured from a properties file and the
        // OAuth2 credentials above.
        $googleAdsClient = (new GoogleAdsClientBuilder())
            ->fromFile()
            ->withOAuth2Credential($oAuth2Credential)
            // We set this value to true to show how to use GAPIC v2 source code. You can remove the
            // below line if you wish to use the old-style source code. Note that in that case, you
            // probably need to modify some parts of the code below to make it work.
            // For more information, see
            // https://developers.devsite.corp.google.com/google-ads/api/docs/client-libs/php/gapic.
            ->usingGapicV2Source(true)
            ->build();

        try {
            self::runExample(
                $googleAdsClient,
                $options[ArgumentNames::CUSTOMER_ID] ?: self::CUSTOMER_ID
            );
        } catch (GoogleAdsException $googleAdsException) {
            printf(
                "Request with ID '%s' has failed.%sGoogle Ads failure details:%s",
                $googleAdsException->getRequestId(),
                PHP_EOL,
                PHP_EOL
            );
            foreach ($googleAdsException->getGoogleAdsFailure()->getErrors() as $error) {
                /** @var GoogleAdsError $error */
                printf(
                    "\t%s: %s%s",
                    $error->getErrorCode()->getErrorCode(),
                    $error->getMessage(),
                    PHP_EOL
                );
            }
            exit(1);
        } catch (ApiException $apiException) {
            printf(
                "ApiException was thrown with message '%s'.%s",
                $apiException->getMessage(),
                PHP_EOL
            );
            exit(1);
        }
    }

    /**
     * Runs the example.
     *
     * @param GoogleAdsClient $googleAdsClient the Google Ads API client
     * @param int $customerId the customer ID
     */
    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
            );
        }
    }
}

AddConversionAction::main();

      

Python

#!/usr/bin/env python
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""This example illustrates adding a conversion action."""


import argparse
import sys
import uuid

from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException


def main(client, customer_id):
    conversion_action_service = client.get_service("ConversionActionService")

    # Create the operation.
    conversion_action_operation = client.get_type("ConversionActionOperation")

    # Create conversion action.
    conversion_action = 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 = conversion_action.value_settings
    value_settings.default_value = 15.0
    value_settings.always_use_default_value = True

    # Add the conversion action.
    conversion_action_response = (
        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}".'
    )


if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="Adds a conversion action for specified customer."
    )
    # The following argument(s) should be provided to run the example.
    parser.add_argument(
        "-c",
        "--customer_id",
        type=str,
        required=True,
        help="The Google Ads customer ID.",
    )
    args = parser.parse_args()

    # GoogleAdsClient will read the google-ads.yaml configuration file in the
    # home directory if none is specified.
    googleads_client = GoogleAdsClient.load_from_storage(version="v17")

    try:
        main(googleads_client, args.customer_id)
    except GoogleAdsException as ex:
        print(
            f'Request with ID "{ex.request_id}" failed with status '
            f'"{ex.error.code().name}" and includes the following errors:'
        )
        for error in ex.failure.errors:
            print(f'\tError with message "{error.message}".')
            if error.location:
                for field_path_element in error.location.field_path_elements:
                    print(f"\t\tOn field: {field_path_element.field_name}")
        sys.exit(1)

      

Ruby

#!/usr/bin/env ruby
# Encoding: utf-8
#
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This code example illustrates adding a conversion action.

require 'optparse'
require 'google/ads/google_ads'
require 'date'

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

if __FILE__ == $0
  options = {}
  # The following parameter(s) should be provided to run the example. You can
  # either specify these by changing the INSERT_XXX_ID_HERE values below, or on
  # the command line.
  #
  # Parameters passed on the command line will override any parameters set in
  # code.
  #
  # Running the example with -h will print the command line usage.
  options[:customer_id] = 'INSERT_CUSTOMER_ID_HERE'

  OptionParser.new do |opts|
    opts.banner = sprintf('Usage: %s [options]', File.basename(__FILE__))

    opts.separator ''
    opts.separator 'Options:'

    opts.on('-C', '--customer-id CUSTOMER-ID', String, 'Customer ID') do |v|
      options[:customer_id] = v
    end

    opts.separator ''
    opts.separator 'Help:'

    opts.on_tail('-h', '--help', 'Show this message') do
      puts opts
      exit
    end
  end.parse!

  begin
    add_conversion_action(options.fetch(:customer_id).tr("-", ""))
  rescue Google::Ads::GoogleAds::Errors::GoogleAdsError => e
    e.failure.errors.each do |error|
      STDERR.printf("Error with message: %s\n", error.message)
      if error.location
        error.location.field_path_elements.each do |field_path_element|
          STDERR.printf("\tOn field: %s\n", field_path_element.field_name)
        end
      end
      error.error_code.to_h.each do |k, v|
        next if v == :UNSPECIFIED
        STDERR.printf("\tType: %s\n\tCode: %s\n", k, v)
      end
    end
    raise
  end
end

      

Perl

#!/usr/bin/perl -w
#
# Copyright 2019, Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This example illustrates adding a conversion action.

use strict;
use warnings;
use utf8;

use FindBin qw($Bin);
use lib "$Bin/../../lib";
use Google::Ads::GoogleAds::Client;
use Google::Ads::GoogleAds::Utils::GoogleAdsHelper;
use Google::Ads::GoogleAds::V17::Resources::ConversionAction;
use Google::Ads::GoogleAds::V17::Resources::ValueSettings;
use Google::Ads::GoogleAds::V17::Enums::ConversionActionCategoryEnum
  qw(DEFAULT);
use Google::Ads::GoogleAds::V17::Enums::ConversionActionTypeEnum   qw(WEBPAGE);
use Google::Ads::GoogleAds::V17::Enums::ConversionActionStatusEnum qw(ENABLED);
use
  Google::Ads::GoogleAds::V17::Services::ConversionActionService::ConversionActionOperation;

use Getopt::Long qw(:config auto_help);
use Pod::Usage;
use Cwd          qw(abs_path);
use Data::Uniqid qw(uniqid);

# The following parameter(s) should be provided to run the example. You can
# either specify these by changing the INSERT_XXX_ID_HERE values below, or on
# the command line.
#
# Parameters passed on the command line will override any parameters set in
# code.
#
# Running the example with -h will print the command line usage.
my $customer_id = "INSERT_CUSTOMER_ID_HERE";

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::V17::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V17::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V17::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;
}

# Don't run the example if the file is being included.
if (abs_path($0) ne abs_path(__FILE__)) {
  return 1;
}

# Get Google Ads Client, credentials will be read from ~/googleads.properties.
my $api_client = Google::Ads::GoogleAds::Client->new();

# By default examples are set to die on any server returned fault.
$api_client->set_die_on_faults(1);

# Parameters passed on the command line will override any parameters set in code.
GetOptions("customer_id=s" => \$customer_id);

# Print the help message if the parameters are not initialized in the code nor
# in the command line.
pod2usage(2) if not check_params($customer_id);

# Call the example.
add_conversion_action($api_client, $customer_id =~ s/-//gr);

=pod

=head1 NAME

add_conversion_action

=head1 DESCRIPTION

This example illustrates adding a conversion action.

=head1 SYNOPSIS

add_conversion_action.pl [options]

    -help                       Show the help message.
    -customer_id                The Google Ads customer ID.

=cut

      

نظرًا لأن الأمثلة السابقة عامة بطبيعتها، فإليك ملاحظات إضافية بحيث أنّه قد تم ضبط ConversionAction بشكلٍ صحيح من أجل "حملة الأداء الأفضل" يجب ضبط كلّ إجراء من إجراءات الإحالات الناجحة على النحو التالي:

  • النوع: اضبط ConversionActionType على "صفحة ويب"، لأن عمليات الشراء هذه التي تحدث على موقع ويب.

  • يمكن ضبط عروض أسعار لها – تم الضبط على true لحسابك الأساسي إجراء الإحالة الناجحة (الشراء) لتحسين الحملات بهدف زيادة المبيعات بالنسبة إلى إجراءات الإحالات الناجحة الثانوية (على سبيل المثال، إضافة إلى سلة التسوّق): اضبط القيمة على false.

  • الفئة - لكل إجراء من إجراءات التحويل (الأساسية أو ثانوية)، اضبط ConversionActionCategory. يمكنك العثور أدناه على فئة إجراء المحادثة ذي الصلة. لكل إجراء من إجراءات الإحالات الناجحة السبعة التي ننصح بتنفيذها ملاحظة: تُحدِّد "إعلانات Google" الإحالة الناجحة تلقائيًا إجراءات إلى هدف إحالة ناجحة عادي استنادًا إلى فئتها. على سبيل المثال، يتمّ تخصيص إجراءات الإحالات الناجحة المتمثّلة بعملية شراء. إلى هدف الإحالة الناجحة العادي الذي يحمل اسم "عمليات الشراء" يمكنك لاحقًا ضبط "حملات الأداء الأفضل" حملة لتحسين هدف "عمليات الشراء" هذا.

يمكنك العثور أدناه على قائمة بإجراءات الإحالات الناجحة المقترَحة. ننصحك بما يلي: تنفيذ ما لا يقل عن أول أربعة إجراءات إحالة ناجحة وعدد والإجراءات المقترَحة الأخرى بقدر الإمكان.

يمكنك أيضًا التفكير في تنفيذ أحداث إضافية ذات صلة بالمبيعات على الإنترنت. لمزيد من التفاصيل التتبع، يمكنك أيضًا إنشاء إجراءات إحالة ناجحة إضافية أو تخصيص إجراءات الإحالات الناجحة (على سبيل المثال، إجراء "إضافة معلومات الدفع" في كل مرة يستعين فيها أحد المستخدمين بخيار البحث على موقع الويب، أو "بحث" في كل مرة يستعين فيها أحد المستخدمين بخيار البحث في الموقع الإلكتروني). ثانوي إجراءات التحويل توفر تتبعًا إضافيًا للتجار تستخدمه "إعلانات Google" للملاحظة.

Priority إجراء الإحالة الناجحة فئة إجراء الإحالة الناجحة اسم حدث علامة Google الوصف
إلزامي شراء شراء purchase يُكمل المستخدم عملية شراء
ننصح بشدة جميع صنّاع المتاجر الإضافة إلى سلة التسوّق ADD_TO_CART add_to_cart يُضيف المستخدم منتجًا إلى سلة التسوّق.
ننصح بشدة جميع صنّاع المتاجر بدء إجراء إكمال الدفع BEGIN_CHECKOUT begin_checkout يبدأ المستخدم عملية الدفع
ننصح بشدة جميع صنّاع المتاجر عرض العنصر PAGE_VIEW page_view يفتح المستخدم صفحة منتج
يُنصح بشدة باستخدام هذا الخيار عند الاقتضاء (لا ينطبق عادةً على صنّاع المتاجر) الاشتراك الاشتراك sign_up اشتراك المستخدم في الحساب
يُنصح بشدة باستخدام هذا الخيار عند الاقتضاء (لا ينطبق عادةً على صنّاع المتاجر) جذب عميل محتمل SUBMIT_LEAD_FORM generate_lead ينشئ المستخدم عميلاً محتملاً من خلال نموذج.
يُنصح بشدة باستخدام هذا الخيار عند الاقتضاء (لا ينطبق عادةً على صنّاع المتاجر) اشتراك SUBSCRIBE_PAID غير سارٍ (مخصّص) اشتراك المستخدم في خدمة مدفوعة
يُنصح بشدة باستخدام هذا الخيار عند الاقتضاء (لا ينطبق عادةً على صنّاع المتاجر) حجز موعد BOOK_APPOINTMENT غير سارٍ (مخصّص) يحجز المستخدم موعدًا.
يُنصح بشدة باستخدام هذا الخيار عند الاقتضاء (لا ينطبق عادةً على صنّاع المتاجر) طلب عرض أسعار تقديري REQUEST_QUOTE غير سارٍ (مخصّص) يُرسل المستخدم نموذجًا لطلب تقدير السعر.

التجّار الذين لديهم حساب حالي على "إعلانات Google"

إذا سمحت للتجّار بإضافة حساب حالي على "إعلانات Google"، يمكنك عرض في الحالة التي يكون فيها الحساب يتضمّن إجراءات إحالة ناجحة لا نجري ننصح باستخدام إجراء إحالة ناجحة حالي، فليس هناك ما يضمن تم إعداده بشكل صحيح. بالإضافة إلى ذلك، هناك خطوات إضافية يتعين عليك اتخاذها من أجل التعامل مع هذه السيناريوهات المحتملة:

  • يحتوي الحساب على أهداف متعددة (مثل عمليات الشراء + مشاهدات الصفحة + جهات الاتصال). والتي تم تصنيفها جميعًا على أنها "الإعداد التلقائي للحساب". عند إنشاء حملة جديدة، الإعدادات التلقائية للتحسين من أجل تحقيق كل هذه الأهداف. أنت لا تريد أن يظهر هذا العنصر في حملة الأداء الأفضل.

  • يحتوي الحساب حاليًا على إجراء إحالة ناجحة واحد (أو أكثر) لتتبُّع عمليات الشراء تم تجميعها بالفعل ضمن هدف عمليات الشراء. هذا يعني أنه بعد تضاعف حملتك عملية الشراء؛ نظرًا لأنه يتم تنشيط علامتي إحالة ناجحة.

لضمان أنّ "حملة الأداء الأفضل" تستخدِم إجراء الإحالة الناجحة المخصّص لك وهذا الإجراء فقط:

  1. أنشِئ CustomConversionGoal، وأضِف إجراء الإحالة الناجحة المتمثّلة بعملية شراء. إلى قائمة conversion_actions[] للهدف. اضبط الحالة على مفعَّلة.

  2. في ConversionGoalCampaignConfig ضمن "حملة الأداء الأفضل"، اضبط custom_conversion_goal إلى الهدف المخصّص الذي أنشأته في الخطوة (1).

  3. نتيجةً للخطوة (2)، من المفترض أن يُحدّث "إعلانات Google" تلقائيًا مَعلمة ConversionGoalCampaignConfig للحملة بحيث يتم ضبط goal_config_level إلى CAMPAIGN (بدلاً من CUSTOMER، التي ستوجِّهها إلى استخدام الافتراضية على مستوى الحساب)، لكن الأمر يستحق التحقق مرتين من أن هذا في الواقع حدث.

استرداد العلامة لإجراء الإحالة الناجحة

بعد الانتهاء من إنشاء إجراء الإحالة الناجحة، يجب إدراج مقتطف الرمز المقابل الذي يُطلق عليه علامة في صفحة الإحالات الناجحة لموقع الويب الخاص بالمعلن. لضمان إمكانية قياس "إعلانات Google" لجميع الإحالات الناجحة بغض النظر عن متصفح العميل، استخدم علامة تتبّع الإحالة الناجحة في "إعلانات Google" المعدّلة. تتألف هذه العلامة من علامتين الأجزاء:

  • هو global_site_tag، الذي يجب تثبيته على كل صفحة من لموقع الويب الخاص بالمعلن.

  • السمة event_snippet، التي يجب وضعها على صفحات الويب التي تشير إلى إجراء إحالة ناجحة مثل تأكيد عملية الدفع أو صفحة إرسال العميل المحتمل.

يمكنك استرداد هذين الجزأين باستخدام ConversionActionService.

تضبط العلامة ملفات تعريف الارتباط التي تخزِّن معرّفًا فريدًا للعميل أو للإعلان. نقرة واحدة أوصلت العميل إلى الموقع الإلكتروني. تتلقّى ملفات تعريف الارتباط النقرة على الإعلان معلومات من مَعلمة معرّف النقرة على "إعلانات Google" (GCLID) المضمّنة في علامة تتبّع الإحالة الناجحة. يجب تفعيل الموقع الإلكتروني للمعلِن لتتبع العملاء المحتملين بهدف الحصول على معرّف GCLID وتخزينه، وهو المعرّف الفريد توفِّره "إعلانات Google" مقابل كل مرّة ظهور لإعلان على Google.

مزيد من المعلومات عن العلامة الشاملة ومكان تثبيتها

علامة Google (gtag.js) هي إطار عمل وضع العلامات وواجهة برمجة تطبيقات تتيح لك إرسال بيانات الأحداث إلى كلٍّ من "إعلانات Google" و"إحصاءات Google" علامة الموقع الشاملة تعمل في انسجام تام مع مقتطف عن الحدث أو مقتطف رقم هاتف لتتبّع الإحالات الناجحة. إضافة علامة Google إلى القسم <head> في كل صفحة على موقع المعلن وإعداده للعمل مع إعلانات Google. يمكنك بعد ذلك استخدام أوامر gtag() لتسجيل الأحداث وإرسال البيانات إلى "إعلانات Google" لفهم كيفية عمل ذلك، راجع استخدام علامة الموقع الشاملة لتتبُّع الإحالات الناجحة في "إعلانات Google"

عليك استخدام الأوامر التالية مع علامة Google:

  • الضبط: إعداد منتج من منتجات Google (مثل "إعلانات Google" و"إحصاءات Google" وما إلى ذلك) وتهيئة الإعدادات والاستعداد لإرسال البيانات إلى الحساب.

  • الحدث: سجِّل إحالة ناجحة من خلال إرسال حدث مثل. الشراء (موصى به) أو الإضافة إلى سلة التسوق (إجراءات الإحالات الناجحة الثانوية) نقترح مراجعة الدليل المرجعي لأحداث gtag.js.

  • set: اضبط المَعلمات الشائعة بين جميع الأحداث على الصفحة، مثل العملة.

المثال التالي هو مقتطف رمز JavaScript لعلامة الموقع الشاملة إرسال البيانات إلى "إعلانات Google" قيمة العنصر النائب GOOGLE_CONVERSION_ID هي معرّف رقمي فريد لحساب معلن واحد.

<!-- Google Tag (gtag.js) - Google Ads: GOOGLE_CONVERSION_ID -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-GOOGLE_CONVERSION_ID">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments)};
  gtag('js', new Date());
   gtag('set', 'developer_id.<developer ID>', true); // Replace with your Google tag Developer ID
  gtag('config', 'AW-GOOGLE_CONVERSION_ID');
</script>

من المفترض أن يظهر مقتطف علامة Google مرة واحدة فقط في كل صفحة. إذا كانت هناك قائمة مثال gtag.js، يجب إضافة أرقام تعريف علامات جديدة إلى العلامة الحالية. لإرسال إلى حسابات متعددة، يمكنك إضافة مكالمة إلى قسم 'config' الأمر لكل الذي تستخدمه، مع تحديد رقم تعريف الإحالة الناجحة لكل حساب على النحو الموضّح في المثال التالي:

<!-- Google Tag (gtag.js) - Google Ads: GOOGLE_CONVERSION_ID_1 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-GOOGLE_CONVERSION_ID_1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments)};
  gtag('js', new Date());
  gtag('config', 'AW-GOOGLE_CONVERSION_ID_1');
  gtag('config', 'AW-GOOGLE_CONVERSION_ID_2');
</script>

مزيد من المعلومات عن المقتطف عن الحدث ومكان تثبيته

لكي تعمل ميزة تتبُّع الإحالات الناجحة المتمثّلة بعملية شراء، يجب استخدام المقتطف عن حدث الشراء. أن يكون مثبّتًا على صفحة الإحالات الناجحة نفسها عادة ما يكون هذا هو الطلب صفحة التأكيد. ويمكن وضعه في أي مكان في الرمز، بعد العلامة الشاملة. المقتطف. المقتطفات عن الأحداث لإجراءات الإحالات الناجحة الثانوية (على سبيل المثال: إضافة إلى سلة التسوق) في الصفحات المعنية.

في نموذج المقتطف أدناه، AW-CONVERSION_ID وgTag_developer_ID يشير إلى رقم تعريف الإحالة الناجحة الفريد لحسابك على "إعلانات Google" وحسابك على حساب مطوّر العلامات، بينما يشير AW-CONVERSION_LABEL إلى الإحالة الناجحة الذي يكون فريدًا لكل إجراء إحالة ناجحة:

<!-- Event snippet for a purchase conversion page -->
<script>
  gtag('event', 'conversion', {
       'send_to':'AW-CONVERSION_ID/CONVERSION_LABEL',
       'developer_id.<gTag developer ID>': true,
       'transaction_id': '<transaction_id (string)>' //unique ID for the transaction (e.g. an order ID); it's used for de-duplication purposes
       'value': 1.0,
       'currency': 'USD', //three-letter currency code, useful for advertisers who accept multiple currencies
       'country': 'US',
       'new_customer': false, //new customer acquisition goal
       'tax': 1.24, //tax cost-US only
       'shipping': 0.00, //shipping cost-US only
       'delivery_postal_code': '94043', //shipping data validation-US only
       'estimated_delivery_date': '2020-07-31', //shipping validation-US only
       'aw_merchant_id': 12345, //shipping validation-US only
       'aw_feed_country': 'US', //shipping validation-US only
       'aw_feed_language': 'EN', //shipping validation-US only
       'items': [
       {
             'id': 'P12345',
             'name': 'Android Warhol T-Shirt',
             'quantity': 2,
             'price': 12.04,
             'estimated_delivery_date': '2020-07-31', //shipping-US only
              'google_business_vertical': 'retail'
       }, …],
  });
</script>

رغم أن بعض المعلمات اختيارية، فمن المستحسن تضمين أكبر قدر ممكن المعلومات كما هي متاحة لكل حدث. مزيد من المعلومات عن المَعلمات لكل نوع حدث.

توفّر المَعلمات معلومات إضافية عن الطرق التي يتفاعل بها المستخدِمون بموقعك الإلكتروني أو تطبيقك

إذا أردت قياس حدث إحالة ناجحة استنادًا إلى النقرة (على سبيل المثال، على زر أو استجابة ديناميكية لموقع يستخدم AJAX) يمكنك أيضًا استخدام المقتطف التالي بدلاً من ذلك:

<!-- Event snippet for test conversion click -->
In your html page, add the snippet and call gtag_report_conversion when someone clicks on the chosen link or button. -->
<script>
function gtag_report_conversion(url) {
  var callback = function () {
    if (typeof(url) != 'undefined') {
      window.location = url;
    }
  };
  gtag('event', 'conversion', {
      'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
      'value': 1.0,
      'event_callback': callback,
      //other parameters
  });
  return false;
}
</script>

تحتوي علامة Google على واجهة Consent API مدمجة لإدارة موافقة المستخدمين. من الممكن التفريق بين موافقة المستخدم على ملفات تعريف الارتباط لأغراض الإعلانات وتلك الخاصة بالإحصاءات الأهداف.

والنتيجة المتوقّعة هي أن يحصل العملاء على علامة gtag('consent', 'update' على الأقل. {...}) تم دمج المكالمة بدون أي إجراء من جانب العميل. من المفترض أن يؤدي هذا التأكّد من أنّ علامات Google ("إعلانات Google" وFloodlight و"إحصاءات Google" و"رابط الإحالة الناجحة") يمكنهم قراءة آخر حالة موافقة المستخدم وتضمين الحالة في الشبكة. الطلبات إلى Google (من خلال المعلمة &gcs).

تتمثل خطوات التنفيذ الإضافية في نشر أو مساعدة المعلنين في نشر (من خلال واجهة مستخدم على سبيل المثال) حالة gtag('consent', default' {...}) و إزالة حظر علامات Google (على سبيل المثال، عدم التفعيل المشروط المستند إلى الموافقة) تفعيل "وضع الموافقة" لتنشيطها على النحو المطلوب للموافقة

لمعرفة تفاصيل التنفيذ، يمكنك الاطّلاع على مقالة إدارة إعدادات الموافقة (المواقع الإلكترونية).

نصائح

من الحساب الإداري على "إعلانات Google"، يمكنك تتبُّع الإحالات الناجحة على مستوى جميع حسابات المعلنين باستخدام علامة رمز إحالة ناجحة واحدة. عرض حول تتبُّع الإحالات الناجحة في جميع الحسابات

أفضل طريقة لاختبار ما إذا كان تنفيذ ميزة تتبُّع الإحالات الناجحة العمل هي الانتقال إلى أحد حسابات التجار مواقع إلكترونية (أو موقع إلكتروني للاختبار الداخلي) وإجراء عملية شراء حقيقية. يمكنك بعد ذلك المراقبة في أداة Google Tag Assistant لاستخدام هذا الدليل لتحديد المشاكل وحلّها للتحقّق من أنّ "إعلانات Google" قد رصدت علامتك ويسجِّل الإحالات الناجحة بنجاح. لمزيد من المعلومات عن تحديد المشاكل وحلّها، انتقِل إلى مقالة تحديد المشاكل في وضع العلامات على صفحات موقعك الإلكتروني وحلّها.

ويمكنك إضافة الإحالات الناجحة المحسّنة إلى علامة الإحالة الناجحة السابقة ما يمكن أن يحسّن دقة قياس إحالاتك الناجحة والاستفادة من عروض أسعار أكثر فعالية. مزيد من المعلومات عن إعداد ميزة "الإحالات الناجحة المحسّنة" قبل تنفيذ ميزة الإحالات الناجحة المحسّنة يجب أن تتأكّد من امتثال التجّار سياسات بيانات عملاء ميزة الإحالات الناجحة المحسّنة في "إعلانات Google"